Java通过 JDBC 连接数据库操作(1),菜鸟驿站面试问题

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
img

正文


在了解 JDBC 概念之前,我们先来想⼏个问题:

  • 不同数据库⼚商的数据库驱动⼀样吗?

  • 不同数据库⼚商的 API 调⽤⼀样吗?

  • 使⽤ Java 程序只操作 MySQL 吗?还是有可能操作 Oracle、Sql Server、DB2 等数据库?

以上的答案都是否定的,也就是说不同厂商提供了不同的数据库驱动,提供了不同的 API 接口,我们试想一个场景,一家公司在起初进行数据存储的时候,使用的是免费开源的MySQL作为数据库进行存储的,在后来的发展中,业务越来越庞大,此时想要更换一个数据库,换成用Oracle来继续存储,那么由于这两种数据库他们的驱动是不兼容的,不能够共用一套代码程序来操作,那么此时更换就十分的麻烦了。

而 JDBC 就是解决这个问题的,它为 Java 开发人员操作数据库提供了⼀个标准的 API,可以为多种关系数据库提供统一访问

简单来说,使⽤了 JDBC 之后,不管是什么数据库与什么数据库驱动,我们只需要使用一套标准代码就可以实现对不同数据库进行统一操作(添加、修改、删除、查询),也就解决了我们上⾯说的那些问题了。

JDBC 工作原理

JDBC 为多种关系数据库提供了统一访问方式,作为特定厂商数据库访问 API 的⼀种⾼级抽象, 它主要包含⼀些通⽤的接⼝类。

JDBC 访问数据库层次结构:

在这里插入图片描述

架包:

在这里插入图片描述

JDBC 优势:

  • Java 语⾔访问数据库操作完全⾯向抽象接口编程。

  • 开发数据库应用不用限定在特定数据库⼚商的 API。

  • 程序的可移植性大大增强。

3. JDBC 使用


3.1 创建项目并添加 MySQL 驱动

创建⼀个 Java 项⽬,并添加 MySQL 驱动(mysql-connector-java-5.1.47.jar),需要注意不同数据 库版本要对应相应的驱动包。

操作步骤:点击项⽬属性 -> Modules -> Dependencies -> 点击“+”号 -> 1.Jars or directories -> 选择驱动包 -> 点击 OK 确认。

在这里插入图片描述

然后就有啦

在这里插入图片描述

3.2 使用代码操作数据库

操作数据库 MySQL 提供了两种操作 API:

  • DriverManager

  • DataSource(推荐使⽤,OOP 编码的思想和代码模式)

接下来咱们使⽤ DataSource 来实现操作数据库。 使⽤代码操作数据库分为以下 5 个步骤:

  1. 获取数据源(准备工作,相当于使用mysql客户端并输入了密码)

  2. 获取连接(输入了正确的密码,并且进入到了MySQL操作的界面)

  3. 获取执⾏器(连接到服务器并切换到数据库)

  4. 组装SQL并调用执行的API(相当于在mysql客户端输入了aql命令,并执行了回车操作)

  5. 关闭资源(关闭mysql客户端)

3.2.1 获得数据源

数据源是 MysqlDataSource,获取⽅式如下,需要输⼊数据库连接的 MySQL 服务器地址、⽤户名和密 码:

// 1.创建数据源

MysqlDataSource dataSource = new MysqlDataSource();

// 1.1 设置连接的 MySQL 服务器

dataSource.setURL(“jdbc:mysql://127.0.0.1:3306/java?characterEncoding=utf8&useSSL=false”);

// 1.2 设置⽤户名

dataSource.setUser(“root”);

// 1.3 设置密码

dataSource.setPassword(“root”);

在这里插入图片描述

3.2.2 获得连接

连接对象是 Connection,注意此步骤操作容易出错,⼀定是 com.mysql.jdbc 包下的 Connection 对象:

// 2.得到连接 Connection

Connection connection = (Connection) dataSource.getConnection();

3.2.3 获得执行器

执⾏器是⽤来执⾏ SQL 命令的,执⾏器有三种:

  • Statement

  • PreparedStatement

  • CallableStatement

在这里插入图片描述

实际开发中最常⽤的是 PreparedStatement 对象。

实现:

// 3.获得执⾏器

PreparedStatement statement = connection.prepareStatement(“select * from student where username=?”);

// 3.1 占位符赋值

statement.setString(1, “王五”);

3.3.4 查询或操作数据库

查询数据库使⽤ PreparedStatement.executeQuery ⽅法,返回⼀个 ResultSet 对象,具体实现代码 如下:

// 4.获得结果集

ResultSet resultSet = statement.executeQuery();

// 4.1 获得结果并打印

while (resultSet.next()) {

String sn = resultSet.getString(“sn”);

String username = resultSet.getString(“username”);

String mail = resultSet.getString(“mail”);

System.out.println(String.format(“SN:%s,UserName:%s,Mail:%s”, sn,

username, mail));

}

总结

对于面试还是要好好准备的,尤其是有些问题还是很容易挖坑的,例如你为什么离开现在的公司(你当然不应该抱怨现在的公司有哪些不好的地方,更多的应该表明自己想要寻找更好的发展机会,自己的一些现实因素,比如对于我而言是现在应聘的公司离自己的家更近,又或者是自己工作到达了迷茫期,想跳出迷茫期等等)

image

Java面试精选题、架构实战文档

整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~

你的支持,我的动力;祝各位前程似锦,offer不断!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

;祝各位前程似锦,offer不断!**

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-MH0T3mhV-1713631991036)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值