• jdbc批量插入数据(同时处理数据重复)


    jdbc批量插入数据(同时处理数据重复)

    private static boolean insert(List<SpPage> list) {
            Connection connection = getConnection();
            if (null == connection) {
                System.err.println("数据库连接失败");
            }
            try {
                String sql = "INSERT INTO sp_page_test (title, web_site, type, url, status) VALUES (?, ?, ?, ?, ?)"    ;
                PreparedStatement prest = connection
                        .prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE,
                                ResultSet.CONCUR_READ_ONLY);
                connection.setAutoCommit(false);
                
                for (int x = 0; x < list.size(); x++) {
                    SpPage sp = list.get(x);
                    prest.setString(1, sp.getTitle());
                    prest.setString(2, sp.getWebSite());
                    prest.setString(3, sp.getType());
                    prest.setString(4, sp.getUrl());
                    prest.setString(5, sp.getStatus());
                    prest.addBatch();
                }
                prest.executeBatch();
    
                connection.commit();
                connection.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                return false;
            }
            return true;
        }
    使用executeBatch方式进行批量插入的关键在于设置setAutoCommit为false,然后再最后进行一次手动事务提交。
    
    上面的这种方式在对于对数据的重复性没有要求时就已经足够使用了。如果需要忽略重复的数据时,则将sql语句改为
    
    String sql = "INSERT ignore INTO sp_page_test (title, web_site, type, url, status) VALUES (?, ?, ?, ?, ?)"    ;
    使用insert ignor 可以忽略掉重复的数据。如果希望更新重复的数据,则可以使用
    
    String sql = "INSERT INTO sp_page_test (title, web_site, type, url, status) VALUES (?, ?, ?, ?, ?)"
                        + "ON DUPLICATE KEY UPDATE title=values(title)"
    insert ON DUPLICATE KEY UPDATE 可以在数据重复时进行更新。
    
     title=values(title)的意思是将旧记录的title更新为新纪录的title。

    连接: https://www.it610.com/article/2566953.htm

  • 相关阅读:
    postgresql 配置文件优化
    postgresql 主从配置
    关于 pgsql 数据库json几个函数用法的效率测试
    linux 常用命令大全
    linux 禁ping本机方法
    inotify 心得
    安装PHP扩展
    centos 防火墙配置
    Java好的的工具类:JsonUtils
    Java好的的工具类:JSONResult
  • 原文地址:https://www.cnblogs.com/Steven5007/p/12884141.html
Copyright © 2020-2023  润新知