JDBC使用

本文详细介绍了JDBC(JavaDatabaseConnectivity)的概念、在项目中的应用步骤,包括加载驱动、获取连接、执行SQL和处理结果集等,并给出了Maven引入依赖及JDBC工具类的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是JDBC?

JDBC,即Java数据库连接(Java Database Connectivity)。是一套跟数据库交互,执行SQL语句的Java API,它允许Java程序与各种数据库连接并进行交互。

JDBC连接并操作数据库的步骤

  1. 项目中引入jar;
  2. 加载驱动;
  3. 获取连接;
  4. 获取Statement对象;
  5. 执行SQL;
  6. 处理结果集;
  7. 释放资源,关闭连接;

JDBC使用案例

案例环境

idea2023 + jdk8 + mysql8 + mysql-connector-java-8.0.29.jar

项目中引入jar
  • 普通的JavaWeb项目,在WEB-INF目录下创建lib文件夹,将jar拷贝到lib目录下,鼠标选中jar包,右键选择“Add as Library”,弹框中点击“ok”即可;  
  •         ​​​​​      
  • Maven项目,引入依赖即可
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.29</version>
    </dependency>
加载驱动 
Class.forName("com.mysql.cj.jdbc.Driver");

参数说明:

        com.mysql.cj.jdbc.Driver:驱动类的全限定名;通过Class.forName()方法可以将驱动类加载到JVM内存中;

获取连接
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/database_name","username","password");

Connection接口是与数据库建立连接的接口;mysql-connector-java.jar包中封装了获取Connection对象的方式,即DriverManager.getConnection()方法;

参数说明:

        database_name:要连接的数据库名称,替换为实际的数据库名称;

        username:连接数据库使用的用户名,替换为实际的用户名;

        password:连接数据库使用的密码,替换为实际的密码;

获取Statement对象
String sql = "select * from user";
PreparedStatement preparedStatement = connection.prepareStatement(sql);

Connection类中封装了获取PreparedStatement对象的方法,即prepareStatement()方法,方法需要传递一个参数;

参数说明:

        sql:String类型,要执行的SQL语句;

注意:PreparedStatement接口是Statement类的子接口,是在Statement接口的基础上做了功能增强;

执行SQL
ResultSet resultSet = preparedStatement.executeQuery();

PreparedStatement对象封装了执行SQL语句的方法,即executeQuery()方法,该方法会返回一个结果集,为ResultSet类型;

处理结果集
List<User> users = new ArrayList<>();
// 可能会有多条数据
while (resultSet.next()){
    User user = new User();
    // 给用户对象各个属性赋值
    user.setUserId(resultSet.getInt("user_id"));
    user.setUsername(resultSet.getString("username"));
    user.setPassword(resultSet.getString("password"));
    // 将当前user对象添加到users集合中
    users.add(user);
}
释放资源
if (resultSet != null) resultSet.close();
if (statement != null) statement.close();
if (connection != null) connection.close();

注意关闭顺序,先ResultSet对象,再Statement对象,最后Connection对象;这几个对象可能会为空,在关闭之前应判断是否为空;

JDBC工具类

在实际的使用过程中,建议将JDBC封装,提供工具类来使用。下面是对JDBC的简单封装,参考使用:

package com.iflytek.utils;

import java.sql.*;

/**
 * jdbc工具类
 *
 * 使用jdbc操作数据库,分为几步??
 *
 * 1.引入jar包:简化了大部分工作    第三方给我们提供的功能
 * 2.加载驱动
 * 3.获取数据库连接:Connection对象
 * 4.获取到Statement对象
 * 5.通过Statement对象执行SQL,返回结果集ResultSet对象
 * 6.封装ResultSet对象数据
 * 7.释放资源,关闭连接
 */
public class JdbcUtil {

    // 数据库连接信息
    private final static String URL = "jdbc:mysql://localhost:3306/teacher_management";
    private final static String USERNAME = "root";
    private final static String PASSWORD = "123";

    // 获取连接之前,保证驱动是已经加载完成
    static {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            System.out.println("加载驱动异常");
            throw new RuntimeException(e);
        }
    }

    // 获取数据库连接
    public static Connection getConn() throws SQLException {
        return DriverManager.getConnection(URL, USERNAME, PASSWORD);
    }

    // 释放资源
    public static void close(Connection connection, Statement statement, ResultSet resultSet) throws SQLException {
        if (resultSet != null) resultSet.close();
        if (statement != null) statement.close();
        if (connection != null) connection.close();
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值