可以使用Java的JDBC技术来实现动态插入list数据,表名和数据是动态的。具体步骤如下:

  1. 首先,需要建立数据库连接。可以使用Java提供的JDBC API来实现。

  2. 根据表名和数据动态生成SQL语句。可以使用Java的字符串拼接或者使用占位符的方式来实现。

  3. 使用PreparedStatement对象来执行SQL语句。使用PreparedStatement可以防止SQL注入攻击。

  4. 将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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录