如何使用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日

相关文章

  • 关于Tomcat的服务器使用及说明

    关于Tomcat的服务器使用及说明 Tomcat是一款开放源代码的Web服务器,可用于运行Java Servlet和JavaServer Pages(JSP)等Web应用程序。在本篇攻略中,我们将详细讲解如何使用Tomcat服务器并说明一些基本概念和操作步骤。 下载和安装 首先,您需要从Tomcat官网(http://tomcat.apache.org/)下…

    Java 2023年6月16日
    00
  • 一文搞懂Spring Bean中的作用域和生命周期

    下面是详细讲解“一文搞懂Spring Bean中的作用域和生命周期”的完整攻略。 什么是Spring Bean 在讲解Spring Bean的作用域和生命周期之前,我们需要先了解什么是Spring Bean。 Spring Bean是指通过Spring IoC容器管理的对象,它们是应用程序的核心组件之一。在Spring的世界里,Bean是指一个由Spring…

    Java 2023年5月19日
    00
  • AngularJS基于provider实现全局变量的读取和赋值方法

    要实现全局变量的读取和赋值,可以使用AngularJS中的provider。 provider是AngularJS中的一个服务提供者,它可以在config阶段(即AngularJS框架初始化之前)注入到AngularJS应用中。用它可以将服务定义成可配置的,在应用配置阶段根据需要进行一些配置。 使用provider实现全局变量的读取和赋值,需要先定义一个pr…

    Java 2023年6月15日
    00
  • Web服务器识别技术揭秘

    Web服务器识别技术揭秘 什么是Web服务器识别技术? Web服务器识别技术是指通过检测HTTP请求中的特定标识,以确定正在运行的Web服务器软件类型和版本的过程。Web服务器指向内部资源并与客户端通信,因此了解服务器是非常重要的。许多黑客使用Web服务器识别来收集有关特定网站的有用信息,这些信息可以用于攻击。 Web服务器识别的原理 Web服务器识别的方法…

    Java 2023年6月16日
    00
  • struts2中常用constant命令配置方法

    在Struts2中,可以通过配置constant命令来设置全局常量,方便在整个应用程序中共用这些常量。以下是配置constant命令的方法及示例: 配置常量 在struts.xml中使用constant命令可以配置全局常量: <constant name="CONSTANT_NAME" value="CONSTANT_VA…

    Java 2023年5月20日
    00
  • Java中常用数据类型的输入输出详解

    Java中常用数据类型的输入输出详解 在Java中,数据类型的输入输出是非常重要的一个知识点,本文将介绍Java中常用数据类型的输入输出方法,包括基本数据类型和字符串类型。 基本数据类型的输入输出 Java中的基本数据类型包括:byte、short、int、long、float、double和boolean。这些数据类型可以使用Scanner类来进行输入输出…

    Java 2023年5月26日
    00
  • slf4j使用log4j的配置参数方式

    slf4j是一个Java日志框架的抽象层,它可以与多种具体的日志框架进行绑定。log4j是其中一种在Java程序中常见的日志框架,可以与slf4j进行绑定。通过使用slf4j和log4j,可以在代码中进行方便的日志记录和管理。 以下是使用log4j作为实际日志框架的示例: 添加依赖 首先需要在项目的pom文件中添加slf4j和log4j的依赖。 <de…

    Java 2023年5月20日
    00
  • 出现次数超过一半(50%)的数

    第一步: 思路分析 本题要求我们找出出现次数超过一半的数,可以采用摩尔投票法进行求解。摩尔投票法的思路是,每次从数组中取出两个不同的数之后,将它们同时删除,直到数组中只剩下一个数或者多个相同的数。此时剩下的就是出现次数超过一半的数。 第二步: 代码实现 采用摩尔投票法实现代码如下: int majorityElement(vector<int>&…

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