首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >JDBC连接数据库经典精准提炼

JDBC连接数据库经典精准提炼

原创
作者头像
程序视点
发布2025-05-29 21:13:51
发布2025-05-29 21:13:51
18500
代码可运行
举报
文章被收录于专栏:程序小小事程序小小事
运行总次数:0
代码可运行

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

以下是针对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. 典型代码模式
代码语言:javascript
代码运行次数:0
运行
复制
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();
            }

        }
    }
}

最后

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

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档