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

JDBC连接数据库精准提炼

大家好,欢迎来到程序视点!我是你们的老朋友.小二!

以下是针对JDBC连接数据库文章的精准提炼:

  1. 核心流程框架

  • 完整JDBC操作遵循7步标准流程:加载驱动→定义URL→建立连接→创建Statement→执行SQL→处理结果→资源释放

  1. 关键技术细节

  • 驱动加载:通过Class.forName()动态注册驱动类(如com.mysql.jdbc.Driver)

  • 连接配置:URL格式规范 jdbc:子协议://主机:端口/数据库?参数键值对,需指定字符编码等关键参数

  • 连接管理:DriverManager.getConnection()三要素(URL/用户名/密码)

  • 语句类型
    • Statement:静态SQL

    • PreparedStatement:动态SQL(防注入)

    • CallableStatement:存储过程

  1. 执行与结果处理

  • 三大执行方法:
    • executeQuery():返回ResultSet(查询)

    • executeUpdate():返回影响行数(增删改)

    • execute():处理多结果集

  • 结果集遍历:rs.next()配合getString(列名/索引)获取数据

  1. 关键规范要求

  • 资源关闭顺序:ResultSet → Statement → Connection(反向依赖链)

  • 异常处理:必须捕获ClassNotFoundException和SQLException

  • 编码建议:ResultSet列索引访问效率优于列名

  1. 典型代码模式

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;public class JDBC {public static  void main(String[] args){Connection con = null;PreparedStatement pStatement = null;ResultSet res = null;try{// 1.注册驱动Driver driver = new com.mysql.cj.jdbc.Driver();DriverManager.registerDriver(driver);//2.获取连接String url = "jdbc:mysql://localhost:3306/test?serverTimezone=UTC";String user = "root";String password = "123456";con = DriverManager.getConnection(url, user, password);//3.获取数据库操作对象String sql = "select * from students where sno=?";pStatement = con.prepareStatement(sql);pStatement.setInt(1,1026);//4.执行sql语句res = pStatement.executeQuery();//5.处理查询结果集if(res.next()){System.out.println("查询成功,查询结果如下:");System.out.print("学号为:"+res.getInt(1));System.out.print("  姓名为:"+res.getString("name"));System.out.print("  分数为:"+res.getInt(3));}}catch (SQLException e){e.printStackTrace();}finally {//6.释放资源,try中的变量无法在finally中使用,关闭资源需从小到大依次关闭try {if (res != null) {res.close();}} catch (SQLException e) {e.printStackTrace();}try {if (pStatement != null) {pStatement.close();}} catch (SQLException e) {e.printStackTrace();}try {if (con != null) {con.close();}} catch (SQLException e) {e.printStackTrace();}}}
}

最后

【程序视点】助力打工人减负,从来不是说说而已!

后续小二会继续详细分享更多实用的工具和功能。别忘了【一键三连】支持下哦~

http://www.xdnf.cn/news/9829.html

相关文章:

  • MongoDB(七) - MongoDB副本集安装与配置
  • Python 中的 if-elif-else 语句与控制流详解:从基础到高级应用
  • 电感专题归纳
  • Unity-QFramework框架学习-MVC、Command、Event、Utility、System、BindableProperty
  • 深入理解 SELinux:通过 Nginx 和 SSH 服务配置实践安全上下文与端口策略
  • 家庭路由器改装,搭建openwrt旁路由以及手机存储服务器,实现外网节点转发、内网穿透、远程存储、接入满血DeepSeek方案
  • LVS+keepalived高可用群集
  • mac笔记本如何快捷键截图后自动复制到粘贴板
  • 首发!PPIO派欧云上线DeepSeek-R1-0528-Qwen3-8B蒸馏模型
  • 【数据结构】图论核心算法解析:深度优先搜索(DFS)的纵深遍历与生成树实战指南​
  • Spring Boot 3.5.0中文文档上线
  • 在 WSL Ubuntu-24.04 上安装 Nacos 2.5.1 并使用 MySQL 数据库
  • 【Linux】网络--传输层--深入理解TCP协议
  • 计算机组成与体系结构:固态硬盘(Solid State Drives)
  • 数据驱动健康未来——大数据如何革新公共卫生监测?
  • [250528] NixOS 25.05 “Warbler“ 正式发布:GNOME 48、Kernel 6.12 及海量软件包更新!
  • vue3+element-plus项目主题色切换;element-plus换肤
  • DAX权威指南5:筛选上下文、表操作函数与层级结构
  • SSE vs WebSocket:两种通讯方案该如何选择?
  • MD650一对多透传场景联动
  • 二叉树迭代遍历——给一个属性便可实现迭代结构完美统一
  • Linux轻量级文件传输——tftp命令
  • 【QQ音乐】sign签名| data参数 | AES-GCM加密 | webpack(上)
  • 腾控产品在油田间抽节能中的应用
  • Python深度学习植被参数反演AI辅助代码生成—模型构建—实战案例
  • vue3 控制url更新但不让页面更新
  • 回溯算法找出来最优价格组合
  • 深度学习-梯度消失和梯度爆炸
  • 光的干涉、衍射与偏振
  • Python入门手册:模块和包的导入与使用