关键词

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 命令,包括插入、查询、更新、删除等操作,以及在使用完数据库连接后,及时关闭连接。

本文链接:http://task.lmcjl.com/news/3367.html

展开阅读全文