Java 动态插入 List 数据到数据库 - 表名和数据动态生成
本文介绍了如何使用 Java 的 JDBC 技术实现动态插入 List 数据到数据库,表名和数据都是动态的内容。
步骤如下:
- 建立数据库连接: 使用 Java 提供的 JDBC API 建立与数据库的连接。
- 动态生成 SQL 语句: 根据表名和数据动态生成 SQL 插入语句。可以使用字符串拼接或者占位符的方式实现。
- 使用 PreparedStatement 执行 SQL 语句: 使用 PreparedStatement 对象可以防止 SQL 注入攻击。
- 将 List 数据逐一插入到数据库中: 使用循环遍历 List,并将数据插入到数据库中。
示例代码:
import java.sql.*;
import java.util.*;
public class InsertData {
public static void main(String[] args) {
String tableName = 'table1'; // 表名
List<Map<String, Object>> dataList = new ArrayList<>(); // 数据列表
Map<String, Object> data1 = new HashMap<>();
data1.put('id', 1);
data1.put('name', '张三');
dataList.add(data1);
Map<String, Object> data2 = new HashMap<>();
data2.put('id', 2);
data2.put('name', '李四');
dataList.add(data2);
try {
// 建立数据库连接
Connection conn = DriverManager.getConnection('jdbc:mysql://localhost:3306/test', 'root', '123456');
// 动态生成 SQL 语句
String sql = 'INSERT INTO ' + tableName + ' (';
for (String key : dataList.get(0).keySet()) {
sql += key + ',';
}
sql = sql.substring(0, sql.length() - 1) + ') VALUES (';
for (int i = 0; i < dataList.get(0).size(); i++) {
sql += '?,';
}
sql = sql.substring(0, sql.length() - 1) + ')';
// 使用 PreparedStatement 执行 SQL 语句
PreparedStatement pstmt = conn.prepareStatement(sql);
for (Map<String, Object> data : dataList) {
int i = 1;
for (Object value : data.values()) {
pstmt.setObject(i++, value);
}
pstmt.executeUpdate();
}
// 关闭连接
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
注意:
- 请根据实际情况修改数据库连接信息和表名。
- 示例代码中的数据类型为 Object,需要根据实际情况进行修改。
- 使用 PreparedStatement 对象可以防止 SQL 注入攻击,确保代码的安全。
- 记得在使用完数据库连接后,及时关闭连接,释放资源。
原文地址: https://www.cveoy.top/t/topic/oWrL 著作权归作者所有。请勿转载和采集!