国内老牌的网站制作,网站建设求职简历模板,热水工程技术支持 东莞网站建设,建网站容易吗前些天发现了一个巨牛的人工智能学习网站#xff0c;通俗易懂#xff0c;风趣幽默#xff0c;忍不住分享一下给大家。点击跳转到教程。
业务 要求批量导入不小于10W条数据到 user 表#xff0c;但是user表在 insert 每条数据的同时要 insert 一条对应数据到 customer表…前些天发现了一个巨牛的人工智能学习网站通俗易懂风趣幽默忍不住分享一下给大家。点击跳转到教程。
业务 要求批量导入不小于10W条数据到 user 表但是user表在 insert 每条数据的同时要 insert 一条对应数据到 customer表
并且是以 customer 表的主键作为 user 表的外键。 所以想到要一次性获取多个 序列值再把对应的序列给不同表并分别作为两个表的主键和外键的值。 方法很简单 就一句代码 String squence select USR_CUSTOMER_SEQ.nextval cust_id from (select 1 from all_objects where rownum usrlist.size());ListString squenceList BatchInsert.selectSql(squence);select USR_CUSTOMER_SEQ.nextval cust_id from (select 1 from all_objects where rownum usrlist.size());ListString squenceList BatchInsert.selectSql(squence); usrlist 是解析表格后得到的要导入的 user数据 集合有多少条数据就取多少个序列值。
selectSql 方法 只是JDBC连接数据库 执行了这句SQL 并返回了查到的 序列值拿到这个序列集合就可以根据业务作后续实现了。 // 单纯查询 public static ListString selectSql(String sql){Connection conn null;//定义为空值Statement stmt null;ResultSet rs null;conn getConnection();ListString list new ArrayListString();try {stmt conn.createStatement();//创建一个Statement语句对象rs stmt.executeQuery(sql);//执行sql语句while(rs.next()){list.add(rs.getString(cust_id));}} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();stmt.cancel();rs.close();}catch (SQLException e) {e.printStackTrace();}}return list;} getConnection 方法是获取数据库连接 public static Connection getConnection(){ //连接数据库的方法 try { Class.forName(oracle.jdbc.driver.OracleDriver); //初始化驱动包 conn DriverManager.getConnection(url, user, password); } catch (Exception e) { e.printStackTrace(); } return conn;} 另 批量导入实现见博文关联表多数据的批量insert 批量导入测试10W条数据用时46秒