Java教程

Java8 JDBC改进

在Java 8中,Java在JDBC API中进行了两项重大更改。
1、JDBC-ODBC桥已被删除。Oracle不支持JDBC-ODBC桥。 Oracle建议您使用数据库供应商提供的JDBC驱动程序,而不要使用JDBC-ODBC Bridge。
2、在JDBC 4.2中添加了一些新功能。 Java JDBC 4.2引入了以下功能:
添加了REF_CURSOR支持。 添加java.sql.DriverAction接口 对DriverManager类中的deregisterDriver方法进行安全检查 添加java.sql.SQLType接口 添加java.sql.JDBCType枚举 添加对大量更新的支持 更改现有接口 行集1.2: 列出了JDBC RowSet的增强功能。 Java 8 JDBC的改进

Java JDBC DriverAction

当要通过DriverManager通知驱动程序时,必须实现此接口。它添加到java.sql程序包中,并且仅包含一个抽象方法。

DriverAction方法

方法 说明
void deregister() DriverManager.deregisterDriver(Driver)调用此方法以通知JDBC驱动程序已注销。
deregister方法仅应由JDBC驱动程序使用,而不能由应用程序使用。
建议JDBC驱动程序不要在公共类中实现DriverAction。
如果在调用deregister方法时存在到数据库的活动连接,则具体取决于连接是关闭还是允许继续。调用此方法后,驱动程序是否会限制其创建与数据库的新连接,调用其他Driver方法或引发SQLException的能力是特定于实现的。

Java JDBC4.2 DriverAction示例

import java.sql.*;  
// implementing DriverAction interface
class JdbcExample implements DriverAction{  
  // implementing deregister method of DriverAction interface
  @Override
  public void deregister() {
    System.out.println("Driver deregistered");
  }
  public static void main(String args[]){
    try{
      // Creating driver instance
      Driver driver = new com.mysql.jdbc.Driver();
      // Creating Action Driver
      DriverAction da = new JdbcExample();
      // Registering driver by passing driver and driverAction
      DriverManager.registerDriver(driver, da);
      // Creating connection
      Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/student","root","mysql");
      //Here student is database name, root is username and password is mysql
      Statement stmt=con.createStatement(); 
      // Executing SQL query
      ResultSet rs=stmt.executeQuery("select * from user");  
      while(rs.next()){  
        System.out.println(rs.getInt(1)+""+rs.getString(2)+""+rs.getString(3));  
      }
      // Closing connection
      con.close();  
      // Calling deregisterDriver method
      DriverManager.deregisterDriver(driver);
    }catch(Exception e){ System.out.println(e);}  
  }  
  
}  
输出:
1  Arun  25
2  irfan  22
3  Neraj kumar  25
Driver deregistered

Java JDBC SQLType

此接口用于标识通用SQL类型,JDBC类型或供应商特定的数据类型。
它提供了以下方法。
方法 说明
String getName() 它返回代表SQL数据类型的SQLType名称。
String getVendor() 它返回支持此数据类型的供应商的名称。通常返回的值是该供应商的软件包名称。
Integer getVendorTypeNumber() 它返回数据类型的供应商特定类型编号。

Java JDBCType

它是一个枚举,它定义用于标识通用SQL类型(称为JDBC类型)的常量。它扩展了java.lang.Enum并实现了java.sql.SQLType。

JDBCType字段

下表包含在JDBCType中定义的常量。
枚举常量 说明
public static final JDBCType ARRAY 它标识通用SQL类型ARRAY。
public static final JDBCType BIGINT 它标识通用SQL类型BIGINT。
public static final JDBCType BIT 它标识通用SQL类型BIT。
public static final JDBCType BLOB 它标识通用SQL类型BLOB。
public static final JDBCType BOOLEAN 它标识通用SQL类型BOOLEAN。
public static final JDBCType CHAR 它标识通用SQL类型CHAR。
public static final JDBCType CLOB 它标识通用SQL类型CLOB。
public static final JDBCType DATALINK 它标识通用SQL类型DATALINK。
public static final JDBCType日期 它标识通用SQL类型DATE。
public static final JDBCType DECIMAL 它标识通用SQL类型DECIMAL。
public static final JDBCType DISTINCT 它标识通用SQL类型DISTINCT。
public static final JDBCType DOUBLE 它标识通用SQL类型DOUBLE。
public static final JDBCType FLOAT 它标识通用SQL类型FLOAT。
public static final JDBCType INTEGER 它标识通用SQL类型INTEGER。
public static final JDBCType JAVA_OBJECT 它表示SQL类型是特定于数据库的,并且已映射到可以通过getObject和setObject方法访问的Java对象。
public static final JDBCType LONGNVARCHAR 它标识通用SQL类型LONGNVARCHAR。
public static final JDBCType NCHAR 它标识通用SQL类型NCHAR。
public static final JDBCType NCLOB 它标识通用SQL类型NCLOB。
public static final JDBCType NULL 它标识通用SQL值NULL。
public static final JDBCType NUMERIC 它标识通用SQL类型NUMERIC。
public static final JDBCType NVARCHAR 它标识通用SQL类型NVARCHAR。
public static final JDBCType OTHER 它表示SQL类型是特定于数据库的,并且已映射到可以通过getObject和setObject方法访问的Java对象。
public static final JDBCType REAL 它标识通用SQL类型REAL。标识通用SQL类型VARCHAR。
public static final JDBCType REF 它标识通用SQL类型REF。
public static final JDBCType REF_CURSOR 它标识通用SQL类型REF_CURSOR。
public static final JDBCType ROWID 它标识SQL类型ROWID。
public static final JDBCType SMALLINT 它标识通用SQL类型SMALLINT。
public static final JDBCType SQLXML 它标识通用SQL类型SQLXML。
public static final JDBCType STRUCT 它标识通用SQL类型STRUCT。
public static final JDBCType TIME 它标识通用SQL类型TIME。
public static final JDBCType TIME_WITH_TIMEZONE 它标识通用SQL类型TIME_WITH_TIMEZONE。
public static final JDBCType TIMESTAMP 它标识通用SQL类型TIMESTAMP。
public static final JDBCType TIMESTAMP_WITH_TIMEZONE 它标识通用SQL类型TIMESTAMP_WITH_TIMEZONE。
public static final JDBCType TINYINT 它标识通用SQL类型TINYINT。
public static final JDBCType VARBINARY 它标识通用SQL类型VARBINARY。
public static final JDBCType VARCHAR 它标识通用SQL类型VARCHAR。

JDBCType方法

方法 说明
public String getName() 它返回代表SQL数据类型的SQLType名称。
public String getVendor() 它返回支持此数据类型的供应商的名称。
public Integer getVendorTypeNumber() 它返回数据类型的供应商特定类型编号。
public static JDBCType valueOf(int type) 它返回与指定的Types值相对应的JDBCType。如果此枚举类型不包含具有指定Types值的常量,则抛出IllegalArgumentException。
public static JDBCType valueOf(String name) 它返回带有指定名称的该类型的枚举常量。该字符串必须与用于声明此类型的枚举常量的标识符完全匹配。如果此枚举类型没有指定名称的常量,则抛出IllegalArgumentException。如果参数为null,则抛出NullPointerException。
public static JDBCType[] values() 它按声明顺序返回包含此枚举类型的常量的数组。此方法可用于遍历常量。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4