javaconnection,JAVAconnection对象为空

http://www.itjxue.com  2023-01-15 17:40  来源:未知  点击次数: 

java中的Connection怎么用

public interface Connection

extends Wrapper

与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果。

Connection 对象的数据库能够提供描述其表、所支持的 SQL 语法、存储过程、此连接功能等等的信息。此信息是使用 getMetaData 方法获得的。

注:在配置 Connection 时,JDBC 应用程序应该使用适当的 Connection 方法,比如 setAutoCommit 或 setTransactionIsolation。在有可用的 JDBC 方法时,应用程序不能直接调用 SQL 命令更改连接的配置。默认情况下,Connection 对象处于自动提交模式下,这意味着它在执行每个语句后都会自动提交更改。如果禁用了自动提交模式,那么要提交更改就必须显式调用 commit 方法;否则无法保存数据库更改。

使用 JDBC 2.1 核心 API 创建的新 Connection 对象有一个与之关联的最初为空的类型映射。用户可以为此类型映射中的 UDT 输入一个自定义映射关系。在使用 ResultSet.getObject 方法从数据源中获取 UDT 时,getObject 方法将检查该连接的类型映射是否有对应该 UDT 的条目。如果有,那么 getObject 方法将该 UDT 映射到所指示的类。如果没有条目,则使用标准映射关系映射该 UDT。

用户可以创建一个新的类型映射,该映射是一个 java.util.Map 对象,可在其中创建一个条目,并将该条目传递给可以执行自定义映射关系的 java.sql 方法。在这种情况下,该方法将使用给定的类型映射,而不是与连接关联的映射。

例如,以下代码片段指定 SQL 类型 ATHLETES 将被映射到 Java 编程语言中的 Athletes 类。该代码片段为 Connection 对象 con 获取类型映射,并在其中插入条目,然后使用新的条目将该类型映射设置为连接的类型映射。

java.util.Map map = con.getTypeMap();

map.put("mySchemaName.ATHLETES", Class.forName("Athletes"));

con.setTypeMap(map);

java Connection 是个接口

你最开始注册驱动时不是传了一个字符串进去吗,Class.forName("className");这其实就是一个实现了Driver接口的类,当你调用DriverManager.getConnection(url)时,DriverManager将这个url传给已经注册过所有的Driver对象,看是否有哪一个驱动即Driver 实现类能够解吸这个url,假如有能够解吸的话,那么调用这个Driver实现类的getConnection方法,而不同的Driver的getconnection方法实现肯定是不同的,但是他们都返回的是实现的cnnection接口的实现类,所以当你调用getconnection方法时,你实际在调用你的Class.forName传如的类的getconnection方法

也就是说,你是获取了注册了的Connection对象,是一个已经实现的类。

这个就好比log4j,是一个接口,你使用任何记录日志的jar,都是通过这个log4j统一接口去解析,返回给你一个已经实现的类。

Java中Connection对象的疑惑

引用类型的初期值都是null,可以理解成C中的指针,由于没有初期化,系统不会分配空间,引用类型地变量不会指向任何堆栈空间。所以是null

关于java中接口Connection的问题?

首先

DriverManager.getConnection(url,user,password);

这个返回的是Connection接口的一个实例化对象。

相当于conn是Connection接口的实例化。

所以可以直接调用createStatement();

记住:接口用来定义申明,而实现类可以是多种变化的,所以通常我们在调用时写接口,而不是具体的实现类,可以降低代码的耦合性,提高重用度

(责任编辑:IT教学网)

更多

相关JSP教程文章

推荐JSP教程文章