首先,请确保已安装并配置好 JDK 和 MySQL,并导入了 mysql-connector-java 驱动包到你的项目类路径以便于连接数据库:
java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class MySqlInsertExample {
private static final String DB_URL = "jdbc:mysql://localhost:3306/mydatabase";
private static final String USER = "username";
private static final String PASS = "password";
public void insertIntoTable(String name, int age) {
try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS)) {
// 创建预编译的 SQL 语句以防止SQL注入攻击
String sql = "INSERT INTO users(name,age) VALUES (?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, name); // 设置参数值为字符串类型
pstmt.setInt(2, age); // 设置参数值为整数型
// 执行 INSERT 操作
int rowsInserted = pstmt.executeUpdate();
if (rowsInserted > 0)
System.out.println("A new user was inserted successfully!");
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static void main(String[] args) {
MySqlInsertExample example = new MySqlInsertExample();
example.insertIntoTable("John Doe", 30);
}
}
上述代码示例展示了以下步骤:
1. 建立与 MySQL 的连接:我们利用 `DriverManager.getConnection()` 方法提供 URL、用户名和密码获取 Connection 对象。
2. 准备执行插入操作的 SQL 语句:这里创建了一个包含占位符 (?) 的 `PreparedStatement` ,这样可以动态地传入要插入的实际数据,同时有效预防潜在的 SQL 注入风险。
3. 绑定实际变量至 Prepared Statement 中的问号占位符:调用 `pstmt.setString()` 和 `pstmt.setInt()` 分别设置 'name' 列和 'age' 列对应的值。
4. 实际执行插入操作:调用 `executeUpdate()` 来执行预备好的 SQL 插入命令,并返回受影响行的数量用于确认是否成功插入了一条新的纪录。
5. 关闭资源:由于在这里采用了try-with-resources语法结构,在方法结束时会自动关闭不再需要的 preparedStatement 和 connection 资源,保证系统资源的有效管理。
总结来说,在 Java 下对 MySQL 进行表单数据插入的关键在于理解和熟练运用 JDBC API,尤其是 PreparedStatement 类的设计理念及其实现方式,它不仅提高了安全性同时也增强了灵活性,是进行高效数据库编程的重要工具之一。