如何使用JDBC连接数据库并执行SQL语句

下面是如何使用JDBC连接数据库并执行SQL语句的完整攻略:

一、引入JDBC驱动

Java程序中使用JDBC(Java DataBase Connectivity)需要先引入JDBC驱动。不同的数据库所对应的驱动不同,这里以MySQL为例:

<!-- 在项目的pom文件中添加MySQL驱动的依赖 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.13</version>
</dependency>

二、建立数据库连接

在Java中使用JDBC连接数据库的过程可以分为以下几个步骤:

  1. 加载JDBC驱动(Driver)类,这里以MySQL为例:
Class.forName("com.mysql.cj.jdbc.Driver");
  1. 创建一个数据库连接,需要提供连接URL(包含数据库名称)、用户名、密码:
Connection conn = 
    DriverManager.getConnection("jdbc:mysql://localhost:3306/db_name", "username", "password");

三、执行SQL语句

连接建立好了之后,就可以执行SQL语句了。JDBC中提供了Statement和PreparedStatement两种方式执行SQL语句。

1. Statement

使用Statement执行SQL语句可以直接执行SQL。示例代码如下:

Statement stmt = conn.createStatement();

// 执行SQL语句,返回受影响的行数
int affectedRows = stmt.executeUpdate("INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3)");

2. PreparedStatement

使用PreparedStatement可以让我们在执行SQL语句的时候方便地传入参数。示例代码如下:

// PreparedStatement的创建方式和Statement不同,需要提供一个含有参数占位符的SQL语句
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM table_name WHERE column1 = ?");

// 设置参数值
pstmt.setString(1, "value1");

// 执行SQL语句,返回查询结果集对象
ResultSet rs = pstmt.executeQuery();

四、关闭连接

关闭资源是非常重要的一步。

Connection、Statement和PreparedStatement都实现了AutoCloseable接口,可以使用try-with-resources代码块自动关闭资源。示例代码如下:

try (Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_name", "username", "password");
     Statement stmt = conn.createStatement()) {
     // 执行SQL语句
} catch (SQLException e) {
    e.printStackTrace();
}

以上就是使用JDBC连接数据库并执行SQL语句的完整攻略,通过以上的方法你可以在Java程序中方便快捷地连接数据库,并完成各种操作。

下面是两个示例:

示例一:使用Statement执行一条插入数据的SQL语句

public void insertData(String name, int age, String sex) {
    try (Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_name", "username", "password");
         Statement stmt = conn.createStatement()) {
        String sql = "INSERT INTO user (name, age, sex) VALUES('" + name + "', " + age + ", '" + sex + "')";
        int affectedRows = stmt.executeUpdate(sql);
        System.out.println("插入成功,受影响的行数为:" + affectedRows);
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

示例二:使用PreparedStatement执行一条查询的SQL语句

public List<User> queryData(String name) {
    List<User> userList = new ArrayList<>();
    try (Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_name", "username", "password");
         PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM user WHERE name = ?")) {
        pstmt.setString(1, name);
        ResultSet rs = pstmt.executeQuery();
        while (rs.next()) {
            User user = new User();
            user.setId(rs.getInt("id"));
            user.setName(rs.getString("name"));
            user.setAge(rs.getInt("age"));
            user.setSex(rs.getString("sex"));
            userList.add(user);
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return userList;
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何使用JDBC连接数据库并执行SQL语句 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Java基于自定义类加载器实现热部署过程解析

    以下是详细讲解“Java基于自定义类加载器实现热部署过程解析”的完整攻略。 什么是热部署? 热部署是指在应用程序运行过程中动态地更新代码,而不用停止应用程序的运行。热部署的好处是可以提高开发效率,因为不用每次都重新启动应用程序,而且能够降低系统故障和维护的成本。 Java中如何实现热部署? Java是一种面向对象的编程语言,它提供了类加载机制来加载字节码文件…

    Java 2023年6月15日
    00
  • Java实现字符串和输入流的相互转换

    下面是“Java实现字符串和输入流的相互转换”的完整攻略: 1. 字符串转输入流 可以使用Java中的StringBufferInputStream或ByteArrayInputStream将字符串转化为输入流对象。 使用StringBufferInputStream String str = "Hello, World!"; Input…

    Java 2023年5月26日
    00
  • jsp页面中插入css样式的三种方法总结

    下面将详细讲解jsp页面中插入css样式的三种方法总结。 方法一:直接在jsp页面中使用style标签 在jsp页面的标签中添加 标签,然后直接在其中编写CSS样式即可。 示例: <%@ page contentType="text/html;charset=UTF-8" language="java" %&gt…

    Java 2023年6月15日
    00
  • java实现快速打字游戏

    Java实现快速打字游戏攻略 1. 确定需求与设计游戏逻辑 在实现Java快速打字游戏之前,我们首先需要确定游戏的需求和逻辑。快速打字游戏的目的是测试玩家的打字速度和准确性,因此我们需要设计以下功能: 随机生成需要玩家打出的单词/短语,并记录玩家的打字时间和准确性; 显示玩家的打字速度和准确性,并根据不同的表现给出不同的提示。 在确定需求和设计逻辑之后,我们…

    Java 2023年5月19日
    00
  • JSP动态生成验证码存储在session作用范围内

    JSP动态生成验证码存储在Session作用范围内的攻略可以分为以下几个步骤来进行。 步骤1:生成随机的验证码 在JSP页面中通过Java代码生成随机的验证码,一般可以使用Random类或者Math.random()的方法,并将生成的验证码存储到一个String类型的变量中。 步骤2:将验证码存储在Session作用范围内 在生成验证码的同时,将其存储在Se…

    Java 2023年6月15日
    00
  • 常见的 JVM 参数有哪些?

    以下是关于常见的 JVM 参数的完整使用攻略: 常见的 JVM 参数 JVM 参数是用来控制 JVM 行为的一些参数,可以通过命令行或配置文件等方式传递给 JVM。常见的 JVM 参数包括堆相关参数、垃圾回收器相关参数、线程相关参数和其他参数。 堆相关参数 堆是 JVM 中存储对象的内存区域,堆相关参数可以用来控制 JVM 的堆大小和堆的分配方式。 -Xms…

    Java 2023年5月12日
    00
  • springboot的类加载器(org.springframework.boot.loader)过程详解

    Spring Boot提供了一种特殊的类加载器(org.springframework.boot.loader),它可以将应用程序打包成一个可执行的JAR文件,并在运行时动态加载类和资源。在本攻略中,我们将详细讲解Spring Boot的类加载器过程,并提供两个示例来说明其用法。 以下是两个示例,介绍Spring Boot的类加载器过程: 示例一:使用Spr…

    Java 2023年5月15日
    00
  • Java深入讲解SPI的使用

    Java深入讲解SPI的使用 什么是SPI SPI全称为Service Provider Interface,是Java提供的一种服务发现机制,它通过在classpath路径下查找META-INF/services目录中的配置文件,来实现对接口的实现类自动发现。简单来说,它为接口的实现提供了解耦、可扩展的方式。 SPI的使用步骤 1.创建接口 public …

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部