java - 使用JAVA复制一个表数据并将其插入到同一数据库中的另一个表中?

标签 java mysql copy

我想从一个MYSQL数据库表中选择一些数据,然后使用JAVA将这些选定的数据插入到同一数据库中的另一个表中。两个表具有相同的结构。到目前为止,我可以选择数据,但无法插入这些数据。

testtest_t 是表格。

item_id 是表中唯一的列。

我还想在将test表数据插入test_t表后删除它们。这个测试表就像一个临时表。

这是我的方法。

private void testM() throws Exception {

        pooler = DBPool_SF.getInstance();
        dataSource = pooler.getDataSource();
        Connection con = dataSource.getConnection();
        con.setAutoCommit(false);

        PreparedStatement ps,ps1 = null;
        ResultSet rs = null;

        String SEL_QUERY = "select item_id from test";
        String UPDATE_QUERY = "insert into test_t values(?)";

        ps = con.prepareStatement(SEL_QUERY);
        rs = ps.executeQuery();
        ps1 = con.prepareStatement(UPDATE_QUERY );

        while (rs.next()) {

            String id = rs.getString("item_id");
            System.out.println(id);
             ps1.setString(1,id);
             ps1.addBatch();
            }

            ps1.executeBatch();
        con.close();
    }

最佳答案

下面的代码可以工作。如果你提到setAutoCommit(false),那么你需要在最后提交。

        con.setAutoCommit(false);
        PreparedStatement ps, ps1 = null;
        ResultSet rs = null;
        Statement st = null;

        String SEL_QUERY = "select item_id from test";
        String UPDATE_QUERY = "insert into test_t values(?)";
        String DELETE_QUERY = "delete from test";

        st = con.createStatement();
        ps = con.prepareStatement(SEL_QUERY);
        rs = ps.executeQuery();
        ps1 = con.prepareStatement(UPDATE_QUERY);

        while (rs.next())
        {

            String id = rs.getString("item_id");
            System.out.println(" item_id : " + id);
            ps1.setString(1, id);
            ps1.addBatch();
        }

        ps1.executeBatch();
        st.execute(DELETE_QUERY);

        con.commit();
        con.close();

关于java - 使用JAVA复制一个表数据并将其插入到同一数据库中的另一个表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39770026/

相关文章:

java - 如何在 java 中复制/拆分输入流?

java - 超出时间限制,我正在尝试使用链表使用java堆栈删除字符串中的重复项

mysql - Yii2:如何设置 MySQL 语言环境

c - 如何在 C 中复制字符串直到到达空格

mysql - 无法从另一台 PC 访问 Docker 容器

mysql concat 数据如果为 null 则结束,如果不为 null 则继续 concat

linux - perl 中的 "Copy failed: File too large"错误

java - Spring 3根据使用另一个数据源查询的连接字符串设置Web应用程序数据源

java - Spring 如何在运行时查看类型参数?整个类型删除的事情怎么样?

java - "static"字段的延迟初始化应该是 "synchronized"- 如何修复它