Web项目IDEA连接Mysql并使用查询与插入语句

工具

    IDEA2022 (破解:) Navicat15 (破解:) 注意此处是在点开Navicat之前就要断网,不要再点开软件按“注册”前才断!! Mysql (连接参考:)

Web项目连接

和链接中的博主所说大多数一致,不过在web项目中,我们lib文件以及里面的的mysql-connector-java.jar是放在WEB-INF中,然后加载到库,如图所示,并且需要加载驱动(按照Mysql的版本),不然会报如下错误,说“ClassNotFoundException”

java代码中写入sql语句(查询和插入)

前端输入

数据库检查

原始

插入两条用户信息

代码所示

package com.example.user_identification;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.*;

@WebServlet(name = "reg", value = "/reg")
public class reg extends HttpServlet {
          
   
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          
   
        response.setContentType("text/html;charset=UTF-8");
        request.setCharacterEncoding("UTF-8");


        String username = request.getParameter("username");  // 获取表单中的username数据
        String password = request.getParameter("password");  // 获取表单中的password数据
        Boolean regis = false;

        //         与数据库建立连接
        try {
          
   
            Class.forName("com.mysql.cj.jdbc.Driver");  // 加载驱动
        } catch (ClassNotFoundException e) {
          
   
            System.out.println("加载驱动失败");
            System.out.println(e);
        }
        String url = "jdbc:mysql://localhost:3306/" + "logindemo";
        String user = "root";
        String pwd = "你的数据库密码";
        Connection con = null;
        try {
          
   
            con = DriverManager.getConnection(url, user, pwd);
            Statement state = con.createStatement();
            // sql语句的编写规则:java中的字符串只能双引号,如果字符串中需要拼接变量,该变量用单引号括起来
            String sql = " SELECT * FROM user WHERE username = " + username + "";
            ResultSet rs = state.executeQuery(sql);  // 执行查询语句
            if (!rs.next()) {
          
                              // 如果WHERE中的条件满足,返回true,否则返回false
                regis = true;
                String sql2 = "INSERT INTO user values(null," + username + "," + "" + password + "" +");";  // 第一列属性值为null,因为我设置第一列属性为自增
                int num = state.executeUpdate(sql2);  // 执行插入语句,返回的是修改的行数
            }
            request.getSession().setAttribute("regis", regis);
            response.sendRedirect("index.jsp");
            con.close();
        } catch (SQLException e) {
          
   
            throw new RuntimeException(e);
        }

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          
   
        doPost(request, response);
    }
}
经验分享 程序员 微信小程序 职场和发展