本文介绍了如何使用 Java 的 JDBC 技术实现动态插入 List 数据到数据库,表名和数据都是动态的内容。

步骤如下:

  1. 建立数据库连接: 使用 Java 提供的 JDBC API 建立与数据库的连接。
  2. 动态生成 SQL 语句: 根据表名和数据动态生成 SQL 插入语句。可以使用字符串拼接或者占位符的方式实现。
  3. 使用 PreparedStatement 执行 SQL 语句: 使用 PreparedStatement 对象可以防止 SQL 注入攻击。
  4. 将 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 著作权归作者所有。请勿转载和采集!

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