在 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