Skip to content

Commit edfa8e5

Browse files
committed
batch test
1 parent 74890da commit edfa8e5

File tree

11 files changed

+81
-45
lines changed

11 files changed

+81
-45
lines changed

pom.xml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>com.codingapi.dbstream</groupId>
66
<artifactId>dbstream-driver</artifactId>
7-
<version>1.0.8</version>
7+
<version>1.0.9</version>
88

99
<url>https://github.com/codingapi/dbstream-driver</url>
1010
<name>dbstream-driver</name>
@@ -34,8 +34,7 @@
3434
<lombok.version>1.18.42</lombok.version>
3535

3636
<!-- test dependencies properties-->
37-
<springboot.version>2.7.18</springboot.version>
38-
<h2.version>2.2.222</h2.version>
37+
<springboot.version>3.5.7</springboot.version>
3938
</properties>
4039

4140
<dependencies>
@@ -55,7 +54,14 @@
5554
<dependency>
5655
<groupId>com.h2database</groupId>
5756
<artifactId>h2</artifactId>
58-
<version>${h2.version}</version>
57+
<version>2.2.222</version>
58+
<scope>test</scope>
59+
</dependency>
60+
61+
<dependency>
62+
<groupId>org.postgresql</groupId>
63+
<artifactId>postgresql</artifactId>
64+
<version>42.7.3</version>
5965
<scope>test</scope>
6066
</dependency>
6167

scripts/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
data

scripts/db.yaml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
version: "3.9"
2+
3+
services:
4+
postgres:
5+
image: postgres:15
6+
container_name: postgres-db
7+
restart: always
8+
environment:
9+
POSTGRES_USER: postgres
10+
POSTGRES_PASSWORD: 123456
11+
POSTGRES_DB: demo
12+
TZ: Asia/Shanghai
13+
ports:
14+
- "5432:5432"
15+
volumes:
16+
# 数据持久化路径
17+
- ./data:/var/lib/postgresql/data
18+
networks:
19+
- pg-network
20+
21+
networks:
22+
pg-network:
23+
driver: bridge

src/main/java/com/codingapi/dbstream/interceptor/SQLExecuteState.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -216,10 +216,12 @@ public List<Map<String, Object>> getStatementGenerateKeys(DbTable dbTable) {
216216
Map<String, Object> map = new HashMap<>();
217217
ResultSetMetaData resultSetMetaData = rs.getMetaData();
218218
int columnCount = resultSetMetaData.getColumnCount();
219-
List<DbColumn> primaryKeyColumns = dbTable.getPrimaryColumns();
220219
for (int i = 1; i <= columnCount; i++) {
221-
DbColumn dbColumn = primaryKeyColumns.get(i - 1);
222-
map.put(dbColumn.getName(), rs.getObject(i));
220+
String columName = resultSetMetaData.getColumnName(i);
221+
DbColumn dbColumn = dbTable.getColumnByName(columName);
222+
if(dbColumn!=null) {
223+
map.put(dbColumn.getName(), rs.getObject(i));
224+
}
223225
}
224226
list.add(map);
225227
}

src/main/java/com/codingapi/dbstream/proxy/PreparedStatementProxy.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ public void setObject(int parameterIndex, Object x) throws SQLException {
163163

164164
@Override
165165
public boolean execute() throws SQLException {
166+
System.out.println("execute:"+this.executeState.getSql());
166167
SQLRunningContext.getInstance().before(this.executeState);
167168
boolean result = preparedStatement.execute();
168169
SQLRunningContext.getInstance().after(this.executeState, result);
@@ -171,6 +172,7 @@ public boolean execute() throws SQLException {
171172

172173
@Override
173174
public void addBatch() throws SQLException {
175+
System.out.println("addBatch:"+this.executeState.getSql());
174176
preparedStatement.addBatch();
175177
}
176178

@@ -390,6 +392,7 @@ public ResultSet executeQuery(String sql) throws SQLException {
390392
@Override
391393
public int executeUpdate(String sql) throws SQLException {
392394
this.executeState.setSql(sql);
395+
System.out.println("executeUpdate:"+sql);
393396
SQLRunningContext.getInstance().before(this.executeState);
394397
int result = preparedStatement.executeUpdate(sql);
395398
SQLRunningContext.getInstance().after(this.executeState, result);

src/test/java/com/example/dbstream/entity/User1.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
package com.example.dbstream.entity;
22

3+
import jakarta.persistence.*;
34
import lombok.Data;
45

5-
import javax.persistence.*;
66

77
@Data
88
@Entity
99
@Table(name = "m_user_1")
1010
public class User1 {
1111

1212
@Id
13-
@GeneratedValue(strategy = GenerationType.IDENTITY)
14-
private long id;
13+
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "user_seq")
14+
@SequenceGenerator(name = "user_seq", sequenceName = "user_seq", allocationSize = 50)
15+
private Long id;
1516

1617
private String username;
1718

src/test/java/com/example/dbstream/entity/User2.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import lombok.Data;
44

5-
import javax.persistence.*;
5+
import jakarta.persistence.*;
66

77
@Data
88
@Entity

src/test/java/com/example/dbstream/repository/User2Repository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public interface User2Repository extends JpaRepository<User2, Long> {
2525
int counts();
2626

2727
@Modifying
28-
@Query("update User2 set password = now() where username = ?1")
28+
@Query("update User2 set password = '123' where username = ?1")
2929
int resetPasswordByUsername1(String username);
3030

3131
@Modifying

src/test/java/com/example/dbstream/tests/User1RepositoryTest.java

Lines changed: 16 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,17 @@
22

33

44
import com.codingapi.dbstream.DBStreamContext;
5-
import com.codingapi.dbstream.stream.DBEvent;
6-
import com.codingapi.dbstream.stream.DBEventPusher;
75
import com.example.dbstream.entity.User1;
86
import com.example.dbstream.listener.MySQLListener;
97
import com.example.dbstream.repository.User1Repository;
8+
import jakarta.persistence.EntityManager;
9+
import jakarta.transaction.Transactional;
1010
import org.junit.jupiter.api.BeforeEach;
1111
import org.junit.jupiter.api.Test;
1212
import org.springframework.beans.factory.annotation.Autowired;
1313
import org.springframework.boot.test.context.SpringBootTest;
1414
import org.springframework.test.annotation.Rollback;
1515

16-
import javax.transaction.Transactional;
17-
import java.util.ArrayList;
18-
import java.util.List;
19-
2016
import static org.junit.jupiter.api.Assertions.assertThrows;
2117

2218

@@ -26,15 +22,18 @@ class User1RepositoryTest {
2622
@Autowired
2723
private User1Repository userRepository;
2824

25+
@Autowired
26+
private EntityManager entityManager;
27+
2928

3029
@BeforeEach
3130
void setUp() {
32-
DBStreamContext.getInstance().addEventPusher(new DBEventPusher() {
33-
@Override
34-
public void push(List<DBEvent> events) {
35-
System.out.println(events);
36-
}
37-
});
31+
// DBStreamContext.getInstance().addEventPusher(new DBEventPusher() {
32+
// @Override
33+
// public void push(List<DBEvent> events) {
34+
// System.out.println(events);
35+
// }
36+
// });
3837
}
3938

4039
/**
@@ -171,32 +170,19 @@ void test7() {
171170
*/
172171
@Test
173172
@Transactional
174-
@Rollback(false)
173+
@Rollback(value = false)
175174
void test8() {
176-
177-
DBStreamContext.getInstance().addListener(new MySQLListener());
178-
179-
List<User1> list = new ArrayList<>();
180-
181-
175+
entityManager.createQuery("DELETE FROM User1").executeUpdate();
182176
for (int i=0;i<10;i++){
183177
User1 user1 = new User1();
184178
user1.setUsername("admin1");
185179
user1.setPassword("admin1");
186180
user1.setEmail("admin1@example.com");
187181
user1.setNickname("admin1");
188-
list.add(user1);
189-
190-
User1 user2 = new User1();
191-
user2.setUsername("admin2");
192-
user2.setPassword("admin2");
193-
user2.setEmail("admin2@example.com");
194-
user2.setNickname("admin2");
195-
list.add(user2);
182+
entityManager.persist(user1);
196183
}
197-
198-
userRepository.saveAll(list);
199-
184+
entityManager.flush();
185+
entityManager.clear();
200186

201187
}
202188

src/test/java/com/example/dbstream/tests/User2RepositoryTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
import com.example.dbstream.entity.User2;
66
import com.example.dbstream.listener.MySQLListener;
77
import com.example.dbstream.repository.User2Repository;
8+
import jakarta.transaction.Transactional;
89
import org.junit.jupiter.api.Test;
910
import org.springframework.beans.factory.annotation.Autowired;
1011
import org.springframework.boot.test.context.SpringBootTest;
1112
import org.springframework.test.annotation.Rollback;
1213

13-
import javax.transaction.Transactional;
1414

1515
import static org.junit.jupiter.api.Assertions.assertThrows;
1616

0 commit comments

Comments
 (0)