Java8 JDBC改进
精华
小牛编辑
157浏览
2023-03-14
1 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行集的增强功能。
2 Java JDBC驱动程序操作
当要通过DriverManager通知驱动程序时,必须实现此接口。它添加在java.sql包中,仅包含一个抽象方法
2.1 DriverAction方法
方法 | 描述 |
---|---|
void deregister() | DriverManager.deregisterDriver(Driver)调用此方法以通知JDBC驱动程序已注销。 |
取消注册方法仅供JDBC驱动程序使用,而不能由应用程序使用。
建议不要使用JDBC驱动程序在公共类中实现DriverAction。
如果在调用注销方法时存在到数据库的活动连接,则具体取决于连接是关闭还是允许继续。调用此方法后,驱动程序是否可能会限制创建与数据库的新连接,调用其他Driver方法或引发SQLException的能力,这取决于实现。
3 Java JDBC4.2 DriverAction示例
/**
* 小牛知识库网: https://www.xnip.cn
*/
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