parent
8e40e91e3a
commit
d86a19cb21
@ -0,0 +1,45 @@
|
|||||||
|
#配置数据源
|
||||||
|
spring:
|
||||||
|
datasource:
|
||||||
|
druid:
|
||||||
|
db-type: com.alibaba.druid.pool.DruidDataSource
|
||||||
|
driverClassName: com.mysql.cj.jdbc.Driver
|
||||||
|
url: jdbc:mysql://localhost:3306/db_short_server?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&rewriteBatchedStatements=true
|
||||||
|
username: root
|
||||||
|
password: root
|
||||||
|
# 初始连接数
|
||||||
|
initial-size: 5
|
||||||
|
# 最小连接数
|
||||||
|
min-idle: 10
|
||||||
|
# 最大连接数
|
||||||
|
max-active: 20
|
||||||
|
# 获取连接超时时间
|
||||||
|
max-wait: 5000
|
||||||
|
# 连接有效性检测时间
|
||||||
|
time-between-eviction-runs-millis: 60000
|
||||||
|
# 连接在池中最小生存的时间
|
||||||
|
min-evictable-idle-time-millis: 300000
|
||||||
|
# 连接在池中最大生存的时间
|
||||||
|
max-evictable-idle-time-millis: 900000
|
||||||
|
test-while-idle: true
|
||||||
|
test-on-borrow: false
|
||||||
|
test-on-return: false
|
||||||
|
# 检测连接是否有效
|
||||||
|
validation-query: select 1
|
||||||
|
# 配置监控统计
|
||||||
|
webStatFilter:
|
||||||
|
enabled: true
|
||||||
|
stat-view-servlet:
|
||||||
|
enabled: true
|
||||||
|
url-pattern: /druid/*
|
||||||
|
reset-enable: false
|
||||||
|
filter:
|
||||||
|
stat:
|
||||||
|
enabled: true
|
||||||
|
# 记录慢SQL
|
||||||
|
log-slow-sql: true
|
||||||
|
slow-sql-millis: 1000
|
||||||
|
merge-sql: true
|
||||||
|
wall:
|
||||||
|
config:
|
||||||
|
multi-statement-allow: true
|
@ -0,0 +1,105 @@
|
|||||||
|
package com.by;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
import org.springframework.data.annotation.CreatedDate;
|
||||||
|
import org.springframework.data.annotation.LastModifiedDate;
|
||||||
|
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
|
||||||
|
import org.springframework.jdbc.core.JdbcTemplate;
|
||||||
|
import org.springframework.test.context.junit4.SpringRunner;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@RunWith(SpringRunner.class)
|
||||||
|
@SpringBootTest
|
||||||
|
@Slf4j
|
||||||
|
public class BatchInsertTest {
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Table(name = "t_user")
|
||||||
|
class User {
|
||||||
|
/**
|
||||||
|
* id
|
||||||
|
*/
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
@Column(name = "id")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
@Column(name = "gmt_create", nullable = false)
|
||||||
|
@CreatedDate
|
||||||
|
private Date gmtCreate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改时间
|
||||||
|
*/
|
||||||
|
@Column(name = "gmt_modified", nullable = false)
|
||||||
|
@LastModifiedDate
|
||||||
|
private Date gmtModified;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 最后一次操作人的IP地址
|
||||||
|
*/
|
||||||
|
@Column(name = "operator_ip", nullable = false)
|
||||||
|
private String operatorIp;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private JdbcTemplate jdbcTemplate;
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testTestInsertDate() throws InterruptedException {
|
||||||
|
|
||||||
|
List<User> users = new ArrayList<>();
|
||||||
|
User user = new User();
|
||||||
|
user.setGmtCreate(new Date());
|
||||||
|
user.setGmtModified(new Date());
|
||||||
|
user.setOperatorIp("1111");
|
||||||
|
User user1 = new User();
|
||||||
|
user.setGmtCreate(new Date());
|
||||||
|
user.setGmtModified(new Date());
|
||||||
|
user.setOperatorIp("1111");
|
||||||
|
|
||||||
|
users.add(user);
|
||||||
|
users.add(user1);
|
||||||
|
|
||||||
|
|
||||||
|
String sql = "INSERT INTO `t_user` " +
|
||||||
|
"(gmt_create,gmt_modified,operator_ip)" +
|
||||||
|
"VALUES (?, ? ,?)";
|
||||||
|
|
||||||
|
int[] ints = jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setValues(PreparedStatement preparedStatement, int i) throws SQLException {
|
||||||
|
preparedStatement.setString(1, users.get(i).getGmtCreate().toString());
|
||||||
|
preparedStatement.setString(2, users.get(i).getGmtModified().toString());
|
||||||
|
preparedStatement.setString(3, users.get(i).getOperatorIp().trim());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getBatchSize() {
|
||||||
|
return users.size();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Thread.currentThread().join();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue