java如何实现动态插入list数据表名和数据是动态的
可以使用Java的JDBC技术来实现动态插入list数据,表名和数据是动态的。具体步骤如下:
-
首先,需要建立数据库连接。可以使用Java提供的JDBC API来实现。
-
根据表名和数据动态生成SQL语句。可以使用Java的字符串拼接或者使用占位符的方式来实现。
-
使用PreparedStatement对象来执行SQL语句。使用PreparedStatement可以防止SQL注入攻击。
-
将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();
}
}
}
``
原文地址: https://www.cveoy.top/t/topic/htD4 著作权归作者所有。请勿转载和采集!