如何使用JDBC进行数据库连接以及前后端的交互

使用JDBC进行数据库连接以及前后端的交互步骤

  1. 在mysql数据库中建立一个名为JDBC的数据库,在该数据库下建立一个名为t_user的表单,设置username和pwd两个字段,并加入一点数据。
  2. 导入JDBC驱动包
<dependency>
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
</dependency>
  1. 在dao包中创建一个UserDao类,在里面写上一个initJDBC方法。
public class UserDao
{
		public void initJDBC()
		{
		}
}
  1. 在initJDBC()方法中进行数据库的连接
public void initJDBC()
{
		//1、加载驱动
		Class.forName(“com.mysql.jdbc.Driver”);
		//Mysql版本8.0以上为
		// Class.forName(“com.mysql.cj.jdbc.Driver”);
		
		//2、建立连接,用户密码初始化
		String url="jdbc:mysql://127.0.0.1:3306/JDBC";
		// Mysql版本8.0以上为
		// String url="jdbc:mysql://127.0.0.1:3306/JDBC?serverTimezone=UTC";
		String dbusername="root";
		String dbpwd="root";
		
		//3、获取参数
		Connection conn = DriverManager.getConnection(url,dbusername,dbpwd);
	
		//4、sql语句
		String sql = “select * from t_user”;
		
		//5、获取一个SQL执行器
		//使用PreparedStatement预编译SQL执行器可以防注入,会检测出异常的SQL语句,能更加安全。
		PreparedStatement preparedStatement = conn.prepareStatement(sql);
		
		//6、执行SQL获取结果
		ResultSet resultSet = preparedStatement.executeQuery();

		//7、处理数据库的返回结果
        	while(resultSet.next())
			{
				String user = resultSet.getString(“username”);
				String pwd = resultSet.getString(“pwd”);
           		System.out.println(user +==+ pwd);
       		 }
}
  1. 为了更加简洁方便连接数据库,所以进行代码的整改如下:
public Connection initJDBC()
    {
        Connection conn =null;
        //1.加载驱动
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            //初始化连接串与用户密码
            String url = "jdbc:mysql://127.0.0.1:3306/JDBC?serverTimezone=UTC";
            String dbusername ="root";
            String dbpwd = " root ";
            //3.获取连接
             conn = DriverManager.getConnection(url,dbusername,dbpwd);
       		 } catch (Exception e)
       		 {
            e.printStackTrace();
       		 }
        return conn;
    }
    public User getUserByName(String username) throws Exception
    {
        //获取JDBC连接
        Connection conn = initJDBC();
        User user = null;
        //4.sql语句
        String sql ="select * from t_user where username =?";
        //5.获取一个SQL执行器
        //预编译SQL执行器  使用PreparedStatement这个可以防注入
        //会监测出异常的SQL语句。
        PreparedStatement preparedStatement = conn.prepareStatement(sql);
        preparedStatement.setString(1,username);
        //6执行SQL 获取结果
        ResultSet resultSet = preparedStatement.executeQuery();
        while (resultSet.next())
        {
            user = new User();
            user.setName(resultSet.getString("username"));
            user.setPwd(resultSet.getString("pwd"));
        }
        return user;
    }

  1. 在vo包里创建User类,存放用户的username和userpwd属性
  2. 在service包里创建一个UserService接口,写上一个方法。利用service包下的impl包中的UserServiceImpl类去实现UserService接口中的方法,并用@Service注解去声明它是一个服务类,这样在controller类中才可以用@Autowired注入接口UserService。
  3. 在controller包中创建一个LoginController类,通过@Autowired注解直接注入UserService,再在login方法中写上事物的处理。
	@Autowired
    UserService userService;
    @RequestMapping("/login")
    public String login(@ModelAttribute() User user)
    {
            if(user == null || null == user.getName())
            {
                return "/ login";
            }
          User dbUser =  userService.getUserInfo(user.getName());
          if(user.getName().equals(dbUser.getName()) && user.getPwd().equals(dbUser.getPwd()))
          {
              return "/ welcome";
          }
          return " /login";
    }
  1. 运行,到浏览器调用,完成。

你可能感兴趣的:(jdbc,java)