大家好,欢迎来到程序视点!我是你们的老朋友.小二!
以下是针对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();
}
}
}
}
最后
【程序视点】助力打工人减负,从来不是说说而已!
后续小二会继续详细分享更多实用的工具和功能。别忘了【一键三连】支持下哦~
浙公网安备 33010602011771号