Skip to content

Commit f780853

Browse files
author
fanxb
committed
🚨 Test: 增加测试类
1 parent 9c54ae9 commit f780853

File tree

15 files changed

+272
-141
lines changed

15 files changed

+272
-141
lines changed

spring-boot/sjdemo/logs/xa_tx.lck

Whitespace-only changes.

spring-boot/sjdemo/pom.xml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,12 @@
2929
<version>2.0.0</version>
3030
</dependency>
3131

32+
<!--看不到getter/setter因为这个,请注意-->
33+
<dependency>
34+
<groupId>org.projectlombok</groupId>
35+
<artifactId>lombok</artifactId>
36+
</dependency>
37+
3238
<!--这里有个大坑,版本过高使用xa事务会报错未指定数据库,参见:https://github.com/apache/incubator-shardingsphere/issues/1842-->
3339
<dependency>
3440
<groupId>mysql</groupId>
@@ -40,18 +46,11 @@
4046
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
4147
<version>3.1.0</version>
4248
</dependency>
43-
<!--druid versoin-->
4449
<dependency>
4550
<groupId>com.alibaba</groupId>
4651
<artifactId>druid</artifactId>
4752
<version>1.1.14</version>
4853
</dependency>
49-
<dependency>
50-
<groupId>org.projectlombok</groupId>
51-
<artifactId>lombok</artifactId>
52-
</dependency>
53-
54-
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
5554
<dependency>
5655
<groupId>com.alibaba</groupId>
5756
<artifactId>fastjson</artifactId>

spring-boot/sjdemo/src/main/java/com/fanxb/sjdemo/dao/OrderDao.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,6 @@ public interface OrderDao {
4242
* @author fanxb
4343
* @date 2019/3/25 14:24
4444
*/
45-
List<Order> getOrderByUserId(int id);
45+
List<Order> getOrderByUserId(long id);
4646

4747
}

spring-boot/sjdemo/src/main/java/com/fanxb/sjdemo/dao/OrderItemDao.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,15 @@ public interface OrderItemDao {
3131
*/
3232
List<OrderItem> getByOrderId(int id);
3333

34+
/**
35+
* Description: 根据订单金额连表查询
36+
*
37+
* @author fanxb
38+
* @date 2019/3/26 16:55
39+
* @param price
40+
* @return java.util.List<com.fanxb.sjdemo.entity.OrderItem>
41+
*/
42+
List<OrderItem> getOrderItemByPrice(int price);
43+
44+
3445
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.fanxb.sjdemo.dao;
2+
3+
import com.fanxb.sjdemo.entity.Dictionary;
4+
import com.fanxb.sjdemo.entity.OtherTable;
5+
6+
import java.util.List;
7+
8+
/**
9+
* 类功能简述:
10+
* 类功能详述:
11+
*
12+
* @author fanxb
13+
* @date 2019/3/22 16:25
14+
*/
15+
public interface OtherTableDao {
16+
17+
/**
18+
* Description:
19+
*
20+
* @author fanxb
21+
* @date 2019/3/26 10:16
22+
* @param dictionary dictionary
23+
* @return long
24+
*/
25+
long addOne(OtherTable table);
26+
27+
/**
28+
* Description:
29+
*
30+
* @author fanxb
31+
* @date 2019/3/26 16:31
32+
* @return java.util.List<com.fanxb.sjdemo.entity.OtherTable>
33+
*/
34+
List<OtherTable> getAll();
35+
36+
37+
}

spring-boot/sjdemo/src/main/java/com/fanxb/sjdemo/entity/OrderItem.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
@Data
77
public class OrderItem {
88

9-
// private long userId;
9+
private long userId;
1010
private long orderItemId;
1111
private long orderId;
1212
private String name;
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.fanxb.sjdemo.entity;
2+
3+
import lombok.Data;
4+
5+
/**
6+
* 类功能简述:
7+
* 类功能详述:
8+
*
9+
* @author fanxb
10+
* @date 2019/3/26 16:27
11+
*/
12+
@Data
13+
public class OtherTable {
14+
private Long id;
15+
private String name;
16+
}

spring-boot/sjdemo/src/main/java/com/fanxb/sjdemo/service/UserService.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import org.springframework.stereotype.Service;
1212
import org.springframework.transaction.annotation.Transactional;
1313

14-
import java.util.logging.ConsoleHandler;
1514

1615
/**
1716
* 类功能简述:
@@ -41,7 +40,7 @@ public User getOne(long id) {
4140
* 测试跨库事务
4241
*/
4342
@ShardingTransactionType(TransactionType.XA)
44-
@Transactional
43+
@Transactional(rollbackFor = Exception.class)
4544
public void testTransactional() {
4645
User user1 = new User(123, "988", 12);
4746
logger.info("user1已经插入");
Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
sharding:
22
jdbc:
33
datasource:
4-
names: ds0,ds1
4+
# 配置数据源
5+
names: ds0,ds1,ds2
56
ds0:
67
type: com.alibaba.druid.pool.DruidDataSource
78
driver-class-name: com.mysql.jdbc.Driver
@@ -14,28 +15,30 @@ sharding:
1415
url: jdbc:mysql://10.82.27.177:3306/ds1
1516
username: root
1617
password: 123456
17-
# ds2:
18-
# type: com.alibaba.druid.pool.DruidDataSource
19-
# driver-class-name: com.mysql.jdbc.Driver
20-
# url: jdbc:mysql://10.82.27.177:3306/ds2
21-
# username: root
22-
# password: 123456
18+
ds2:
19+
type: com.alibaba.druid.pool.DruidDataSource
20+
driver-class-name: com.mysql.jdbc.Driver
21+
url: jdbc:mysql://10.82.27.177:3306/ds2
22+
username: root
23+
password: 123456
2324
config:
2425
sharding:
25-
# 默认数据源,可以将不分库分表的数据表放在这里(此处的表需与已经分库分表的表完全没有关联,不会产生联表查询操作,因为跨库连表查询是没办法实现的),3.1.0版本dql查询存在bug,不使用默认库
26-
# default-data-source-name: ds2
27-
# 默认分库策略
26+
# 默认数据源,可以将不分库分表的数据表放在这里(此处的表需与已经分库分表的表完全没有关联,不会产生联表查询操作,因为跨库连表查询是没办法实现的)
27+
# 3.1.0版本中dql查询存在bug,不使用默认库.会在下个版本中修复
28+
default-data-source-name: ds2
29+
# 默认分库策略,根据userId对2取余确定库
2830
default-database-strategy:
2931
inline:
3032
sharding-column: userId
3133
algorithm-expression: ds$->{userId % 2}
3234
# 配置表策略
3335
tables:
34-
# 公共表(比如字典表,角色表,权限表等),不分库或者分表,数据将发送到所有库中,方便联表查询
36+
# 公共表(比如字典表,角色表,权限表等),不分库分表,数据将发送到所有库中,方便联表查询
3537
dictionary:
38+
# 配置主键,以便sharding-jdbc生成主键
3639
key-generator-column-name: dictionaryId
3740
actual-data-nodes: ds$->{0..1}.dictionary
38-
# user 前面已经根据uId分库,因此user表不进行分表
41+
# user 已经根据userId分库,因此user表不进行分表
3942
user:
4043
key-generator-column-name: userId
4144
actual-data-nodes: ds$->{0..1}.user
@@ -44,14 +47,18 @@ sharding:
4447
actual-data-nodes: ds$->{0..1}.order$->{0..1}
4548
table-strategy:
4649
inline:
50+
# 设置分片键,相同分片键的连表查询不会出现笛卡儿积
4751
sharding-column: orderId
52+
# 设置分表规则,根据订单id对2取余分两个表
4853
algorithm-expression: order$->{orderId%2}
4954
order_item:
5055
key-generator-column-name: orderItemId
5156
actual-data-nodes: ds$->{0..1}.order_item$->{0..1}
5257
table-strategy:
5358
inline:
5459
sharding-column: orderId
60+
# 设置分表规则,根据订单id对2取余分两个表
5561
algorithm-expression: order_item$->{orderId%2}
62+
# 打印sql解析过程
5663
props:
5764
sql.show: true

spring-boot/sjdemo/src/main/resources/mapper/OrderItemMapper.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,15 @@
33
<mapper namespace="com.fanxb.sjdemo.dao.OrderItemDao">
44

55
<insert id="addOne" parameterType="orderItem" useGeneratedKeys="true" keyProperty="orderItemId">
6-
insert into order_item(orderId,name,price) values(#{orderId},#{name},#{price})
6+
insert into order_item(userId,orderId,name,price) values(#{userId},#{orderId},#{name},#{price})
77
</insert>
88

99
<select id="getByOrderId" resultType="orderItem">
1010
select * from order_item where orderId=#{id}
1111
</select>
1212

13+
<select id="getOrderItemByPrice" resultType="orderItem">
14+
select a.* from order_item a inner join order b on a.orderId = b.orderId where b.totalPrice=#{price}
15+
</select>
16+
1317
</mapper>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3+
<mapper namespace="com.fanxb.sjdemo.dao.OtherTableDao">
4+
5+
<insert id="addOne" useGeneratedKeys="true" keyProperty="id" parameterType="otherTable">
6+
insert into other_table(name) values(#{name})
7+
</insert>
8+
9+
<select id="getAll" resultType="otherTable">
10+
select * from other_table
11+
</select>
12+
13+
14+
</mapper>

0 commit comments

Comments
 (0)