java 数据库连接与增删改查操作实例详解

Java 数据库连接与增删改查操作实例详解

数据库连接

在 Java 中,可以通过使用 JDBC 驱动程序来实现与数据库的连接。步骤如下:
1. 加载驱动程序
2. 建立数据库连接
3. 关闭数据库连接

加载驱动程序

Java 中的 DriverManager 类提供了一个用于加载 JDBC 驱动程序的 registerDriver() 方法。驱动程序可以通过 Class.forName() 方法来加载:

Class.forName("com.mysql.jdbc.Driver");

建立数据库连接

使用 DriverManager 管理委托对象 DriverManager.getConnection() 获取连接并进行相应的操作:

String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, user, password);

关闭数据库连接

在 Java 中,需要在使用完数据库连接之后及时关闭连接。释放资源并防止应用程序中的隐式封锁。

if (conn != null) {
    try {
        conn.close();
    } catch (SQLException e) {
        //处理异常
    }
}

增删改查操作

在 Java 中,可以通过 JDBC 对数据库进行增删改查等操作。使用 Statement 和 PreparedStatement 对象执行 SQL 语句。

查询操作

创建 Statement 或 PreparedStatement 对象后,可以使用 executeQuery() 方法执行 SQL SELECT 命令。调用 ResultSet 对象的 getter 方法可以获取查询结果:

String sql = "SELECT * FROM user";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while(rs.next()) {
    System.out.println(rs.getString("name"));
}

插入操作

使用 INSERT INTO 命令插入一条记录时,可以使用 Statement 或 PreparedStatement 对象执行。调用 executeUpdate() 方法可以获取影响的行数:

String sql = "INSERT INTO user (name, age, email) VALUES (?, ?, ?)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, "张三");
ps.setInt(2, 18);
ps.setString(3, "zhangsan@123.com");
int row = ps.executeUpdate();
System.out.println("新增了 " + row + " 条数据。");

更新操作

使用 UPDATE 命令更新一条记录时,可以使用 Statement 或 PreparedStatement 对象执行。调用 executeUpdate() 方法可以获取影响的行数:

String sql = "UPDATE user SET age = ? WHERE name = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, 20);
ps.setString(2, "张三");
int row = ps.executeUpdate();
System.out.println("更新了 " + row + " 条数据。");

删除操作

使用 DELETE FROM 命令删除一条记录时,可以使用 Statement 或 PreparedStatement 对象执行。调用 executeUpdate() 方法可以获取影响的行数:

String sql = "DELETE FROM user WHERE name = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, "张三");
int row = ps.executeUpdate();
System.out.println("删除了 " + row + " 条数据。");

示例

下面是一个完整的示例,演示了如何建立数据库连接并执行增删改查操作:

import java.sql.*;

public class JdbcDemo {

    private static final String url = "jdbc:mysql://localhost:3306/test";
    private static final String user = "root";
    private static final String password = "123456";

    public static void main(String[] args) {
        Connection conn = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection(url, user, password);
            System.out.println("数据库连接成功!");
            //插入数据
            String insertSql = "INSERT INTO user (name, age, email) VALUES (?, ?, ?)";
            PreparedStatement psInsert = conn.prepareStatement(insertSql);
            psInsert.setString(1, "张三");
            psInsert.setInt(2, 18);
            psInsert.setString(3, "zhangsan@123.com");
            int insertRow = psInsert.executeUpdate();
            System.out.println("新增了 " + insertRow + " 条数据。");
            //查询数据
            String selectSql = "SELECT * FROM user";
            PreparedStatement psSelect = conn.prepareStatement(selectSql);
            ResultSet rs = psSelect.executeQuery();
            while(rs.next()) {
                System.out.println(rs.getString("name") + "  " + rs.getInt("age") + "  " + rs.getString("email"));
            }
            //更新数据
            String updateSql = "UPDATE user SET age = ? WHERE name = ?";
            PreparedStatement psUpdate = conn.prepareStatement(updateSql);
            psUpdate.setInt(1, 20);
            psUpdate.setString(2, "张三");
            int updateRow = psUpdate.executeUpdate();
            System.out.println("更新了 " + updateRow + " 条数据。");
            //删除数据
            String deleteSql = "DELETE FROM user WHERE name = ?";
            PreparedStatement psDelete = conn.prepareStatement(deleteSql);
            psDelete.setString(1, "张三");
            int deleteRow = psDelete.executeUpdate();
            System.out.println("删除了 " + deleteRow + " 条数据。");
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        } finally {
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

以上示例演示了如何使用 PreparedStatement 对象执行 SQL 命令,包括插入、查询、更新、删除等操作,以及在使用完数据库连接后,及时关闭连接。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java 数据库连接与增删改查操作实例详解 - Python技术站

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

相关文章

  • JS求多个数组的重复数据

    如果想要求多个数组中的重复数据,可以使用以下方法: 定义一个函数,接收多个数组作为参数; 对于每个数组,遍历其中的每一个元素,判断该元素在其他数组中是否也存在; 如果其他数组中也存在该元素,则说明该元素是多个数组中的重复数据,将其添加到结果数组中; 返回结果数组。 代码如下: function findDuplicates(…arrays) { cons…

    Java 2023年5月26日
    00
  • Java struts2捕获404错误的方法汇总

    Java struts2捕获404错误的方法汇总 在使用Java struts2开发Web应用时,404错误是比较常见的错误之一。当客户端请求的URL在服务器中不存在时,就会返回404错误。而如何正确地捕获404错误,处理并给用户一个友好的提示信息,则需要开发者进行处理。 下面将介绍两种捕获404错误的方法: 方法一:利用struts2的异常处理机制 在st…

    Java 2023年5月20日
    00
  • java中Hibernate的状态总结

    Java中Hibernate的状态总结 Hibernate是Java中广泛使用的ORM(对象关系映射)框架之一,其核心原则是使用Java对象来映射数据库表格。在使用Hibernate时,需要注意对象实例所处的状态,本文将对Hibernate中的状态进行总结。 Hibernate对象状态 下面是Hibernate对象可能出现的几种状态: Transient状态…

    Java 2023年5月19日
    00
  • java 中clone()的使用方法

    Java 中 clone() 的使用方法 什么是 clone() 方法 clone() 方法是一个 Object 类下的方法,用于返回对象的一个副本。如果一个类要使用 clone() 方法,则这个类必须实现 Cloneable 接口并覆盖 clone() 方法,否则会抛出 CloneNotSupportedException 异常。 如何使用 clone()…

    Java 2023年5月26日
    00
  • Java String之contains方法的使用详解

    Java String 之 contains 方法使用详解 在 Java 中,String 类是最常用的类之一,而 String 类的 contains 方法则是其中常用的方法之一。本篇文章详细讲解了 Java String 类的 contains 方法使用的注意点以及示例演示。 contains 方法的作用 contains 方法的作用是判断某个字符串是否…

    Java 2023年5月26日
    00
  • Android应用开发之将SQLite和APK一起打包的方法

    Android应用开发中采用SQLite存储数据是非常常见的做法,而将SQLite数据库文件和APK文件打包在一起发布则可以方便用户下载和安装。下面将详细介绍将SQLite和APK打包在一起的方法。 准备工作 首先,需要将SQLite数据库文件放在app/src/main/assets文件夹下。如果该文件夹不存在,则手动创建该文件夹。 在代码中访问SQLit…

    Java 2023年5月20日
    00
  • String类型转localDate,date转localDate的实现代码

    首先,我们需要了解Java中日期类型的概念。在Java 8之前,我们通常使用java.util.Date类来处理日期,但是这个类在很多方面都存在问题。因此,在Java 8 中引入了java.time包,提供了全新的日期和时间API,其中LocalDate是处理日期的主要类之一。 String类型转LocalDate 将String类型转换为LocalDate…

    Java 2023年5月20日
    00
  • 详解Spring Batch 轻量级批处理框架实践

    详解Spring Batch 轻量级批处理框架实践 什么是Spring Batch? Spring Batch 是一个轻量级的批处理框架,实现了大规模数据处理任务的管理。它提供了一个可以配置的批处理环境,这使得开发者可以非常容易地编写处理大量数据的作业。 Spring Batch 核心概念 Spring Batch 包含三个核心概念: 任务(Job):批处理…

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