大家好,欢迎来到程序视点!我是你们的老朋友.小二!
以下是针对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号
浙公网安备 33010602011771号