JAVA高效批量插入数据到数据库demo
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相关推荐
- python加数据库_用python批量插入数据到数据库中
既然使用python操作数据库必不可少的得使用pymysql模块 可使用两种方式进行下载安装: 1.使用pip方式下载安装 pip install pymysql 2.IDE方式 安装完成后就可以正常 ...
- mysql如何高效批量插入数据
mysql如何高效批量插入数据 1.一种可以再代码中循环着执行单条插入数据的语句,这种效率太差. insert into table ([列名],[列名]) values ([列值],[列值])); ...
- mysql批量加逗号_批量插入数据到数据库的方式
出于性能的考虑.用Insert语句一条一条的插入大量数据到数据库肯定不是最好的选择.指不定还会把数据库搞死了. 前几天,用户提了需求,要求写Job实现,每天清空一个Table,然后将新发过来的数据In ...
- java实现批量插入数据
//业务背景:在实现一次性插入上万条数据会报错误,所有要批量插入数据 public void addCouponCode(List<CouponCodeEntity> lists){if ...
- Java 批量插入数据到数据库(MySQL)中
实现Java批量插入数据库数据: package Proxy;import java.io.BufferedReader; import java.io.File; import java.io.Fi ...
- java sqls.add(),java 高效批量插入 sqlserver 数据库
PHP读取Excel数据写入数据库(包含图片和文字) public function test(){ $exts = 'xlsx'; //导入PHPExcel类库,因为PHPExcel没有用命名空间, ...
- 用python批量插入数据到数据库中
既然使用python操作数据库必不可少的得使用pymysql模块 可使用两种方式进行下载安装: 1.使用pip方式下载安装 pip install pymysql 2.IDE方式 安装完成后就可以正常 ...
- java 高效批量插入 sqlserver 数据库
@Testpublic void clockingIn_Img() throws Exception{DbJdbc idb = DbMaster.getIDB("JXT");Lis ...
- JDBC 批量插入数据
当需要批量插入数据到数据库时,我们可以利用基础的Statement或PreparedStatement外加for循环来实现操作,但这种方式效率奇低. 因此,当需要成批插入或者更新记录时,我们可以利用J ...
- Java JDBC批处理插入数据操作
在此笔记里,我们将看到我们如何可以使用像Statement和PreparedStatement JDBC API来批量在任何数据库中插入数据.此外,我们将努力探索一些场景,如在内存不足时正常运行,以及 ...
最新文章
- Quartz动态添加、修改和删除定时任务
- java随机数去重排序_数组去重及排序/0~10随机数字/字符串中出现最多的字符及次数...
- HDU 1153 magic bitstrings(读题+)
- 剑指offer之31-35题解
- Java数据类型和标识符
- tensorflow tfrecoder read write
- Mysql库及表的基本概念、增删查改操作以及表的约束、多表联查
- Adaboost入门教程——最通俗易懂的原理介绍
- gan怎么输入一维数据_GAN网络,利用gan网络完成对一维数据点的生成
- python开发erp系统odoo_odooERP系统(框架)总结
- FX5U Socket通信
- 初等数学术语:整除、整除以 ← 随机过程
- C# 中的委托和事件[转自张子扬]
- 弘辽科技:拼多多没出单改销量吗?拼多多如何提高销量?
- java毕业设计_问卷调查系统
- R语言可视化——动态心型图
- 8 8点阵显示原理c语言,8X8 LED点阵显示原理与编程技术
- Mac下安装Tomcat7
- VirtualBox调整动态磁盘大小
- JSR303数据校验介绍和使用
热门文章
- 谈谈任务调度的四种实现方式
- 烽火通信实习应聘经验
- linux双系统无u盘安装教程视频教程,window 与Linux Mint 双系统U盘安装方法
- U盘容量变小实用解决方案
- 龙骨(Dragonbones)在Unity中换装的实现
- java线程栅栏_java多线程 栅栏CyclicBarrier
- 使用python的视频处理
- VMware Ubuntu虚拟机锁定文件失败,打不开磁盘
- openwrt 19 overlay 空间不足_新桥胡同拆除19处违建!背街小巷“瘦身”后宽敞多了...
- wex5 导入mysql_Wex5铛铛开发环境搭建步骤