0323.JDBC review

/*
JDBC:(Java Database Connectivity)即Java数据库连接
      使用JDBC编写的程序可以实现 跨数据库、跨平台,具有非常优秀的可移植性。
      是一种可以执行SQL (Structured Query Language 即结构化查询语句) 的Java API。
      当需要数据库之间切换时,只需要更改不同的实现类(即数据库驱动)。
      Sun公司提供的JDBC可以完成以下三个基本功能:(通过这三个功能,程序即可 访问、操作 数据库系统)
            建立与数据库的连接;
            执行SQL语句;
            获得SQL语句的执行结果。
      JDBC驱动常有4种类型:P567。
ODBC:(Open Database Connectivity)开放数据库连接。Microsoft的。
      JDBC比ODBC更简单、直观、安全性更高、容易部署。
--------------------------------------------------------------------------------------------------------------------------------------------------------
JDBC 4.2 常用接口和类:P602
     
      DriverManager:用于管理JDBC驱动的服务类,主要功能是获取 Connection对象。
            Connection con=DriverManager.getConnection ( String url , String user , String password ) ;
                          URL通常写法:jdbc:subprotocol:other stuff             
                          MySQL的URL:jdbc:mysql://hostname:port/databasename
                                     ("jdbc:mysql://127.0.0.1:3306/database_name","root","password")
                          Oracle的URL:jdbc:oracle:thin:@hostname:port:databasename
     
      Connection:代表数据库连接对象,每个Connection代表一个物理连接会话。
            常用方法:Statement stmt                    = con.createStatement() throws SQLException;
                             PreparedStatement pstmt   = con.prepareStatement(String sql) throws SQLException;
                             CallableStatement cstmt     = con.prepareCall(String sql) throws SQLException;
                  以上三个方法都返回用于执行SQL语句的Statement对象,只有获得了Statement对象后才可以执行SQL语句。
                  PreparedStatement 和 CallableStatement是Statement的子类
            还有几个用于控制事务的方法:P602                                                                      
     
      Statement:用于执行SQL语句的工具接口。
            可以用于执行 SQL查询语句:主要由select关键字完成;
                                  DML(Data Manipulation Language,数据操作语言)语句:insert、update、delete;
                                  DDL(Data Definition Language,数据定义语言)语句:create、alter、drop、truncate;
                                  DCL(Data Control Language,数据控制语言)语句:grant、revoke。
            Statement常用方法:
                  ResultSet executeQuery(String sql) throws SQLException:
                      只能用于执行查询语句,返回查询到的ResultSet结果集;
                  int executeUpdate(String sql) throws SQLException:
                      用于DML(返回受影响的行数)、DDL(返回0);
                  boolean execute(String sql) throws SQLException:
                      可执行任何SQL语句。如果执行后第一个结果为ResultSet对象,则返回true;
                                         执行后第一个结果为受影响行数或没任何结果,则返回false。
      PreparedStatement:预编译的Statement对象。是Statement的子接口。P603
            比Statement多了如下方法:
                  void setXxx(int parameterIndex , Xxx value):传入的值根据索引传给SQL语句中指定位置的参数。                                                                                                                                          
     
      ResultSet:结果集对象。                                                                                                  
            该对象包含访问查询结果的方法,可以通过列索引或列名获得数据。
            包含了如下常用方法来 移动记录指针:
                  void close();
                  bollean absolute(int row);
                  void beforeFirst();
                  boolean first();
                  boolean previous();
                  boolean next();
                  boolean last();
                  void afterLast();
            记录指针移动到指定行后,ResultSet可通过如下方法获取当前行、指定列 的值:
                  getXxx(int columnIndex);
                  getXxx(String columnLabel);
                  <T> T getObject(int columnIndex,Class<T> type);
                  <T> T getObject(int columnLabel,Class<T> type);
--------------------------------------------------------------------------------------------------------------------------------------------------------
JDBC编程步骤:
      1、加载数据库驱动
            Class.forname("com.mysql.jdbc.Driver");好像等同于com.mysql.jdbc.Driver  driver=new  com.mysql.jdbc.Driver();
                         ("oracle.jdbc.driver.OracleDriver"); 又好像JDBC 4 以后可以不用写Class.forname方法了。
      2、通过DiverManager获取数据库连接
            Connection con=DriverManager.getConnection ( String url , String user , String password ) ;
      3、通过Connection对象创建Statement对象。
            Statement stmt=con.createStatement();
      4、使用Statement执行SQL语句
            Result rs=stmt.executeQuery("select * from tablename");
      5、操作结果集P605有个图
      6、回收数据库资源,包括关闭ResultSet、Statement、Connection等资源。
            2 3 4 可以写到try()里,try语句在该语句结束时自动关闭这些资源。相当于包含了隐式的finally块(Java7)
            这些资源实现类必须实现AutoCloseable或Closeable接口,实现这两个接口就必须实现close()方法。
*/

猜你喜欢

转载自huadianfanxing.iteye.com/blog/2365243