不懂同学的看过来(关于jdbc的基础)

一.首先我们看看什么是JDBC

1.JDBC全称是Java DataBase Connectivity,是可用于Java ApI(应用程序设计接口),是连接数据库和Java应用程序和Java应用程序的纽带。JDBC是一种底层ApI,在访问数据库时需要业务逻辑层中嵌入sql语句。

2.其任务是:

(1)与数据库建立一个连接;

(2)向数据库发送sql语句;

(3)处理数据库返回结果;

3.JDBC的总体结构:应用程序,驱动管理器,驱动程序和数据源。

二.JDBC中常用的接口和类

1.DriverManager类:

DriverManager类是JDBC的管理层,用于管理数据库中的驱动程序。在操指定数据库之前,需要用Java中Class类的静态方法forName(String class Name)加载指定的数据库的驱动程序。

例:加载MySQL数据库驱动程序(包名为:mysql_connector_java_8.X.X.jar)的代码如下:

try{
    Class.forName("com.mysql.cj.jdbc.Driver");//加载Mysql数据库驱动
}Catch{ClassNotFoundException e){
e. printStackTrace();
}

加载完载相应数据库的驱动程序后,Java会自动将驱动程序的实例注册到DriverManager

类中,这时即可通过DriverManager类的相关方法连接的相关的数据库。

2.DriverManager类的常用方法:

(1)getConnection(String url,String user,String password):指定3个入口参数(依次是连接数据库的URL、用户名、密码)来获取与数据库的连接。

(2)setLogin Timeout():获取驱动程序试图登录到某一数据库时可以等待的最长时间,以秒为单位。

(3)println(string message):将一条消息打印到当前的JDBC日志流中。

使用DriverManager连接本地MySQL数据库代码如下:

DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useUncode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBaehavior=CONVERT_TO_NULL&allowPublicKeyRetrieval=true","root","password");

在上述连接中,127.0.0.1表示本地IP地址,3306是MySQL的默认端口,test是数据库的名称

userUnicode用来启动Unicode字符集,characterEncoding指定字符集为UTF1-8,useSSL指明不启用SSL连接,serverTimezone将时区定为中国,zeroDateTimeBehavior让空白日期以null形式返回,allowPublicKeyRetrieval允许客户从服务器获取公钥。

3.Connection接口 

Connection接口代表与特定的数据库的连接,在连接上下文中执行sql语句并返回结果。 

常用方法:

(1)createStatement():创建Statement对象。

(2)preparedStatement():创建预处理对象。

(3)commit():使所用上一次提交/回滚后进行的更改成为持久更改,并释放Connection对象当前持有的所有数据库锁。

(4)roolback:取消在当前事务中进行的所有更改,并释放Connection对象当前持有的所有数据库锁。

(5)close():立即释放此Connection对象的数据库和JDBC资源,而不是等待他们被自动释放。

4.Statement接口

Statement接口用于在已经建立连接的基础上向数据库发送sql语句。在JDBC中有三种Statement对象,分别是Statement、PreparedStatement和CallableStatement。Statement对象用于执行不同参数的简单sql语句;PreparedStatement继承Statement,用来执行动态sql语句,将被预编译并保存Prepared实例中可反复执行该sql语句;CallableStatement继承了PreparedStatement,用于执行对数据库储存过程的调用。

Statement接口的常用方法:

(1)execute(String sql):执行静态的SELECT语句,该语句可能返回多个结果集。

(2)executeQuery(String sql):执行给定的sql语句,该语句返回单个ResultSet对象。

(3)clearBatch:清空此Statement对象的当前sql命令列表。

(4)executeBatch():将命令提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。数组元素的排序与SQL语句的添加顺序对应。

(5)addBatch(String SQL)将给定的SQL命令添加到此Statement对象的当前命令列表中。如果驱动程序不支持批量处理。将抛开异常。

(6)close()释放Statement实例占用的数据库和JDBC的资源。

5.ResultSet接口

ResultSet接口类似于一个临时表,用来暂时存放数据库查询操作所带来的结果集。ResultSet实例具有指向当前数据行的指针,指针开始的位置在第一条记录的前面,通过next()方法可将指针向下移。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值