📅  最后修改于: 2023-12-03 15:15:56.521000             🧑  作者: Mango
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!
。
执行查询语句通常包括以下步骤:
Statement
对象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
对象遍历结果集并输出每一行数据的用户名和邮箱。
执行更新语句通常包括以下步骤:
Statement
或PreparedStatement
对象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开发的重要组成部分。