新手小白学JDBC

什么是JDBC(本质是接口)?

JDBC:java database connectivity(java语言连接数据库)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

JDBC准备工作(配置驱动)

在这里插入图片描述

为什么制定JDBC接口?

JDBC编程6步骤

第一步:注册驱动:告诉java程序,即将连接哪个数据库
第二步:获取连接:表示jvm的进程和数据库进程之间的通道打开,进程之间的通信很重要,使用完毕要记得关闭通道
第三步:获取数据库操作对象(专门执行sql语句的对象):
第四步:执行sql语句(DQL/DML)
第五步:处理查询结果集(如果不是select查询语句,则省略)
第六步:释放资源:java与数据库属于进程之间的通信,使用完毕记得关闭

实战例子

第一步:注册驱动

在java.sql包下有一个类DriverManager,其中有一个registerDriver方法注册驱动。
在这里插入图片描述
在这里插入图片描述
mysql驱动下的driver.class中有静态代码块,其中有上述的注册驱动的代码,因此,常用的注册驱动的方法是通过类加载即可执行:
在这里插入图片描述

第二步:获取连接

还是在DriverManager类下,有静态方法getConnection方法,用来获取连接。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第三步:获取数据库连接对象

在第二步我们拿到了连接connection,接下来通过调用connection的方法回去数据库连接对象
在java.sql包下有个接口Connection,其下有一个静态方法creatStatement,用来创建一个statement对象,用来将sql语句发送给数据库。
在这里插入图片描述
Statement statement = connection.createStatement();

第四步:执行sql语句

有了statement对象之后,statement类中有一个executeUpdate的方法,专门用来执行DML语句(insert 、delete 、 cretate),并返回一个int值,其返回值是该条语句所影响数据库中的记录条数。这里我们以插入一条语句为例,因此返回值应该为1
在这里插入图片描述
在这里插入图片描述
倘若执行查询select语句,使用executeQuery方法,来专门执行查询语句(select),其返回结果是查询结果集ResultSet

第五步:处理查询结果集

得到查询结果集后,如何将返回的查询结果集中的数据读取出来?
答:使用接口ResultSet下的方法next()来遍历结果集,其返回值为true或者false:若当前新的行有效,返回true;如果不存在下一行,返回false。
如何将一行中的数据读出来?
答:使用结果集ResultSet中有个getString(下标(列下标),jdbc中所有下标从1开始)方法,不管数据库中的数据类型是什么,都以String的类型取出。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
此外,也可以用getInt()、getDouble()的方法以int或者double类型的形式取出查询结果集中的int或者double类型的数据。

第六步: 释放资源和连接

为了保证资源一定释放,在finally语句块中执行此步骤关闭资源。
处理结束后,需要将两个进程之间的链接释放掉,释放资源时,要遵循从小到大,从后往前,每个连接需要分别try catch释放。
释放顺序为:ResultSet>Statement>Connection

PreparedStatement与Statement的对比与使用

在这里插入图片描述

如何在JDBC中设置手动提交事务(默认自动提交事务)

首先,将自动提交事务关闭,通过Connection中的setAutoCommit(false)来关闭。
然后在一连串sql语句提交之后,手动提交 commit。
同时,一旦发生异常,为了安全性,我们需要回滚之前提交的所有sql语句,因此在异常处理catch处要回滚事务。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

悲观锁和乐观锁

在这里插入图片描述

视频来源:B站 动力节点:JDBC从入门到精通视频教程-JDBC实战精讲

视频链接:https://www.bilibili.com/video/BV1Bt41137iB?p=1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值