Java 执行 SQL 语句动态插入数据
Java 是一种广泛应用于开发各种类型应用程序的高级编程语言。在很多应用程序中,我们经常需要与数据库进行交互,包括插入、查询、更新和删除数据等操作。本文将介绍如何使用 Java 执行 SQL 语句动态插入数据到数据库中。
1. 前提条件
在开始之前,确保已经安装并配置了 Java Development Kit (JDK) 和一个数据库(如 MySQL)。同时,也需要导入适当的数据库驱动程序库,以便能够与数据库进行通信。
2. 连接到数据库
在 Java 中,我们可以使用 JDBC(Java Database Connectivity)来连接到数据库。首先,我们需要导入 JDBC 相关的包,并加载适当的数据库驱动程序。
import java.sql.*;
public class InsertDemo {
public static void main(String[] args) {
// 数据库连接信息
String url = "jdbc:mysql://localhost:3306/mydatabase";
String username = "root";
String password = "password";
// 加载数据库驱动
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
// 建立数据库连接
try {
Connection connection = DriverManager.getConnection(url, username, password);
System.out.println("成功连接到数据库");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
以上代码首先导入了 java.sql
包,然后加载了 MySQL 的数据库驱动程序 com.mysql.jdbc.Driver
。接着,通过调用 DriverManager.getConnection()
方法,我们建立了与数据库的连接。
3. 插入数据
在连接到数据库后,我们可以使用 SQL 语句来执行插入操作。为了动态插入数据,我们可以使用预编译的 SQL 语句,并使用占位符来表示要插入的值。
import java.sql.*;
public class InsertDemo {
public static void main(String[] args) {
// 数据库连接信息
String url = "jdbc:mysql://localhost:3306/mydatabase";
String username = "root";
String password = "password";
// 加载数据库驱动
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
// 建立数据库连接
try {
Connection connection = DriverManager.getConnection(url, username, password);
System.out.println("成功连接到数据库");
// 插入数据
String sql = "INSERT INTO users (name, age) VALUES (?, ?)";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1, "John Doe");
statement.setInt(2, 25);
statement.executeUpdate();
// 提示插入成功
System.out.println("插入数据成功");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
在上述代码中,我们使用了 PreparedStatement
对象来执行插入操作。首先,我们定义了一个包含占位符的 SQL 语句 INSERT INTO users (name, age) VALUES (?, ?)
,然后通过调用 setString()
和 setInt()
方法为占位符设置相应的值。最后,我们使用 executeUpdate()
方法来执行插入操作。
4. 关闭连接
在完成数据库操作后,我们应该及时关闭与数据库的连接,以释放资源。
import java.sql.*;
public class InsertDemo {
public static void main(String[] args) {
// 数据库连接信息
String url = "jdbc:mysql://localhost:3306/mydatabase";
String username = "root";
String password = "password";
// 加载数据库驱动
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
// 建立数据库连接
try {
Connection connection = DriverManager.getConnection(url, username, password);
System.out.println("成功连接到数据库");
// 插入数据
String sql = "INSERT INTO users (name, age) VALUES (?, ?)";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1, "John Doe");
statement.setInt(2, 25);
statement.executeUpdate();
// 提示插入成功
System.out.println("插入数据成功");
// 关闭连接
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
在上述代码中,我们通过调用 connection.close()
方法来关闭与数据库的连接。这样可以确