使用 JDBC 执行 SQL 语句
使用 JDBC 执行 SQL 语句在上一篇文章中我们了解到什么是JDBC驱动程序以及如何打开和安全地关闭MariaDB数据库连接。接下来我们在上一篇文章的基础上学习如何使用 JDBC 对 SQL 数据库执行SELECT、INSERT、UPDATE和DELETE语句。这些操作称为CRUD 操作(创建、读取、更新、删除),它们构成了应用程序中的大部分功能。如果你还没看过第一篇文章,点击这里查看Java
使用 JDBC 执行 SQL 语句
在上一篇文章中我们了解到什么是JDBC驱动程序以及如何打开和安全地关闭MariaDB数据库连接。接下来我们在上一篇文章的基础上学习如何使用 JDBC 对 SQL 数据库执行SELECT
、INSERT
、UPDATE
和DELETE
语句。这些操作称为CRUD 操作(创建、读取、更新、删除),它们构成了应用程序中的大部分功能。如果你还没看过第一篇文章,点击这里查看Java应用程序连接MariaDB。
在本文中,我们将构建一个使用 JDBC与MariaDB 数据库交互的简单 Java 应用程序。从最终用户的角度来看,我们不会实现具有有用功能的应用程序。我们将简单地从 Java 标准main
方法中调用每个 CRUD 操作的方法。以下是我们想要实现对数据库的 CRUD 操作的方法,但是具体的方法还没有实现,后面我们会一步步的实现这些方法:
public static void main(String[] args) throws SQLException {
try {
createData("Java", 10);
createData("JavaScript", 9);
createData("C++", 8);
readData();
updateData("C++", 7);
readData();
deleteData("C++");
readData();
} finally {
closeDatabaseConnection();
}
}
使用 JDBC 插入数据
代码如下:
package com.example;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class Application {
private static Connection connection;
public static void main(String[] args) throws SQLException {
try {
openDatabaseConnection();
//插入数据
createData("Java", 10);
createData("JavaScript", 9);
createData("C++", 8);
//插入数据结束
} finally {
closeDatabaseConnection();
}
}
//createData()方法具体实现
private static void createData(String name, int rating) throws SQLException {
System.out.println("Create data: " );
try (PreparedStatement statement = connection.prepareStatement(
" INSERT INTO programming_language(name, rating)\n" + " VALUES (?, ?)\n")) {
statement.setString(1, name);
statement.setInt(2, rating);
int rowsInserted = statement.executeUpdate();
System.out.println("Rows inserted: " + rowsInserted);
}
}
private static void openDatabaseConnection() throws SQLException{
System.out.println("Opening database connection...");
connection = DriverManager.getConnection(
"jdbc:mariadb://localhost:3306/jdbc_demo",
"user", "password"
);
System.out.println("Connection valid: " + connection.isValid(5));
}
private static void closeDatabaseConnection() throws SQLException {
connection.close();
System.out.println("Connection valid: " + connection.isValid(5));
}
}
运行结果如下:
查看数据库表结果如下:
使用 JDBC 检索数据
要实现读取CRUD 操作,我们需要获取一个类型为ResultSet
的对象,需要添加的代码如下
private static void readData() throws SQLException {
try (PreparedStatement statement = connection.prepareStatement(
" SELECT name, rating\n" + " FROM programming_language\n" + " ORDER BY rating DESC\n")) {
try (ResultSet resultSet = statement.executeQuery()) {
boolean empty = true;
while (resultSet.next()) {
empty = false;
String name = resultSet.getString("name");
int rating = resultSet.getInt("rating");
System.out.println("\t> " + name + ": " + rating);
}
if (empty) {
System.out.println("\t (no data)");
}
}
}
}
运行结果如下:
使用 JDBC 修改数据
Update CRUD 操作与Create操作类似,需要添加代码如下:
private static void updateData(String name, int newRating) throws SQLException {
try (PreparedStatement statement = connection.prepareStatement(
" UPDATE programming_language\n" + " SET rating = ?\n" + " WHERE name = ?\n")) {
statement.setInt(1, newRating);
statement.setString(2, name);
int rowsUpdated = statement.executeUpdate();
System.out.println("Rows updated: " + rowsUpdated);
}
}
运行结果如下:
使用 JDBC 删除数据
最后,从 JDBC 的角度来看, Delete CRUD 操作类似于Create和Update操作,需要添加的代码如下:
private static void deleteData(String nameExpression) throws SQLException {
try (PreparedStatement statement = connection.prepareStatement(" DELETE FROM programming_language\n" + " WHERE name LIKE ?\n")) {
statement.setString(1, nameExpression);
int rowsDeleted = statement.executeUpdate();
System.out.println("Rows deleted: " + rowsDeleted);
}
}
运行结果如下:
如有不妥之处请留言指正。相互学习,共同进步!
更多推荐
所有评论(0)