1、批量插入数据到sqlserver数据库:10000条数数据平均耗时1800ms

public static void main(String[] args) {

PreparedStatement ps;

Connection con = getConnection();

String sql = "insert into t_s_log (ID,broswer,logcontent,loglevel,note, operatetime,operatetype,userid,username,realname) values(?,?,?,?,?,?,?,?,?,?)";

try {

ps = con.prepareStatement(sql);

List<TSLog> logList = getList();

for (TSLog log : logList) {

ps.setString(1, log.getId());

ps.setString(2, log.getBroswer());

ps.setString(3, log.getLogcontent());

ps.setShort(4, log.getLoglevel());

ps.setString(5, log.getNote());

ps.setDate(6, new java.sql.Date(log.getOperatetime().getTime()));

ps.setShort(7, log.getOperatetype());

ps.setString(8, log.getUserid());

ps.setString(9, log.getUsername());

ps.setString(10, log.getRealname());

ps.addBatch();

}

long a = System.currentTimeMillis();

ps.executeBatch();

System.out.println("插入 " + logList.size() + " 条数据耗时 " + (System.currentTimeMillis() - a) + " 毫秒");

con.commit();

ps.clearBatch();

ps.close();

} catch (SQLException throwables) {

throwables.printStackTrace();

}

}

public static List<TSLog> getList() {

List<TSLog> logList = new ArrayList<>();

for (int i = 0; i < 10000; i++) {

TSLog log = new TSLog();

log.setId(UUID.randomUUID().toString().replaceAll("-", ""));

log.setBroswer("Chrome");

log.setLogcontent("测试");

log.setLoglevel((short) 1);

log.setNote("测试");

log.setOperatetime(new Date());

log.setOperatetype((short) 1);

log.setUserid("402885af6745c5ae016745dfdb590014");

log.setUsername("admin");

log.setRealname("admin");

logList.add(log);

}

return logList;

}

public static Connection getConnection() {

String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

String dbURL = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=xxx";

String userName = "xxx";

String userPwd = "xxx";

try {

Class.forName(driverName);

System.out.println("加载SQLServer驱动类成功!");

} catch (ClassNotFoundException a) {

System.out.println("加载SQLServer驱动失败!");

a.printStackTrace();

}

Connection dbcon = null;

try {

dbcon = DriverManager.getConnection(dbURL, userName, userPwd);

System.out.println("数据库连接成功!");

} catch (SQLException e) {

System.out.println("数据库连接失败!");

e.printStackTrace();

}

return dbcon;

}

2、批量插入数据到mysql数据库:10000条数数据平均耗时700ms

jdbc:mysql://127.0.0.1:3306/xxx&allowMultiQueries=true&rewriteBatchedStatements=true

public List<Object[]> initJDBCDemos() {

List<Object[]> demos = new ArrayList<>();

for (int i = 0; i < 10000; i++) {

Object[] demo = new Object[11];

demo[0] = i + "" + new Date();

demo[1] = i + "name";

demo[2] = i + "keyWord";

demo[3] = new Date();

demo[4] = BigDecimal.ONE;

demo[5] = 1d;

demo[6] = "1";

demo[7] = 10;

demo[8] = new Date();

demo[9] = "fad@qq.com";

demo[10] = "fad@qq.com";

demos.add(demo);

}

return demos;

}

// jdbc批量插入

@Test

public void testJdbcInsert100000BatchSave() {

List<Object[]> jeecgDemoList = initJDBCDemos();

DruidDataSource dataSource = DynamicDBUtil.getDbSourceByDbKey("qyt-dd-sys");

JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

long a = System.currentTimeMillis();

String sql = "INSERT INTO  `demo`(  `id`, `name`,\n" +

"\t\t`key_word`,\n" +

"\t\t`punch_time`,\n" +

"\t\t `salary_money`,\n" +

"\t\t `bonus_money`,\n" +

"\t\t `sex`, `age`, `birthday`,\n" +

"\t\t  `email`, `content`)\n" +

"\t\tVALUES (?,?,?,?,?,?,?,?,?,?,?)";

jdbcTemplate.batchUpdate(sql, jeecgDemoList);

System.out.println("处理" + jeecgDemoList.size() + "条数据耗时:" + (System.currentTimeMillis() - a) + "毫秒");

}

JAVA高效批量插入数据到数据库demo相关推荐

  1. python加数据库_用python批量插入数据到数据库中

    既然使用python操作数据库必不可少的得使用pymysql模块 可使用两种方式进行下载安装: 1.使用pip方式下载安装 pip install pymysql 2.IDE方式 安装完成后就可以正常 ...

  2. mysql如何高效批量插入数据

    mysql如何高效批量插入数据 1.一种可以再代码中循环着执行单条插入数据的语句,这种效率太差. insert into table ([列名],[列名]) values ([列值],[列值])); ...

  3. mysql批量加逗号_批量插入数据到数据库的方式

    出于性能的考虑.用Insert语句一条一条的插入大量数据到数据库肯定不是最好的选择.指不定还会把数据库搞死了. 前几天,用户提了需求,要求写Job实现,每天清空一个Table,然后将新发过来的数据In ...

  4. java实现批量插入数据

    //业务背景:在实现一次性插入上万条数据会报错误,所有要批量插入数据 public void addCouponCode(List<CouponCodeEntity> lists){if ...

  5. Java 批量插入数据到数据库(MySQL)中

    实现Java批量插入数据库数据: package Proxy;import java.io.BufferedReader; import java.io.File; import java.io.Fi ...

  6. java sqls.add(),java 高效批量插入 sqlserver 数据库

    PHP读取Excel数据写入数据库(包含图片和文字) public function test(){ $exts = 'xlsx'; //导入PHPExcel类库,因为PHPExcel没有用命名空间, ...

  7. 用python批量插入数据到数据库中

    既然使用python操作数据库必不可少的得使用pymysql模块 可使用两种方式进行下载安装: 1.使用pip方式下载安装 pip install pymysql 2.IDE方式 安装完成后就可以正常 ...

  8. java 高效批量插入 sqlserver 数据库

    @Testpublic void clockingIn_Img() throws Exception{DbJdbc idb = DbMaster.getIDB("JXT");Lis ...

  9. JDBC 批量插入数据

    当需要批量插入数据到数据库时,我们可以利用基础的Statement或PreparedStatement外加for循环来实现操作,但这种方式效率奇低. 因此,当需要成批插入或者更新记录时,我们可以利用J ...

  10. Java JDBC批处理插入数据操作

    在此笔记里,我们将看到我们如何可以使用像Statement和PreparedStatement JDBC API来批量在任何数据库中插入数据.此外,我们将努力探索一些场景,如在内存不足时正常运行,以及 ...

最新文章

  1. Quartz动态添加、修改和删除定时任务
  2. java随机数去重排序_数组去重及排序/0~10随机数字/字符串中出现最多的字符及次数...
  3. HDU 1153 magic bitstrings(读题+)
  4. 剑指offer之31-35题解
  5. Java数据类型和标识符
  6. tensorflow tfrecoder read write
  7. Mysql库及表的基本概念、增删查改操作以及表的约束、多表联查
  8. Adaboost入门教程——最通俗易懂的原理介绍
  9. gan怎么输入一维数据_GAN网络,利用gan网络完成对一维数据点的生成
  10. python开发erp系统odoo_odooERP系统(框架)总结
  11. FX5U Socket通信
  12. 初等数学术语:整除、整除以 ← 随机过程
  13. C# 中的委托和事件[转自张子扬]
  14. 弘辽科技:拼多多没出单改销量吗?拼多多如何提高销量?
  15. java毕业设计_问卷调查系统
  16. R语言可视化——动态心型图
  17. 8 8点阵显示原理c语言,8X8 LED点阵显示原理与编程技术
  18. Mac下安装Tomcat7
  19. VirtualBox调整动态磁盘大小
  20. JSR303数据校验介绍和使用

热门文章

  1. 谈谈任务调度的四种实现方式
  2. 烽火通信实习应聘经验
  3. linux双系统无u盘安装教程视频教程,window 与Linux Mint 双系统U盘安装方法
  4. U盘容量变小实用解决方案
  5. 龙骨(Dragonbones)在Unity中换装的实现
  6. java线程栅栏_java多线程 栅栏CyclicBarrier
  7. 使用python的视频处理
  8. VMware Ubuntu虚拟机锁定文件失败,打不开磁盘
  9. openwrt 19 overlay 空间不足_新桥胡同拆除19处违建!背街小巷“瘦身”后宽敞多了...
  10. wex5 导入mysql_Wex5铛铛开发环境搭建步骤