📜  Java JDBC-编程示例(1)

📅  最后修改于: 2023-12-03 15:15:56.521000             🧑  作者: Mango

Java JDBC-编程示例

Java JDBC (Java Database Connectivity) 是一种Java API,用于连接与执行SQL查询语句的数据库。本文将介绍Java JDBC的基本用法。

连接数据库

在连接数据库之前,需要先下载对应的数据库的JDBC驱动程序。这里以MySQL数据库为例。

import java.sql.*;

public class ConnectionExample {

    public static void main(String[] args) {
        Connection conn = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/mydb";
            String user = "root";
            String password = "password";
            conn = DriverManager.getConnection(url, user, password);
            System.out.println("Connection successful!");
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

}

在上面的示例中,我们首先加载了MySQL JDBC驱动程序,然后使用DriverManager获取与数据库的连接。我们需要提供数据库的URL、用户名和密码。如果连接成功,控制台将输出Connection successful!

执行查询语句

执行查询语句通常包括以下步骤:

  1. 创建Statement对象
  2. 执行查询语句
  3. 处理查询结果
import java.sql.*;

public class QueryExample {

    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/mydb";
            String user = "root";
            String password = "password";
            conn = DriverManager.getConnection(url, user, password);
            stmt = conn.createStatement();
            String sql = "SELECT * FROM users";
            rs = stmt.executeQuery(sql);
            while (rs.next()) {
                String username = rs.getString("username");
                String email = rs.getString("email");
                System.out.println("Username: " + username + ", Email: " + email);
            }
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (rs != null) {
                    rs.close();
                }
                if (stmt != null) {
                    stmt.close();
                }
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

}

在上面的示例中,我们使用了Statement对象执行了一条查询语句,获取了包含查询结果的ResultSet对象,然后利用ResultSet对象遍历结果集并输出每一行数据的用户名和邮箱。

执行更新语句

执行更新语句通常包括以下步骤:

  1. 创建StatementPreparedStatement对象
  2. 执行更新语句
  3. 处理更新结果
import java.sql.*;

public class UpdateExample {

    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement pstmt = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/mydb";
            String user = "root";
            String password = "password";
            conn = DriverManager.getConnection(url, user, password);
            String sql = "INSERT INTO users (username, email, password) VALUES (?, ?, ?)";
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, "Alice");
            pstmt.setString(2, "alice@example.com");
            pstmt.setString(3, "password");
            int rowsAffected = pstmt.executeUpdate();
            System.out.println("Rows affected: " + rowsAffected);
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (pstmt != null) {
                    pstmt.close();
                }
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

}

在上面的示例中,我们使用了PreparedStatement对象,该对象比Statement对象更加安全和高效。我们首先指定要执行的SQL语句,然后使用问号占位符代替要插入的具体值,并且使用setXXX方法设置具体值。执行更新语句后,使用executeUpdate()方法获取受影响的行数。

总结

以上就是Java JDBC的基本用法。使用Java JDBC,我们可以连接各种主流的数据库。JDBC已成为Java应用程序中最流行的数据库API之一,是Java开发的重要组成部分。