JDBC总结

1、什么是JDBC?

JDBC(Java DataBaseConnectivity)是sun公司提供的一套统一的接口规范,Java程序只需要使用JDBC就可以操作任何数据库,

JDBC实现类由各个数据库厂商提供

2、数据库驱动

我们安装好数据库之后,我们的应用程序也是不能直接使用数据库的,必须要通过相应的数据库驱动程序,通过驱动程序去和数据库打交道。其实也就是数据库厂商的JDBC接口实现,即对Connection等接口的实现类的jar文件。

3、JDBC中的主要接口/类

DriverManager:驱动管理

DriverManager 驱动管理类
DriverManager管理一组 JDBC 驱动程序的基本服务。
Connection 连接接口
Connection与特定数据库的连接(会话)。
Statement (PreparedStatement、CallableStatement) 数据库操作
Statement用于执行静态 SQL 语句并返回它所生成结果的对象。
ResultSet 结果集接口
ResultSet表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。

Driver
 工程中引入的不同数据库驱动实现
Driver每个驱动程序类必须实现的接口。

JDBC编程步骤  

             //步骤一 装载驱动
            //方式一:Class.forName(“com.MySQL.jdbc.Driver”);
                //推荐这种方式,不会对具体的驱动类产生依赖。
               //方式二:DriverManager.registerDriver(com.mysql.jdbc.Driver);
              //会造成DriverManager中产生两个一样的驱动,并会对具体的驱动类产生依赖。
            Class. forName( "com.mysql.jdbc.Driver" ); 
             //步骤二 建立连接
             //MySQL 如果连接是localhost:3306 可以省略            
                        //jdbc:mysql://localhost:3306/day13  --》  jdbc:mysql:///day13
            Connection conn = DriverManager.getConnection( "jdbc:mysql:///myjdbc" , "root" , "root" );            
             //步骤三 操作数据SQL 对于结果集处理
            Statement sta = conn.createStatement();
            String cmd = "select * from test" ;
            ResultSet set = sta.executeQuery(cmd);
             while (set.next()) {
                   int id = set.getInt( "id" );
                  String name = set.getString( "name" );
                  System. out .println( "id=" + id + ":" + "name=" + name);
            }
             //步骤四 释放资源
            set.close();
            sta.close();
            conn.close();

4、Connection 连接 接口 : 

Connection与特定数据库的连接(会话),在连接上下文中执行sql语句并返回结果。DriverManager.getConnection(url, user, password)方法建立在JDBC URL中定义的数据库Connection连接上。

应用一:获得SQL的操作对象

Statement  conn.createStatement() 该对象可以将SQL发送给数据库进行执行

PreparedStatement conn.prepareStatement(sql) 对SQL语句进行预编译,防止SQL注入

5、Statement 接口:

用于将SQL 发送给数据库 获得操作结果

常用Statement方法:

executeUpdate 用于向数据库发送 insert update delete 语句,返回int 类型参数,代表影响记录行数。
executeQuery  用于向数据库发送 select 语句,返回ResultSet 结果集对象。

execute 用于数据库发送任何SQL语句(包括 DDL DML DCL) 返回boolean ,SQL执行结果是ResultSet 返回true,否则 false。

发送多条SQL(批处理):
addBatch(sql) 将SQL加入批处理队列

executeBatch() 执行队列中所有SQL语句 ,一次性向数据库发送多条SQL

6.ResultSet接口

ResultSet提供检索不同类型字段的方法,常用的有:

  • getString(int index)、getString(String columnName):获得在数据库里是varchar、char等类型的数据对象。
  • getFloat(int index)、getFloat(String columnName):获得在数据库里是Float类型的数据对象。
  • getDate(int index)、getDate(String columnName):获得在数据库里是Date类型的数据。
  • getBoolean(int index)、getBoolean(String columnName):获得在数据库里是Boolean类型的数据。
  • getObject(int index)、getObject(String columnName):获取在数据库里任意类型的数据。    
7、ResultSet 滚动结果集:

    Connection 接口的 createStatement()  返回Statement对象,操作SQL后 产生ResultSet 默认执行next 向前滚动,不支持在滚动中对数据进行修改 (只读不执行滚动)

Connection 接口还提供 createStatement(int resultSetType, int resultSetConcurrency) 在创建Statement对象 设置结果集类型,并发策略

8、 ResultSet 滚动结果集常用方法

next():移动到下一行
previous():移动到前一行
absolute(int row):移动到指定行
beforeFirst():移动resultSet的最前面
afterLast() :移动到resultSet的最后面

updateRow() :更新行数据

9、优化释放资源,确保资源能够释放 ---- 将代码放入finally 代码块

finally {
         // 关闭资源时,先开的资源后关
        if (rs != null ) {
             try {
                  rs.close();
             } catch (SQLException e) {
                  e.printStackTrace();
             }
             rs = null ;
        }
        if (stmt != null ) {
             try {
                  stmt.close();
             } catch (SQLException e) {
                  e.printStackTrace();
             }
             stmt = null ;
        }
        if (conn != null ) {
             try {
                  conn.close();
             } catch (SQLException e) {
                  e.printStackTrace();
             }
             conn = null ;
        }





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值