当前位置:Gxlcms > 数据库问题 > 2016.5.23 Mybatis 框架(二) 原生态jdbc程序 问题总结

2016.5.23 Mybatis 框架(二) 原生态jdbc程序 问题总结

时间:2021-07-01 10:21:17 帮助过:1人阅读

package cn.itcast.mybatis.jdbc; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.PreparedStatement; 6 import java.sql.ResultSet; 7 import java.sql.SQLException; 8 9 10 public class jdbcTest { 11 public static void main(String[] args) throws SQLException{ 12 //数据库链接 13 Connection connection =null; 14 //预编译的 statement , 使用预编译 以提高数据库性能 15 PreparedStatement preparedStatement = null; 16 //结果集 17 ResultSet resultSet=null; 18 19 try{ 20 //加载数据库驱动 21 Class.forName("com.mysql.jdbc.Driver"); 22 23 connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf-8","root",""); 24 String sql = "select * from user where username = ? and id = ?"; 25 preparedStatement = connection.prepareStatement(sql); 26 27 preparedStatement.setString(1, "王五"); 28 preparedStatement.setString(2, "1"); 29 30 resultSet = preparedStatement.executeQuery(); 31 32 while(resultSet.next()){ 33 System.out.println(resultSet.getString("id")+resultSet.getString("username")); 34 } 35 }catch(Exception e){ 36 e.printStackTrace(); 37 }finally{ 38 resultSet.close(); 39 preparedStatement.close(); 40 connection.close(); 41 } 42 } 43 }

 

3. jdbc使用 驱动

    jdbc全称是什么?

       Java DataBase Connectivity

       即是java的数据库连接 建立

    那么所需3个方面

       1> 建立的链接 对象                          Connection connection

       2> 建立的预编译 statement声明 对象  PreparedStatement preparedStatement

       3>查询到的结果集对象                       ResultSet resultSet

     接下来是 如何使用 jdbc 进行数据库链接 和操作的过程

          1> 加载驱动 Class.forname(com.mysql.jdbc.Driver);

               技术分享

               在驱动包中找到 Driver.class文件   copy qualifiedname 即可

           2>为链接connection 赋值url+端口

               conneciton = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","test","");

                            格式为 jdbc:数据库类型名://地址:端口/数据库名    username   userpassword

           3>定义  所要执行的sql语句 是什么 

                     String sql ="select * from user where username = ? and id= ?"

                     站位符 "?"  的作用即是  保留字段  由待会的提交 值保存

                   preparedStatement.setString(index,"value");

                                   第一个是第几个问号   第二个是存入值

                      实际上 替代? 的形式 ‘value‘  所以显然不能替代 一些如 column 的属性名

            4> 执行这个预编译  返回结果集

                   resultSet = preparedStatement.executeQuerry();

                     结果集中输入相应 column属性 即可获得查询值

                     resultSet.getstring("id")

            5>释放资源

                  顺序倒过来: resultSet.close()      preparedStatement.close()   connection.close()

4. 原生态jdbc问题 :

      1> 数据库连接, 使用时创建 不使用立即释放,对数据库频繁连接 和关闭, 造成数据资源浪费 影响数据库性能

           何解——>  数据库连接池

       2> sql语句在java代码中, 这是硬编码的方式, 如果sql语句修改,需要重新编译java代码,     

            preparedStatement 中设置参数,同样硬编码在java代码中

            何解——> SQL语句、占位符等变量  放在xml文件中配置

        3> 结果集中 resultSet 依然是硬编码 获取表的字段

            何解——> 将查询的结果集  自动映射为java对象                                                              

          

2016.5.23 Mybatis 框架(二) 原生态jdbc程序 问题总结

标签:

人气教程排行