commit
8cc2fef1c3
@ -0,0 +1,46 @@
|
|||||||
|
### Java template
|
||||||
|
# Compiled class file
|
||||||
|
*.class
|
||||||
|
|
||||||
|
# Log file
|
||||||
|
*.log
|
||||||
|
|
||||||
|
# BlueJ files
|
||||||
|
*.ctxt
|
||||||
|
|
||||||
|
# Mobile Tools for Java (J2ME)
|
||||||
|
.mtj.tmp/
|
||||||
|
|
||||||
|
# Package Files #
|
||||||
|
*.jar
|
||||||
|
*.war
|
||||||
|
*.nar
|
||||||
|
*.ear
|
||||||
|
*.zip
|
||||||
|
*.tar.gz
|
||||||
|
*.rar
|
||||||
|
|
||||||
|
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
|
||||||
|
hs_err_pid*
|
||||||
|
|
||||||
|
### Maven template
|
||||||
|
target/
|
||||||
|
pom.xml.tag
|
||||||
|
pom.xml.releaseBackup
|
||||||
|
pom.xml.versionsBackup
|
||||||
|
pom.xml.next
|
||||||
|
release.properties
|
||||||
|
dependency-reduced-pom.xml
|
||||||
|
buildNumber.properties
|
||||||
|
.mvn/timing.properties
|
||||||
|
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
|
||||||
|
.mvn/wrapper/maven-wrapper.jar
|
||||||
|
|
||||||
|
### Example user template template
|
||||||
|
### Example user template
|
||||||
|
|
||||||
|
# IntelliJ project files
|
||||||
|
.idea
|
||||||
|
*.iml
|
||||||
|
out
|
||||||
|
gen
|
@ -0,0 +1,21 @@
|
|||||||
|
<div style="text-align: center; color: orangered">sharding JDBC的一般性 DEMO</div>
|
||||||
|
|
||||||
|
|
||||||
|
## 具体实践
|
||||||
|
|
||||||
|
### 0. 业务场景
|
||||||
|
解决问题: 同一项目在多数据源场景下, 订单,会员,价格统计都在不同的库里, 综合 JPA + ShardingJDBC + 动态数据源(跨库) + 怎么实现数据源切换及跨库查询?
|
||||||
|
|
||||||
|
跨库查询: 用户 (用户信息库) 有及相关的总价统计在price表里(业务库),来实现跨库查询
|
||||||
|
|
||||||
|
跨库查询结合分表: 短期业务场景下对用户及总价对关联订单进行查询,订单采用分表进行存储
|
||||||
|
|
||||||
|
跨库结合分表分库: 长期业务场景下不能满足分表的场景,然后进行分表分库进行查询
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### 1. 多数据源下对其中一个数据源进行分表分库
|
||||||
|
|
||||||
|
查看配置文件
|
||||||
|
|
||||||
|
### 2.
|
@ -0,0 +1,89 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<groupId>com.baiye</groupId>
|
||||||
|
<artifactId>sharding-demo</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
<modules>
|
||||||
|
<module>sharding-multiple-data-sources</module>
|
||||||
|
<module>sharding-multiple-data-sources</module>
|
||||||
|
</modules>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<maven.compiler.source>8</maven.compiler.source>
|
||||||
|
<maven.compiler.target>8</maven.compiler.target>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-parent</artifactId>
|
||||||
|
<version>2.3.2.RELEASE</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
|
<dependencyManagement>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-web</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- for spring boot -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.shardingsphere</groupId>
|
||||||
|
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- for spring namespace -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.shardingsphere</groupId>
|
||||||
|
<artifactId>sharding-jdbc-spring-namespace</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>mysql</groupId>
|
||||||
|
<artifactId>mysql-connector-java</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.baomidou</groupId>
|
||||||
|
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<version>1.18.20</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>junit</groupId>
|
||||||
|
<artifactId>junit</artifactId>
|
||||||
|
<version>4.13.2</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba</groupId>
|
||||||
|
<artifactId>druid-spring-boot-starter</artifactId>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</dependencyManagement>
|
||||||
|
</project>
|
@ -0,0 +1,46 @@
|
|||||||
|
### Java template
|
||||||
|
# Compiled class file
|
||||||
|
*.class
|
||||||
|
|
||||||
|
# Log file
|
||||||
|
*.log
|
||||||
|
|
||||||
|
# BlueJ files
|
||||||
|
*.ctxt
|
||||||
|
|
||||||
|
# Mobile Tools for Java (J2ME)
|
||||||
|
.mtj.tmp/
|
||||||
|
|
||||||
|
# Package Files #
|
||||||
|
*.jar
|
||||||
|
*.war
|
||||||
|
*.nar
|
||||||
|
*.ear
|
||||||
|
*.zip
|
||||||
|
*.tar.gz
|
||||||
|
*.rar
|
||||||
|
|
||||||
|
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
|
||||||
|
hs_err_pid*
|
||||||
|
|
||||||
|
### Maven template
|
||||||
|
target/
|
||||||
|
pom.xml.tag
|
||||||
|
pom.xml.releaseBackup
|
||||||
|
pom.xml.versionsBackup
|
||||||
|
pom.xml.next
|
||||||
|
release.properties
|
||||||
|
dependency-reduced-pom.xml
|
||||||
|
buildNumber.properties
|
||||||
|
.mvn/timing.properties
|
||||||
|
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
|
||||||
|
.mvn/wrapper/maven-wrapper.jar
|
||||||
|
|
||||||
|
### Example user template template
|
||||||
|
### Example user template
|
||||||
|
|
||||||
|
# IntelliJ project files
|
||||||
|
.idea
|
||||||
|
*.iml
|
||||||
|
out
|
||||||
|
gen
|
@ -0,0 +1,74 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<artifactId>sharding-demo</artifactId>
|
||||||
|
<groupId>com.baiye</groupId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>sharding-multiple-data-sources</artifactId>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<maven.compiler.source>8</maven.compiler.source>
|
||||||
|
<maven.compiler.target>8</maven.compiler.target>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-web</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- for spring boot -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.shardingsphere</groupId>
|
||||||
|
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- for spring namespace -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.shardingsphere</groupId>
|
||||||
|
<artifactId>sharding-jdbc-spring-namespace</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>mysql</groupId>
|
||||||
|
<artifactId>mysql-connector-java</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- <dependency>
|
||||||
|
<groupId>com.baomidou</groupId>
|
||||||
|
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
|
||||||
|
</dependency>-->
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>junit</groupId>
|
||||||
|
<artifactId>junit</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba</groupId>
|
||||||
|
<artifactId>druid-spring-boot-starter</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.baiye;
|
||||||
|
|
||||||
|
import org.springframework.boot.SpringApplication;
|
||||||
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author q
|
||||||
|
*/
|
||||||
|
@SpringBootApplication
|
||||||
|
public class ShardingMultipleDataSourceApplication {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
SpringApplication.run(ShardingMultipleDataSourceApplication.class, args);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
package com.baiye.dao;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baiye.domain.Order;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
public interface OrderRepository extends JpaRepository<Order,Integer> {
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
package com.baiye.dao;
|
||||||
|
|
||||||
|
import com.baiye.domain.Price;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
public interface PriceRepository extends JpaRepository<Price,Integer> {
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
package com.baiye.dao;
|
||||||
|
|
||||||
|
import com.baiye.domain.User;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 对应user表 -> 存储在库 test_sharding_1
|
||||||
|
*
|
||||||
|
* 代表业务主库
|
||||||
|
*
|
||||||
|
* @author q
|
||||||
|
*/
|
||||||
|
public interface UserRepository extends JpaRepository<User,Integer> {
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
package com.baiye.domain;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
@Data
|
||||||
|
@Table(name = "order")
|
||||||
|
public class Order implements Serializable {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
private Integer id;
|
||||||
|
|
||||||
|
private Integer userid;
|
||||||
|
|
||||||
|
private String ordername;
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package com.baiye.domain;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Table(name = "price")
|
||||||
|
public class Price {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
private Integer id;
|
||||||
|
|
||||||
|
private Integer userId;
|
||||||
|
|
||||||
|
private BigDecimal cost;
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package com.baiye.domain;
|
||||||
|
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Table(name = "user")
|
||||||
|
public class User {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
private Integer id;
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
private String city;
|
||||||
|
}
|
@ -0,0 +1,56 @@
|
|||||||
|
package com.baiye.service;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baiye.dao.OrderRepository;
|
||||||
|
import com.baiye.domain.Order;
|
||||||
|
import com.baiye.domain.User;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author q
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class ShardService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private OrderRepository orderRepository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 增
|
||||||
|
*/
|
||||||
|
public Order insertOne(Order order){
|
||||||
|
return orderRepository.save(order);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量增加
|
||||||
|
*/
|
||||||
|
public List<Order> batchInsert(List<Order> orders){
|
||||||
|
return orderRepository.saveAll(orders);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查
|
||||||
|
*/
|
||||||
|
public List<Order> queryByCondition(){
|
||||||
|
return orderRepository.findAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改
|
||||||
|
*/
|
||||||
|
public Order updateByCondition(Order order){
|
||||||
|
return orderRepository.save(order);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除
|
||||||
|
*/
|
||||||
|
public void deleterByCondition(Order order){
|
||||||
|
orderRepository.delete(order);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,47 @@
|
|||||||
|
db:
|
||||||
|
# 多数据源1
|
||||||
|
# db1-name: master
|
||||||
|
# 多数据源2
|
||||||
|
# db2-name: 'slave_1'
|
||||||
|
# 分表分库1
|
||||||
|
db3-name: 'ds1'
|
||||||
|
# 分表分库2
|
||||||
|
db4-name: 'ds2'
|
||||||
|
tb:
|
||||||
|
name1: order
|
||||||
|
|
||||||
|
|
||||||
|
# 分库
|
||||||
|
spring:
|
||||||
|
shardingsphere:
|
||||||
|
datasource:
|
||||||
|
names: ${db.db3-name}, ${db.db4-name}
|
||||||
|
${db.db3-name}:
|
||||||
|
type: com.alibaba.druid.pool.DruidDataSource
|
||||||
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
|
jdbc-url: jdbc:mysql://127.0.0.1:3306/shard-3?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8&useTimezone=true
|
||||||
|
username: root
|
||||||
|
password: root
|
||||||
|
${db.db4-name}:
|
||||||
|
type: com.alibaba.druid.pool.DruidDataSource
|
||||||
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
|
jdbc-url: jdbc:mysql://127.0.0.1:3306/shard-4?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8&useTimezone=true
|
||||||
|
username: root
|
||||||
|
password: root
|
||||||
|
# 设置分片策略
|
||||||
|
sharding:
|
||||||
|
default-database-strategy:
|
||||||
|
inline:
|
||||||
|
sharding-column: userid
|
||||||
|
algorithm-expression: ds$->{userid % 10}
|
||||||
|
# 表分片策略
|
||||||
|
tables:
|
||||||
|
${tb.name1}:
|
||||||
|
actual-data-nodes: ds$->{0..1}.order
|
||||||
|
key-generator:
|
||||||
|
column: userid
|
||||||
|
type: SNOWFLAKE
|
||||||
|
props:
|
||||||
|
worker:
|
||||||
|
id: 33
|
||||||
|
|
@ -0,0 +1,35 @@
|
|||||||
|
db:
|
||||||
|
# 多数据源1
|
||||||
|
db1-name: master
|
||||||
|
# 多数据源2
|
||||||
|
db2-name: 'slave_1'
|
||||||
|
# 分表分库1
|
||||||
|
db3-name: ds1
|
||||||
|
# 分表分库2
|
||||||
|
db4-name: ds2
|
||||||
|
tb:
|
||||||
|
name1: order
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# 分表相关的逻辑
|
||||||
|
spring:
|
||||||
|
shardingsphere:
|
||||||
|
datasource:
|
||||||
|
names: ${db.db3-name}
|
||||||
|
${db.db3-name}:
|
||||||
|
type: com.zaxxer.hikari.HikariDataSource
|
||||||
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
|
jdbc-url: jdbc:mysql://127.0.0.1:3306/shard-3?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8&useTimezone=true
|
||||||
|
username: root
|
||||||
|
password: root
|
||||||
|
sharding:
|
||||||
|
tables:
|
||||||
|
${tb.name1}:
|
||||||
|
table-strategy:
|
||||||
|
inline:
|
||||||
|
sharding-column: id
|
||||||
|
algorithm-expression: order$-> {id % 10}
|
||||||
|
|
||||||
|
# todo 设置了绑定表和广播表 提供性能
|
@ -0,0 +1,15 @@
|
|||||||
|
# 配置环境分离
|
||||||
|
application-all:
|
||||||
|
app-properties-name-1: shardtable # 分表
|
||||||
|
app-properties-name-2: sharddatabase # 分库
|
||||||
|
|
||||||
|
|
||||||
|
server:
|
||||||
|
port: 8080
|
||||||
|
spring:
|
||||||
|
application:
|
||||||
|
name: sharding-multiple-data-sources
|
||||||
|
profiles:
|
||||||
|
active: sharddatabase
|
||||||
|
|
||||||
|
|
@ -0,0 +1,49 @@
|
|||||||
|
package com.baiye.service;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baiye.ShardingMultipleDataSourceApplication;
|
||||||
|
import com.baiye.domain.Order;
|
||||||
|
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.test.context.junit4.SpringRunner;
|
||||||
|
|
||||||
|
@RunWith(SpringRunner.class)
|
||||||
|
@SpringBootTest(classes = ShardingMultipleDataSourceApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
||||||
|
public class ShardServiceTest {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ShardService shardService;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void insertOne() {
|
||||||
|
Order order = new Order();
|
||||||
|
order.setUserid(9999);
|
||||||
|
order.setOrdername("testOrder" + 9999);
|
||||||
|
Order order1 = shardService.insertOne(order);
|
||||||
|
System.out.println("order1 = " + order1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void batchInsert() {
|
||||||
|
for (int i = 1; i < 1000; i++) {
|
||||||
|
Order order = new Order();
|
||||||
|
order.setUserid(i);
|
||||||
|
order.setOrdername("testOrder" + i);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void queryByCondition() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void updateByCondition() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void deleterByCondition() {
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue