通过JDBC连接MySQL数据库,实现对Goods表CRUD操作的封装方法

22 阅读2分钟

要通过JDBC连接MySQL数据库并实现对Goods表的CRUD操作,你首先需要确保你有一个可用的MySQL数据库,并且已经创建了名为Goods的表。同时,确保你的Java开发环境中已经添加了MySQL的JDBC驱动。

以下是一个简化的步骤,演示如何对Goods表执行CRUD操作:

  1. 加载和注册JDBC驱动
    首先,加载MySQL JDBC驱动,并注册它。这可以通过调用 Class.forName()方法完成。
Class.forName("com.mysql.cj.jdbc.Driver");
​

2. 建立数据库连接
使用 DriverManager.getConnection()方法建立到MySQL数据库的连接。

String url = "jdbc:mysql://localhost:3306/your_database_name?useSSL=false";
String user = "your_username";
String password = "your_password";
Connection connection = DriverManager.getConnection(url, user, password);

3. 创建 Statement或 PreparedStatement
为了执行SQL语句,需要创建一个 Statement或 PreparedStatement对象。PreparedStatement推荐用于执行参数化查询。

Statement statement = connection.createStatement();
PreparedStatement preparedStatement = connection.prepareStatement("SQL_QUERY");

4. 执行CRUD操作

  • Create(新增记录)
String insertSql = "INSERT INTO Goods (name, price) VALUES (?, ?)";
PreparedStatement insertStatement = connection.prepareStatement(insertSql);
insertStatement.setString(1, "ProductName");
insertStatement.setBigDecimal(2, new BigDecimal("10.99"));
insertStatement.executeUpdate();
  • Read(读取记录)
String selectSql = "SELECT * FROM Goods WHERE id = ?";
PreparedStatement selectStatement = connection.prepareStatement(selectSql);
selectStatement.setInt(1, 1);
ResultSet resultSet = selectStatement.executeQuery();
while(resultSet.next()) {
    // 获取字段值
    int id = resultSet.getInt("id");
    String name = resultSet.getString("name");
    BigDecimal price = resultSet.getBigDecimal("price");
    // 进行操作...
}
​
  • Update(更新记录)
String updateSql = "UPDATE Goods SET price = ? WHERE id = ?";
PreparedStatement updateStatement = connection.prepareStatement(updateSql);
updateStatement.setBigDecimal(1, new BigDecimal("12.99"));
updateStatement.setInt(2, 1);
updateStatement.executeUpdate();
  • Delete(删除记录)
String deleteSql = "DELETE FROM Goods WHERE id = ?";
PreparedStatement deleteStatement = connection.prepareStatement(deleteSql);
deleteStatement.setInt(1, 1);
deleteStatement.executeUpdate();

5. 处理异常
在操作过程中,需要处理SQLException,以防数据库操作出现问题。

try {
    // JDBC操作...
} catch (SQLException e) {
    // 异常处理...
}
​

6. 关闭资源
操作完成后,关闭 ResultSetStatementPreparedStatement和 Connection资源以释放数据库连接。

resultSet.close();
statement.close();
preparedStatement.close();
connection.close();
​

请注意,上面的示例代码演示了如何执行简单的CRUD操作,但在实际应用中,这些代码需要集成到具体的DAO(Data Access Object)类中,并处理更多异常情况,同时通过使用事务管理确保数据库操作的一致性和完整性。

此外,上述示例代码中,ConnectionStatementPreparedStatement和 ResultSet在finally块中或使用try-with-resources语句关闭,以确保即使在发生异常时也能释放资源,这是遵循良好编程实践的重要一部分。

综上所述,这是一种简洁且易于理解的方法,通过JDBC与MySQL进行交互,实现对特定数据表的CRUD操作。它演示了JDBC的基本使用流程,这是任何数据导向型Java应用的基础。