目录

 

JDBC 常用的类和接口

一、Connection接口

二、Statement接口

三、PreparedStatement接口

四、DriverManager类

五、ResultSet接口 

六、Java   API文档使用

七、针对JDBC的基本操作


JDBC 常用的类和接口

在JAVA语言提供了很多的接口和类来用于数据库的变成,

下面将介绍一些JDBC常用的类和接口,它们都是在java.sql包中

一、Connection接口

connection接口是与数据库进行连接,在连接中执行SQL语句并返回结果集,

  • Connection对象的数据库能够提供描述其表,其支持的SQL语法,其存储过程,此连接的功能等的信息。 该信息是用getMetaData方法获得的。
    注意:配置Connection时,JDBC应用程序应使用适当的Connection方法,例如setAutoCommitsetTransactionIsolation 。 当有JDBC方法可用时,应用程序不应直接调用SQL命令来更改连接的配置。 默认情况下, Connection对象处于自动提交模式,这意味着它在执行每个语句后自动提交更改。 如果自动提交模式已禁用,必须显式调用方法commit才能提交更改; 否则数据库更改将不会被保存。
    使用JDBC 2.1核心API创建的新的Connection对象具有与之关联的最初为空的类型映射。 用户可以在此类型地图中输入UDT的自定义映射。 当UDT从数据源中检索该方法ResultSet.getObject ,所述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);

下面介绍connection接口中的方法

connection接口方法

方法

功能

createStatement()

创建Statement的对对象

preparedStatement()

创建预处理对象preparedStatement

isReadOnly()

查看当前的Connection对象的读取模式是不是只读模式

setReadOnly()

设置当前Connection对象的读取方式,默认是非读取方式

commit()

使所有上次提交/回滚后进行的更改成为持久的更改,并释放此Connection对象当前持有的所有数据锁

roolback()

取消在当前事务中进行的所有更改,并释放此Connection对象当前持有的所有数据锁

close()

立即释放Connection对象的数据库和JDBC资源,而不是等待他们自动释放

 

 

二、Statement接口

Statement接口用于在已经建立连接的基础上向数据库发送SQL语句。

在JDBC中有三种Statement对象

1.Statement对象,用于执行不带参数的简单的SQL语句

2.PreparedStatement:继承Statement,用于执行动态的SQL语句。

3.CallableStatement:继承了PreparedStatement,用于执行对数据库存储过程的调用。

Statement接口常用方法

方法

功能

execute(String  sql)

执行静态的select语句,该语句可能返回多个结果集

executeQua\ery(String  sql)

执行给定的SQL语句,该语句返回单个ResultSet对象

clearBatch()

清空此Statement对象的当前SQL语句列表

executeBatch()

将一批命令提交给数据库来执行,如果全部执行成功,则返回更新计数组成的数组,

close()

释放Statement实例占用的数据库和JDBC资源

 

 

 

三、PreparedStatement接口

PreparedStatement接口用来动态的执行SQL语句,

通过PreparedStatement实例执行的动态SQL语句,将被编译并保存在PreparedStatement实例中,从而反复的执行该SQL语句

  • public interface PreparedStatement extends Statement 表示预编译的SQL语句的对象。 SQL语句已预编译并存储在PreparedStatement对象中。 然后可以使用该对象多次有效地执行此语句。
    注意:setter方法( setShortsetString用于设置IN参数值必须指定与所定义的SQL类型的输入参数的兼容的类型,等等)。 例如,如果IN参数具有SQL类型INTEGER ,则应使用方法setInt
    如果需要任意参数类型转换,方法setObject应与目标SQL类型一起使用。
    在设定的参数的以下示例中, con表示一个活动连接: PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES SET SALARY = ? WHERE ID = ?"); pstmt.setBigDecimal(1, 153833.00) pstmt.setInt(2, 110592) 下面介绍PreparedStatement的接口方法
  • PreparedStatement接口方法

方法

功能

setInt()

指定位置的参数设置int值

setaFloat()

指定位置的参数设置float值

setDouble()

指定位置的参数设置double值

setBoolean

指定位置的参数设置boolean值

setString()

指定位置的参数设置string值

executeUpdate()

执行前面包含的参数的动态insert、update、delete语句

clearParameters()

清除当前的所有参数的值

 

 

 

四、DriverManager类

DriverManager类用来管理数据库的所有驱动程序,它是JDBC的管理层,作用于用户和驱动程序之间。

通过getConnection()方法来建立连接,否则会抛出异常。

  • public class DriverManager extends Object用于管理一组JDBC驱动程序的基本服务。
    注意: JDBC 2.0 API中新增的DataSource接口提供了另一种连接到数据源的方法。 使用DataSource对象是连接到数据源的首选方法。
    作为其初始化的一部分, DriverManager类将尝试加载在“jdbc.drivers”系统属性中引用的驱动程序类。 这允许用户自定义应用程序使用的JDBC驱动程序。 例如在〜/ .hotjava / properties文件中,您可以指定:
jdbc.drivers=foo.bah.Driver:wombat.sql.Driver:bad.taste.ourDriver

DriverManager方法getConnectiongetDrivers已得到增强,以支持Java Standard Edition Service Provider机制。 JDBC 4.0驱动程序必须包含文件META-INF/services/java.sql.Driver 。 该文件包含java.sql.Driver的JDBC驱动程序实现的java.sql.Driver 。 例如,要加载my.sql.Driver类, META-INF/services/java.sql.Driver文件将包含条目:

my.sql.Driver

应用程序不再需要使用Class.forName()显式加载JDBC驱动程序。 目前使用加载JDBC驱动程序的现有程序Class.forName()将继续无需修改工作。

当调用方法getConnection时, DriverManager将尝试从初始化中加载的驱动程序中找到合适的驱动程序,并使用与当前小程序或应用程序相同的类加载器显式加载驱动程序。

从Java 2 SDK,Standard Edition,1.3版开始,只有在授予了适当的权限后才能设置记录流。 通常这将通过ToolTool工具来完成,该工具可用于授予permission java.sql.SQLPermission "setLog"

下面介绍DriverManager类

DriverManager类方法

方法

功能

getConnection(String url,String user,String password)

进行连接数据库

setLoginTimeout()

获取驱动程序试图登入到某一数据库是可以等待的最长的时间,以秒为单位

printIn()

将一条消息打印在当前JDBC日志流中

 

 

五、ResultSet接口 

ResultSet接口类似于一个临时表,用来暂存数据库查询操作所获取的结果集,

ResultSet实例具有指向当前数据行的指针,指针开始的位置在第一条记录的前面,通过next()方法可将指针下移。

  • public interface ResultSet extends Wrapper, AutoCloseable 表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。 ResultSet对象保持一个光标指向其当前的数据行。 最初,光标位于第一行之前。 next方法将光标移动到下一行,并且由于在ResultSet对象中没有更多行时返回false ,因此可以在while循环中使用循环来遍历结果集。
    默认的ResultSet对象不可更新,并且只有一个向前移动的光标。 因此,您只能从第一行到最后一行迭代一次。 可以生成可滚动和/或可更新的ResultSet对象。 以下代码片段(其中con是有效的Connection对象)说明了如何使可滚动且对其他人更新不敏感的结果集,这是可更新的。 有关其他选项,请参阅ResultSet字段。Statement stmt = con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2"); // rs will be scrollable, will not show changes made by others, // and will be updatable 所述ResultSet接口提供getter方法( getBooleangetLong ,用于从当前行检索列值,等等)。 可以使用列的索引号或列的名称来检索值。 一般来说,使用列索引将更有效率。 列从1编号。为了最大可移植性,每行中的结果集列应以从左到右的顺序读取,每列应只读一次。 对于getter方法,JDBC驱动程序尝试将底层数据转换为getter方法中指定的Java类型,并返回合适的Java值。 JDBC规范具有一个表格,该表格显示了可由ResultSet getter方法使用的SQL类型到Java类型的允许映射。
    用作getter方法输入的列名不区分大小写。 当使用列名称调用getter方法时,多个列具有相同的名称,将返回第一个匹配列的值。 列名称选项用于在生成结果集的SQL查询中使用列名时使用。 对于在查询中未明确命名的列,最好使用列号。 如果使用列名称,程序员应该小心保证它们唯一地引用预期的列,这可以通过SQL AS子句来确保。
    JDBC 2.0 API(Java¢2 SDK,Standard Edition,1.2版)中的此接口添加了一组更新方法。 关于getter方法参数的注释也适用于updater方法的参数。
    更新方法可以以两种方式使用:
  1. 更新当前行中的列值。 在可滚动的ResultSet对象中,光标可以向前和向后移动到绝对位置或相对于当前行的位置。 下面的代码段更新NAME所述的第五行中列ResultSet对象rs ,然后使用方法updateRow来更新该数据的源表rs推导。
NAME
AINSWORTH
  1. 将列值插入到插入行中。 可更新的ResultSet对象具有与其相关ResultSet的特殊行,用作构建要插入的行的暂存区域。 以下代码片段将光标移动到插入行,构建一个三列行,并将其插入到rs ,并使用方法insertRow进入数据源表。
AINSWORTH
35
true

ResultSet当对象将自动关闭Statement生成它对象被关闭时,重新执行,或用于检索从多个结果的序列中的下一结果。

ResultSet对象的列的数量,类型和属性由ResultSet.getMetaData方法返回的ResultSetMetaData对象提供。

下面介绍ResultSet接口 方法

  • ResultSet接口 方法

方法

功能

getInt()

以int形式存放ResultSet对象的当前行的指定列表。如果列表为NULL,则返回0

first()

将指针移动到当前记录的第一行

last()

将指针移动到当前记录的最后一行

next()

将指针指向下一行

getrow()

查看当前行的索引号

 

 

*注:其他的接口的方法可以查看JAVA    API进行查看,参考标题六

六、Java   API文档使用

API全称Application  Programming  Interface。及应用程序编程接口,

主要包括类的继承结构、成员变量、成员方法、构造方法、静态成员的描述信息和详细说明等内容

API  1.8中文版免费领取连接(针对英文不好的)

    JAVA API 1.8中文版版免费领取 请点击

另外,JDK10的API可以在官网找到,但是是全英文,英文好的小伙伴可以使用。


 

如果感觉文章不错,可以关注本博主并点赞呦,欢迎转载!!!