尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

MyBatis 操作数据库(⼊⻔)--JDBC 操作

MyBatis 操作数据库(⼊⻔)--JDBC 操作
📅 发布时间:2026/7/17 6:41:29

JDBC 操作⽰例

我们先来回顾⼀下JDBC的操作流程:

1. 创建数据库连接池DataSource 2. 通过DataSource获取数据库连接Connection

3. 编写要执⾏带?占位符的SQL语句

4. 通过Connection及SQL创建操作命令对象Statement

5. 替换占位符:指定要替换的数据库字段类型,占位符索引及要替换的值

6. 使⽤Statement执⾏SQL语句

7. 查询操作:返回结果集ResultSet,更新操作:返回更新的数量

8. 处理结果集

9. 释放资源 下⾯的⼀个完整案例,展⽰了通过JDBC的API向数据库中添加⼀条记录,修改⼀条记录,查询⼀条 记录的操作。

-- 创建数据库 create database if not exists library default character set utf8mb4; -- 使⽤数据库 use library; -- 创建表 create table if not exists soft_bookrack ( book_name varchar(32) NOT NULL, book_author varchar(32) NOT NULL, book_isbn varchar(32) NOT NULL primary key );

以下是JDBC操作的具体实现代码:

package com.example.demo.mapper; import javax.sql.DataSource; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class SimpleJdbcOperation { private final DataSource dataSource; public SimpleJdbcOperation(DataSource dataSource) { this.dataSource = dataSource; } /** * 添加⼀本书 */ public void addBook() { Connection connection = null; PreparedStatement stmt = null; try { //获取数据库连接 connection = dataSource.getConnection(); //创建语句 stmt = connection.prepareStatement( "insert into soft_bookrack (book_name, book_author, book_isbn) values (?,?,?);" ); //参数绑定 stmt.setString(1, "Spring in Action"); stmt.setString(2, "Craig Walls"); stmt.setString(3, "9787115417305"); //执⾏语句 stmt.execute(); } catch (SQLException e) { //处理异常信息 } finally { //清理资源 try { if (stmt != null) { stmt.close(); } if (connection != null) { connection.close(); } } catch (SQLException e) { // } } } /** * 更新⼀本书 */ public void updateBook() { Connection connection = null; PreparedStatement stmt = null; try { //获取数据库连接 connection = dataSource.getConnection(); //创建语句 stmt = connection.prepareStatement( "update soft_bookrack set book_author=? where book_isbn=?;" ); //参数绑定 stmt.setString(1, "张卫滨"); stmt.setString(2, "9787115417305"); //执⾏语句 stmt.execute(); } catch (SQLException e) { //处理异常信息 } finally { //清理资源 try { if (stmt != null) { stmt.close(); } if (connection != null) { connection.close(); } } catch (SQLException e) { // } } } /** * 查询⼀本书 */ public void queryBook() { Connection connection = null; PreparedStatement stmt = null; ResultSet rs = null; Book book = null; try { //获取数据库连接 connection = dataSource.getConnection(); //创建语句 stmt = connection.prepareStatement( "select book_name, book_author, book_isbn from soft_bookrack where book_isbn =?" ); //参数绑定 stmt.setString(1, "9787115417305"); //执⾏语句 rs = stmt.executeQuery(); if (rs.next()) { book = new Book(); book.setName(rs.getString("book_name")); book.setAuthor(rs.getString("book_author")); book.setIsbn(rs.getString("book_isbn")); } System.out.println(book); } catch (SQLException e) { //处理异常信息 } finally { //清理资源 try { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (connection != null) { connection.close(); } } catch (SQLException e) { // } } } public static class Book { private String name; private String author; private String isbn; //省略 setter getter ⽅法 } }

从上述代码和操作流程可以看出,对于JDBC来说,整个操作⾮常的繁琐,我们不但要拼接每⼀个参 数,⽽且还要按照模板代码的⽅式,⼀步步的操作数据库,并且在每次操作完,还要⼿动关闭连接 等,⽽所有的这些操作步骤都需要在每个⽅法中重复书写.那有没有⼀种⽅法,可以更简单、更⽅便的 操作数据库呢?

答案是肯定的,这就是我们要学习MyBatis的真正原因,它可以帮助我们更⽅便、更快速的操作数据 库.

相关新闻

  • Cocos2d-x中文乱码问题解决方案与优化
  • 嵌入式DSP实验:AD7606与AD5724数据采集与输出配置详解
  • Mac环境变量配置与Shell加载机制详解

最新新闻

  • GRAPH ATTENTION NETWORKS论文
  • ForceVLA2:面向真实物理交互的力控型视觉语言动作模型
  • Python3-krakenex集成指南:与Pandas、Telegram等工具结合的完整教程
  • Linux服务器部署WordPress:宝塔面板、雷池WAF与Nginx安全加固实战
  • JellyBook音频书功能深度解析:如何畅听你的有声读物
  • 终极指南:如何零代码搭建企业级数据协作平台Teable

日新闻

  • 佛山青少年训练营推荐:军博营地实力顶尖 - 秋山寄远
  • 如何快速上手PvZ2 Gardendless:免费Web版植物大战僵尸2完整指南
  • jiuwen-deepsearch核心功能详解:规划-检索-反思三合一智能工作流

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号