java 8 jdbc,Java 8 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行集的增强功能。

java-8-jdbc-improvements.jpg

Java JDBC驱动程序操作

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

DriverAction方法

方法

描述

void deregister()

DriverManager.deregisterDriver(Driver)调用此方法以通知JDBC驱动程序已注销。

取消注册方法仅供JDBC驱动程序使用, 而不能由应用程序使用。

建议不要使用JDBC驱动程序在公共类中实现DriverAction。

如果在调用注销方法时有到数据库的活动连接, 则具体取决于连接是关闭还是允许继续。调用此方法后, 驱动程序是否会限制创建与数据库的新连接, 调用其他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 JDBC类型

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

JDBCType字段

下表包含JDBCType中定义的常量。

枚举常量

描述

公共静态最终JDBCType ARRAY

它标识通用SQL类型ARRAY。

公共静态最终JDBCType BIGINT

它标识通用SQL类型BIGINT。

公共静态最终JDBCType BIT

它标识通用SQL类型BIT。

公共静态最终JDBCType BLOB

它标识通用SQL类型BLOB。

公共静态最终JDBCType BOOLEAN

它标识通用SQL类型BOOLEAN。

公共静态最终JDBCType CHAR

它标识通用SQL类型CHAR。

公共静态最终JDBCType CLOB

它标识通用SQL类型CLOB。

公共静态最终JDBCType DATALINK

它标识通用SQL类型DATALINK。

公共静态最终JDBCType DATE

它标识通用SQL类型DATE。

公共静态最终JDBCType DECIMAL

它标识通用SQL类型DECIMAL。

公共静态最终JDBCType DISTINCT

它标识通用SQL类型DISTINCT。

公共静态最终JDBCType DOUBLE

它标识通用SQL类型DOUBLE。

公共静态最终JDBCType FLOAT

它标识通用SQL类型FLOAT。

公共静态最终JDBCType INTEGER

它标识通用SQL类型INTEGER。

公共静态最终JDBCType JAVA_OBJECT

它指示SQL类型是特定于数据库的, 并且已映射到可以通过方法getObject和setObject访问的Java对象。

公共静态最终JDBCType LONGNVARCHAR

它标识通用SQL类型LONGNVARCHAR。

公共静态最终JDBCType NCHAR

它标识通用SQL类型NCHAR。

公共静态最终JDBCType NCLOB

它标识通用SQL类型NCLOB。

公共静态最终JDBCType NULL

它标识通用SQL值NULL。

公共静态最终JDBCType NUMERIC

它标识通用SQL类型NUMERIC。

公共静态最终JDBCType NVARCHAR

它标识通用SQL类型NVARCHAR。

公共静态最终JDBCType其他

它指示SQL类型是特定于数据库的, 并且已映射到可以通过方法getObject和setObject访问的Java对象。

公共静态最终JDBCType REAL

它标识通用SQL类型REAL。标识通用SQL类型VARCHAR。

公共静态最终JDBCType REF

它标识通用SQL类型REF。

公共静态最终JDBCType REF_CURSOR

它标识通用SQL类型REF_CURSOR。

公共静态最终JDBCType ROWID

它标识SQL类型ROWID。

公共静态最终JDBCType SMALLINT

它标识通用SQL类型SMALLINT。

公共静态最终JDBCType SQLXML

它标识通用SQL类型SQLXML。

公共静态最终JDBCType STRUCT

它标识通用SQL类型STRUCT。

公共静态最终JDBCType TIME

它标识通用SQL类型TIME。

公共静态最终JDBCType TIME_WITH_TIMEZONE

它标识通用SQL类型TIME_WITH_TIMEZONE。

公共静态最终JDBCType TIMESTAMP

它标识通用SQL类型TIMESTAMP。

公共静态最终JDBCType TIMESTAMP_WITH_TIMEZONE

它标识通用SQL类型TIMESTAMP_WITH_TIMEZONE。

公共静态最终JDBCType TINYINT

它标识通用SQL类型TINYINT。

公共静态最终JDBCType VARBINARY

它标识通用SQL类型VARBINARY。

公共静态最终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()

它以声明顺序返回包含此枚举类型的常量的数组。此方法可用于迭代常量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值