MyBatis学习——jdbc的编程步骤以及问题总结

在我们没有学过什么框架的时候,我们是不是都是使用jdbc编程进行和数据库的连接,那么让我们回忆一下jdbc的编程步骤,和jdbc编程所存在的问题

一、jdbc编程步骤

            /**
             * 加载JDBC驱动
             */
            Class.forName("com.mysql.jdbc.Driver");
            /**
             *创建连接字符串
             */
            String url = "jdbc:mysql://localhost:3306/tuluntest";
            /**
             * 获取一条和MySQl的链接
             */
            connection = DriverManager.getConnection(url,"root","132990");

            //拼接的sql语句会产生SQL注入,比如sql语句中的#可以注释掉后面的东西、
            //或者将where后面的表达式为恒真,这样就不会起到校验用户名,密码的作用。直接可以进入 
            //表中 。
            /**
             * 创建一个SQL查询语句
             */
            st = connection.createStatement();

            String sql = "select * from Student where name='wangjie'#' and id='1233554'";
            /**
             * 执行SQl
             */
            ResultSet rs = st.executeQuery(sql);
            //迭代打印rs结果集的内容
            if(rs.next()){
                System.out.println("登录成功");
            } else {
                System.out.println("登录失败");
            }
            /**
             * 解决方案
             */
            PreparedStatement preparedStatement = connection.prepareStatement("select * 
                              from Student where name = ? and id = ?");
            preparedStatement.setString(1,"wangjie");
            preparedStatement.setInt(2,23);
            ResultSet rs1 = preparedStatement.executeQuery();
            //迭代打印rs结果集的内容
            if(rs1.next()){
                System.out.println("登录成功");
            } else {
                System.out.println("登录失败");
            }
          /*ResultSet rs = st.executeQuery("select * from Student");
            while(rs.next()) {
                StringBuilder sb = new StringBuilder();
                sb.append(rs.getInt("id")+" ");
                sb.append(rs.getString("name")+" ");
                System.out.print(sb);
            }*/

      1、加载 JDBC连接驱动

      2,创建连接的URL

      3,通过URL、用户名、密码获取一条与数据库的连接。

      4,创建一个SQl查询语句

      5,执行一个SQl

      6,迭代打印结果集的内容

二、jdbc编程存在的问题

      1,数据库连接创建、释放频繁,造成系统资源浪费,从而影响系统性能

      2,sql语句在代码中存在硬编码,造成代码不易维护

      3,使用PreparedStatement向占位符传参数时也存在硬编码,因为SQl语句的where条件    可能多也可能少,修改sql语句还得修改代码,不易维护

     4,resultSet遍历时,存在硬编码,如果将查询结果集映射为Java对象比较方便

你可能感兴趣的:(MyBatis学习)