java 私塾JDBC笔记整理

luodis 发布于 2011/03/03 15:11
阅读 270
收藏 2

java 私塾JDBC笔记整理
 
一.JDBC是什么?
 Java DataBase Connection(类似于IO).
 
二.JDBC怎样实现传输?
    JDBC利用Driver来连接不同的数据库。如Oracle, SQL Server, MySql , DB2.
    Driver(驱动):本质上是一个程序

    1.它是JDBC技术的实现。
    2.总的来说与数据库相关(因为java部分是固定的,而数据库有很多种需要不同的驱动去适应它)
    3.Driver类型: A:JDBC-ODBC桥
                   B:纯本地实现
                   C:部分JAVA实现
                   D:纯JAVA实现
 
三.JDBC可以用一套固定的接口去跟不同的数据库进行交互
   需要掌握如下接口:Driver, Connection, Statement, PreparedStatement, ResultSet。
   实现:跟IO类似,一边Out,一边In。
   不同的是输出的不是流,而是SQL语句。
 
   思路:
   JAVA——>数据库
   1.建立跟数据库的连接
      1.1装在驱动  class.forName(“驱动名称”)
      1.2打开连接  Connection conn = DriverManeger.getConnection(URL,用户名,密码);
   2.执行SQl语句
      2.1得到执行SQL语句的接口
          Statement stmt = conn.createStatement();
          或 PreparedStatement pstmt = conn.PreparedStatement(String sql);
      2.2执行SQL语句
          stmt.executeUpdate(sql);
          或 pstmt.setString(1,值);
          pstmt.executeUpdate();
      2.3 关闭连接
          conn.close();
          stmt.close();
          pstmt.close();
 
   数据库——>JAVA
   1.建立跟数据库的连接
       1.1装在驱动  class.forName(“驱动名称”)
       1.2打开连接  Connection conn = DriverManeger.getConnection(URL,用户名,密码);
   2.执行SQL语句
       2.1得到执行SQL语句的接口
        Statement stmt = conn.createStatement();
        或 PreparedStatement pstmt = conn.PreparedStatement(String sql);
       2.2执行取值,获得从数据库返回的结果集
   3.从ResultSet中获取数据(rs相当于游标)
       while(rs.next())
           a.按名称取值 rs.getString(“字段名”);
           b.按索引取值 rs.getString(索引下标);
       两种方法都是对照ResultSet的。
   4.关闭连接
       conn.close();
       rs.close();
       stmt.close();
       pstmt.close();
 
   *用preparedStatment是指预编译的SQL语句,是静态的。
       String sql = “…………(?,?,?,?)”
    将字段名用?代替
       pstmt.setString(索引,值);
       pstmt.setInt(索引,值);
       pstmt.executeUpdate();
     而Statement是动态的。
 
四.事务:
    保证数据库正确
    A.原子性:事务的内部操作为一个整体,要么都成功,要么都失败。
    B.一致性:数据操作前后要满足相同的规则。
    C.隔离性:事物内部数据对外的可见性和可操作性。
    D.稳定性:无论发生任何事情,事务都要保证数据能正确保存到数据库中。
  默认情况下,JDBC将一条数据库语句是为一个完整的事务。
  可以关掉默认事务管理: conn.setAutoCommit(false);
  在执行完事务后应提交事务:conn.commit();
                            conn.rollback();
  需要时可以取消事务:conn.close();
 
五.批量操作
   Statement stmt = conn.createStatement();
 
   stmt.addBatch(sql); //将多个sql打包
   stmt.executeBatch();//批量执行
 
可以到java 私塾官网下载完整笔记:www.javass.cn

加载中
返回顶部
顶部