当前位置: 首页 > news >正文

数据库技术

一、什么是JDBC?

JDBC 全称是 Java Data Base Connectivity,翻译过来就是Java数据库连接。你可以把它理解成Java程序和数据库之间的“通用连接器”。

1. 它的核心作用

  • 它是Java官方提供的一套API(接口),用来规范所有Java程序怎么和数据库打交道。
  • 不管你用的是MySQL、Oracle还是SQL Server,只要实现了JDBC规范,Java程序都能用同一套代码去操作,不用为每个数据库单独写一套逻辑。
  • 你项目里的DBUtils工具类,就是用JDBC写的,用来获取数据库连接、执行SQL语句。

2. 它为什么这么重要?

没有JDBC,你的Java程序根本碰不到数据库。你写的图书增删改查功能,底层全是靠JDBC来完成的。


二、JDBC 完整流程(你项目里的实际步骤)

你写的DBUtils和DAO层,本质上就是按这个流程来的:

1. 加载并注册驱动

告诉Java程序,我们要用哪个数据库的驱动,比如MySQL的驱动:

Class.forName("com.mysql.cj.jdbc.Driver");

就像给电脑装了个“连接MySQL的驱动程序”,Java程序才能认识MySQL。

2. 获取数据库连接

DriverManager拿到和数据库的连接对象:

Connection con = DriverManager.getConnection(url, username, password);

这一步就像Java程序和数据库之间建立了一条“通道”,后面的操作都要靠这个通道。

3. 创建Statement对象

用来执行SQL语句,比如PreparedStatement

PreparedStatement pst = con.prepareStatement(sql);

它就是你在通道里“发送SQL指令的工具”,你写的insertselect语句都要靠它执行。

4. 执行SQL语句

  • 增删改用 executeUpdate(),返回受影响的行数
  • 查询用 executeQuery(),返回ResultSet结果集
// 增删改
int rows = pst.executeUpdate();
// 查询
ResultSet rs = pst.executeQuery();

5. 处理结果集(查询时用)

遍历ResultSet,把查到的数据封装成JavaBean对象:

while (rs.next()) {Book book = new Book();book.setId(rs.getInt("id"));book.setBook_name(rs.getString("book_name"));
}

6. 关闭资源

一定要关闭ResultSetStatementConnection,不然会造成资源泄漏:

DBUtils.close(rs, pst, con);

这就是你写的DBUtils.close()方法的作用,把所有资源安全释放掉。


三、什么是CRUD操作?

CRUD 是四个单词的缩写,就是你项目里的增删改查:

  • Create:创建(新增)
  • Read:读取(查询)
  • Update:更新(修改)
  • Delete:删除

你写的图书管理项目,DAO层的所有方法,本质上就是这四个操作。

1. 项目里的CRUD示例

(1)Create 新增

public int addBook(Book book) {String sql = "insert into book(book_name,author,price,publish_date) values (?,?,?,?)";// ... 执行SQL
}

(2)Read 查询

// 查询所有
public List<Book> getAllBooks() {String sql = "select * from book";// ... 执行SQL,封装结果
}
// 按id查询
public Book getBookById(int id) {String sql = "select * from book where id=?";// ... 执行SQL,封装结果
}

(3)Update 修改

public int updateBook(Book book) {String sql = "update book set book_name=?,author=?,price=?,publish_date=? where id=?";// ... 执行SQL
}

(4)Delete 删除

public int deleteBook(int id) {String sql = "delete from book where id=?";// ... 执行SQL
}

四、答辩高频考点(学生版)

  1. 什么是JDBC?你项目里怎么用的?
    答:JDBC是Java连接数据库的一套标准接口,我项目里的DBUtils工具类就是用JDBC写的,用来获取数据库连接、关闭资源,DAO层的增删改查也都是靠JDBC执行SQL语句完成的。

  2. JDBC的执行流程是什么?
    答:加载驱动 → 获取连接 → 创建Statement对象 → 执行SQL → 处理结果集(查询时) → 关闭资源。

  3. 为什么要用PreparedStatement而不是Statement
    答:PreparedStatement?占位符预编译SQL,能防止SQL注入,更安全,而且可以重复使用,效率更高。

  4. 什么是CRUD?你项目里实现了哪些?
    答:CRUD就是增删改查,我项目里实现了图书的新增、查询所有、按id查询、修改、删除这几个操作。

http://www.jsqmd.com/news/693489/

相关文章:

  • FanControl深度解析:从基础配置到专业级风扇调校全指南
  • 软件工程简答题深度解析:从生命周期到维护策略的万字通关指南
  • Win10/Win11永久激活工具HWIDGen:使用方法与激活原理全解析
  • 告别电源啸叫和过热:手把手教你为LMR14030挑选合适的功率电感(附DCR与饱和电流详解)
  • 2026年嘉兴工厂短视频代运营全景指南:源头获客、全链路转化与本地化实战对标 - 优质企业观察收录
  • QQ截图独立版终极指南:免费免登录的专业截图工具完全教程 [特殊字符]
  • 中山定制楼梯选型全攻略:从技术参数到品牌甄别硬核指南 - 资讯焦点
  • 从VBA到Python:给老牌仿真软件HFSS做个自动化‘外科手术’
  • 从TCP到RoCEv2:为什么你的AI训练集群需要无损以太网?
  • Cookie Session
  • 激光器脉冲宽度控制技术详解:从纳秒到飞秒的调控艺术
  • Lineage2 Protocal - SD
  • 从‘画图’到‘设计’:聊聊AutoCAD Electrical插件如何帮你迈出电气设计自动化的第一步
  • 2026武功山美食探店:老萍巷武功山店实地体验实录 - 资讯焦点
  • 告别命令行:5分钟掌握Another Redis Desktop Manager可视化数据库管理
  • 3大核心优势:MPC Video Renderer如何让DirectShow视频播放焕发新生
  • 从恐龙书习题看面试:操作系统高频考点与解题思路全解析(附第九版答案)
  • 2026最新:西安化妆学校避坑必看!正规院校口碑榜,零基础也能躺赢就业 - 深度智识库
  • 微信小程序预约系统实战指南:从零到商业落地的完整解决方案
  • 5G ISAC多目标跟踪技术:原理与工业应用实践
  • 告别手动装软件!用MDT+ADK给新电脑批量预装Office和Chrome的保姆级教程
  • 2026热门NMN抗衰老产品哪个牌子最好?NMN产品榜单更新推荐,综合评分靠前TOP10品牌 - 资讯焦点
  • 黑龙江地区无缝焊接系统窗厂家综合实力排行盘点 - 资讯焦点
  • 从无人机到扫地机:聊聊机器人‘眼睛’(图像传感器)为什么怕抖?全局快门与卷帘快门选型指南
  • 仅剩180天!ISO/IEC 9899:2026正式生效倒计时,你的代码已通过__attribute__((safe_mem))校验了吗?
  • 福州美容机构如何选?专业与安心,才是变美核心 - 品牌2026
  • 手把手教你用Docker在Ubuntu上部署KMS服务器(避坑指南)
  • Kotlin老手看过来:用你熟悉的Compose UI,30分钟给Android应用加个Desktop版
  • 2026年游乐设备生产厂家深度解析:以专业标准引领行业升级 - 深度智识库
  • 从“神奇开关”到智能家居:双向可控硅在智能灯控、风扇调速里的那些坑与最佳实践