Java JDBC 预编译语句操作数据库:Account 表示例
Java JDBC 预编译语句操作数据库:Account 表示例
本示例展示了如何使用 Java 的 JDBC 预编译语句来操作数据库 account 表。使用预编译语句可以提高代码效率和安全性,因为它可以防止 SQL 注入攻击。以下是具体的操作步骤:
1. 修改1号数据的 salary 为 800
使用 UPDATE 语句修改 id 为 1 的数据的 salary 为 800。
2. 添加一条记录
使用 INSERT 语句添加一条新的记录。
3. 删除刚才添加的记录
使用 DELETE 语句删除刚才添加的记录。
4. 查询所有记录,将其封装为List内容
使用 SELECT 语句查询所有记录,并将结果封装为 List 类型。
示例代码:
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class AccountTableOperation {
private static final String URL = "jdbc:mysql://localhost:3306/database_name";
private static final String USERNAME = "username";
private static final String PASSWORD = "password";
public static void main(String[] args) {
try {
// 1. 注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 2. 建立连接
Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
// 3. 创建预编译对象
PreparedStatement preparedStatement;
// 4. 修改1号数据的salary为800
String updateSql = "UPDATE account SET salary = ? WHERE id = ?";
preparedStatement = connection.prepareStatement(updateSql);
preparedStatement.setDouble(1, 800.0);
preparedStatement.setInt(2, 1);
preparedStatement.executeUpdate();
// 5. 添加一条记录
String insertSql = "INSERT INTO account (id, name, salary) VALUES (?, ?, ?)";
preparedStatement = connection.prepareStatement(insertSql);
preparedStatement.setInt(1, 2);
preparedStatement.setString(2, "John");
preparedStatement.setDouble(3, 1000.0);
preparedStatement.executeUpdate();
// 6. 删除刚才添加的记录
String deleteSql = "DELETE FROM account WHERE id = ?";
preparedStatement = connection.prepareStatement(deleteSql);
preparedStatement.setInt(1, 2);
preparedStatement.executeUpdate();
// 7. 查询所有记录,将其封装为List
String selectSql = "SELECT * FROM account";
preparedStatement = connection.prepareStatement(selectSql);
ResultSet resultSet = preparedStatement.executeQuery();
List<Account> accounts = new ArrayList<>();
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
double salary = resultSet.getDouble("salary");
Account account = new Account(id, name, salary);
accounts.add(account);
}
// 输出查询结果
for (Account account : accounts) {
System.out.println(account);
}
// 8. 关闭连接
preparedStatement.close();
connection.close();
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
}
class Account {
private int id;
private String name;
private double salary;
public Account(int id, String name, double salary) {
this.id = id;
this.name = name;
this.salary = salary;
}
// 省略getter和setter方法
@Override
public String toString() {
return "Account{" +
"id=" + id +
", name='" + name + ''' +
", salary=" + salary +
'}';
}
}
请注意将示例代码中的 database_name 替换为实际的数据库名称,username 和 password 替换为实际的数据库用户名和密码。
原文地址: https://www.cveoy.top/t/topic/pLiN 著作权归作者所有。请勿转载和采集!