JDBC连接数据库精准提炼
大家好,欢迎来到程序视点
!我是你们的老朋友.小二!
以下是针对JDBC连接数据库文章的精准提炼:
-
核心流程框架
-
完整JDBC操作遵循7步标准流程:
加载驱动→定义URL→建立连接→创建Statement→执行SQL→处理结果→资源释放
-
关键技术细节
-
驱动加载:通过Class.forName()动态注册驱动类(如com.mysql.jdbc.Driver)
-
连接配置:URL格式规范
jdbc:子协议://主机:端口/数据库?参数键值对
,需指定字符编码等关键参数 -
连接管理:DriverManager.getConnection()三要素(URL/用户名/密码)
- 语句类型:
-
Statement:静态SQL
-
PreparedStatement:动态SQL(防注入)
-
CallableStatement:存储过程
-
-
执行与结果处理
- 三大执行方法:
-
executeQuery():返回ResultSet(查询)
-
executeUpdate():返回影响行数(增删改)
-
execute():处理多结果集
-
-
结果集遍历:rs.next()配合getString(列名/索引)获取数据
-
关键规范要求
-
资源关闭顺序:ResultSet → Statement → Connection(反向依赖链)
-
异常处理:必须捕获ClassNotFoundException和SQLException
-
编码建议:ResultSet列索引访问效率优于列名
-
典型代码模式
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();}}}
}
最后
【程序视点】助力打工人减负,从来不是说说而已!
后续小二会继续详细分享更多实用的工具和功能。别忘了【一键三连】支持下哦~