带你加深JDBC常用接口

带你加深JDBC常用接口

JDBC是用于执行SQL语句的API类包,由一组用Java语音编写的类和接口组成。JDBC提供了一种标准的应用程序设计接口。
JDBC的全称为Java DataBase Connectivity,是一套面向对象的应用程序接口(API)
JDBC中常用接口:
JDBC提供许多接口和类,可以实现与数据库的通信,本章讲解常用的JDBC接口和类。
1.驱动程序接口Driver
每种数据库的驱动程序都应该提供一个实现java.sql.Driver接口的类,简称Driver类,在加载Driver类时,应该创建自己的实例并向java.sql.DriverManager类注册该实例。
通常情况下通过java.lang.Class类的静态方法forName(String className),加载要连接数据库的Driver类,该方法的入口参数为要加载Driver类的完整包名。成功加载后,会将Driver类的实例注册到DriverManager类中,如果加载失败,将抛出ClassNotFoundException异常,即未找到指定Driver类的异常。

  public class JdbcTest {
 public static void main(String[] args) {
  try {
   Class.forName("com.mysql.jdbc.Driver");
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  }
 }
}

2.驱动程序管理器DriverManager
java.sql.DriverManager类负责管理JDBC驱动程序的基本服务,是JDBC的管理层,作用于用户和驱动程序之间,负责跟踪可用的驱动程序,并在数据库和驱动程序之间建立连接。另外,DriverManager类也处理诸如驱动程序登录时间限制及登录和跟踪消息的显示等工作。成功加载Driver类并在DriverManager类中注册后,DriverManager类即可用来建立数据库连接。
当调用DriverManager类的getConnection()方法请求建立数据库连接时,DriverManager类将试图定位一个适当的Driver类,并检查定位到的Driver类是否可以建立连接。如果可以,则建立连接并返回,如果不可以,则抛出SQLException异常。DriverManager类提供的常用方法如下表所示。.

public class JdbcTest {
 public static void main(String[] args) throws Exception {
  Connection con = null;
  String url = "jdbc:mysql://localhost:3306/mybatis";
  String user = "root";
  String password = "";
  try {
   Class.forName("com.mysql.jdbc.Driver");
   con = DriverManager.getConnection(url, user, password);
  } catch (ClassNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
}
方 法 名 称功 能 描 述
getConnection(String url, String user, String password)为静态方法,用来获得数据库连接,有3个入口参数,依次为要连接数据库的URL、用户名和密码,返回值类型为java.sql.Connection
setLoginTimeout(int seconds)为静态方法,用来设置每次等待建立数据库连接的最长时间
setLogWriter(java.io.PrintWriter out)为静态方法,用来设置日志的输出对象
println(String message)为静态方法,用来输出指定消息到当前的JDBC日志流

3.数据库连接接口Connection
java.sql.Connection接口负责与特定数据库的连接,在连接的上下文中可以执行SQL语句并返回结果,还可以通过getMetaData()方法获得由数据库提供的相关信息,例如数据表、存储过程和连接功能等信息。Connection接口提供的常用方法如下表
在这里插入图片描述

Connection con = DriverManager.getConnection(url, user, password);
PreparedStatement ps = con.prepareStatement("select * from t_user"); 

4.执行SQL语句接口Statement
java.sql.Statement接口用来执行静态的SQL语句,并返回执行结果。例如,对于insert、update和delete语句,调用executeUpdate(String sql)方法,而select语句则调用executeQuery(String sql)方法,并返回一个永远不能为null的ResultSet实例。Statement接口提供的常用方法如下表所示。
在这里插入图片描述
5.执行动态SQL语句接口PreparedStatement
java.sql.PreparedStatement接口继承于Statement接口,是Statement接口的扩展,用来执行动态的sql语句,即包含参数的SQL语句。通过PreparedStatement实例执行的动态SQL语句,将被预编译并保存到PreparedStatement实例中,从而可以反复并且高效地执行该SQL语句。 需要注意的是,在通过setXxx()方法为SQL语句中的参数赋值时,必须通过与输入参数的已定义SQL类型兼容的方法,也可以通过setObject()方法设置各种类型的输入参数。PreparedStatement的使用方法如下:

//同上(主要看PreparedStatement部分)
Connection con = DriverManager.getConnection(url, user, password);
PreparedStatement ps = con.prepareStatement("select * from t_user"); 

在这里插入图片描述
6.执行存储过程接口CallableStatement
java.sql.CallableStatement接口继承于PreparedStatement接口,是PreparedStatement接口的扩展,用来执行SQL的存储过程
JDBC API定义了一套存储过程SQL转义语法,该语法允许对所有RDBMS通过标准方式调用存储过程。该语法定义了两种形式,分别是包含结果参数和不包含结果参数。如果使用结果参数,则必须将其注册为OUT型参数,参数是根据定义位置按顺序引用的,第一个参数的索引为1。为参数赋值的方法使用从PreparedStatement中继承来的setXxx()方法。在执行存储过程之前,必须注册所有OUT参数的类型;它们的值是在执行后通过getXxx()方法检索的。CallableStatement可以返回一个或多个ResultSet实例。处理多个ResultSet对象的方法是从Statement中继承来的。
7.访问结果集接口ResultSet
java.sql.ResultSet接口类似于一个数据表,通过该接口的实例可以获得检索结果集,以及对应数据表的相关信息,例如列名和类型等,ResultSet实例通过执行查询数据库的语句生成。
ResultSet实例具有指向其当前数据行的指针。最初,指针指向第一行记录的前方,通过next()方法可以将指针移动到下一行,因为该方法在没有下一行时将返回false,所以可以通过while循环来迭代ResultSet结果集。在默认情况下ResultSet对象不可以更新,只有一个可以向前移动的指针,因此,只能迭代它一次,并且只能按从第一行到最后一行的顺序进行。如果需要,可以生成可滚动和可更新的ResultSet对象。
在这里插入图片描述
下一篇是JDBC访问数据库过程,尽情期待吧~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值