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