码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2016-05-23 16:44:27      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:

jdbc程序

1. 创建JAVA工程 加入jar包

    数据库驱动包(mysql)

    技术分享

     其实只需要上边的驱动包,因为用的是 Mysql ,一般版本不是问题 ,本机是mysql 5.6

     下边的是oracle 驱动包

2. 创建 jdbcTest工程

   

 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程序 问题总结

标签:

原文地址:http://www.cnblogs.com/zywhr/p/5520095.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!