update docs

This commit is contained in:
开源海哥 2023-03-07 10:52:31 +08:00
parent e86db3f92f
commit 0ca7c40326
2 changed files with 89 additions and 58 deletions

View File

@ -122,6 +122,20 @@ public class AccountSqlTester {
System.out.println(sql); System.out.println(sql);
} }
@Test
public void testWhereSelectSql() {
QueryWrapper queryWrapper = QueryWrapper.create()
.select()
.from(ACCOUNT)
.where(ACCOUNT.ID.ge(
select(ARTICLE.ACCOUNT_ID).from(ARTICLE).where(ARTICLE.ID.ge(100))
));
IDialect dialect = new CommonsDialectImpl();
String sql = dialect.forSelectListByQuery(queryWrapper);
System.out.println(sql);
}
@Test @Test
public void testGroupSql() { public void testGroupSql() {
QueryWrapper queryWrapper = QueryWrapper.create() QueryWrapper queryWrapper = QueryWrapper.create()
@ -140,7 +154,7 @@ public class AccountSqlTester {
.select() .select()
.from(ACCOUNT) .from(ACCOUNT)
.groupBy(ACCOUNT.USER_NAME) .groupBy(ACCOUNT.USER_NAME)
.having(ACCOUNT.AGE.between(18,25)); .having(ACCOUNT.AGE.between(18, 25));
IDialect dialect = new CommonsDialectImpl(); IDialect dialect = new CommonsDialectImpl();
String sql = dialect.forSelectListByQuery(queryWrapper); String sql = dialect.forSelectListByQuery(queryWrapper);
@ -165,7 +179,7 @@ public class AccountSqlTester {
QueryWrapper queryWrapper = QueryWrapper.create() QueryWrapper queryWrapper = QueryWrapper.create()
.select() .select()
.from(ACCOUNT) .from(ACCOUNT)
.orderBy(ACCOUNT.AGE.asc(),ACCOUNT.USER_NAME.desc().nullsLast()); .orderBy(ACCOUNT.AGE.asc(), ACCOUNT.USER_NAME.desc().nullsLast());
IDialect dialect = new CommonsDialectImpl(); IDialect dialect = new CommonsDialectImpl();
String sql = dialect.forSelectListByQuery(queryWrapper); String sql = dialect.forSelectListByQuery(queryWrapper);

View File

@ -83,19 +83,19 @@ class HelloWorld {
```java ```java
//示例2通过 QueryWrapper 构建条件查询数据列表 //示例2通过 QueryWrapper 构建条件查询数据列表
QueryWrapper query=QueryWrapper.create() QueryWrapper query=QueryWrapper.create()
.select() .select()
.from(ACCOUNT) .from(ACCOUNT)
.where(ACCOUNT.ID.ge(100)) .where(ACCOUNT.ID.ge(100))
.and(ACCOUNT.USER_NAME.like("张").or(ACCOUNT.USER_NAME.like("李"))); .and(ACCOUNT.USER_NAME.like("张").or(ACCOUNT.USER_NAME.like("李")));
// 执行 SQL // 执行 SQL
// ELECT * FROM `tb_account` // ELECT * FROM `tb_account`
// WHERE `tb_account`.`id` >= 100 // WHERE `tb_account`.`id` >= 100
// AND (`tb_account`.`user_name` LIKE '%张%' OR `tb_account`.`user_name` LIKE '%李%' ) // AND (`tb_account`.`user_name` LIKE '%张%' OR `tb_account`.`user_name` LIKE '%李%' )
List<Account> accounts=MybatisFlexBootstrap.getInstance() List<Account> accounts=MybatisFlexBootstrap.getInstance()
.execute(AccountMapper.class,mapper-> .execute(AccountMapper.class,mapper->
mapper.selectListByQuery(query) mapper.selectListByQuery(query)
); );
``` ```
示例3分页查询 示例3分页查询
@ -104,11 +104,11 @@ QueryWrapper query=QueryWrapper.create()
// 示例3分页查询 // 示例3分页查询
// 查询第 5 页,每页 10 条数据,通过 QueryWrapper 构建条件查询 // 查询第 5 页,每页 10 条数据,通过 QueryWrapper 构建条件查询
QueryWrapper query=QueryWrapper.create() QueryWrapper query=QueryWrapper.create()
.select() .select()
.from(ACCOUNT) .from(ACCOUNT)
.where(ACCOUNT.ID.ge(100)) .where(ACCOUNT.ID.ge(100))
.and(ACCOUNT.USER_NAME.like("张").or(ACCOUNT.USER_NAME.like("李"))) .and(ACCOUNT.USER_NAME.like("张").or(ACCOUNT.USER_NAME.like("李")))
.orderBy(ACCOUNT.ID.desc()); .orderBy(ACCOUNT.ID.desc());
// 执行 SQL // 执行 SQL
// ELECT * FROM `tb_account` // ELECT * FROM `tb_account`
@ -116,10 +116,10 @@ QueryWrapper query=QueryWrapper.create()
// AND (`user_name` LIKE '%张%' OR `user_name` LIKE '%李%' ) // AND (`user_name` LIKE '%张%' OR `user_name` LIKE '%李%' )
// ORDER BY `id` DESC // ORDER BY `id` DESC
// LIMIT 40,10 // LIMIT 40,10
Page<Account> accounts=MybatisFlexBootstrap.getInstance() Page<Account> accounts=MybatisFlexBootstrap.getInstance()
.execute(AccountMapper.class,mapper-> .execute(AccountMapper.class,mapper->
mapper.paginate(5,10,query) mapper.paginate(5,10,query)
); );
``` ```
## QueryWrapper 示例 ## QueryWrapper 示例
@ -128,7 +128,7 @@ QueryWrapper query=QueryWrapper.create()
```java ```java
QueryWrapper query=new QueryWrapper(); QueryWrapper query=new QueryWrapper();
query.select().from(ACCOUNT) query.select().from(ACCOUNT)
// SQL: // SQL:
// SELECT * FROM tb_account // SELECT * FROM tb_account
@ -138,7 +138,8 @@ QueryWrapper query=new QueryWrapper();
```java ```java
QueryWrapper query=new QueryWrapper(); QueryWrapper query=new QueryWrapper();
query.select(ACCOUNT.ID,ACCOUNT.USER_NAME).from(ACCOUNT) query.select(ACCOUNT.ID,ACCOUNT.USER_NAME)
.from(ACCOUNT)
// SQL: // SQL:
// SELECT id, user_name // SELECT id, user_name
@ -147,7 +148,7 @@ QueryWrapper query=new QueryWrapper();
```java ```java
QueryWrapper query=new QueryWrapper(); QueryWrapper query=new QueryWrapper();
query.select(ACCOUNT.ALL_COLUMNS).from(ACCOUNT) query.select(ACCOUNT.ALL_COLUMNS).from(ACCOUNT)
// SQL: // SQL:
// SELECT id, user_name, birthday, sex, is_normal // SELECT id, user_name, birthday, sex, is_normal
@ -157,13 +158,13 @@ QueryWrapper query=new QueryWrapper();
### select functions ### select functions
```java ```java
QueryWrapper query=new QueryWrapper() QueryWrapper query=new QueryWrapper()
.select( .select(
ACCOUNT.ID, ACCOUNT.ID,
ACCOUNT.USER_NAME, ACCOUNT.USER_NAME,
max(ACCOUNT.BIRTHDAY), max(ACCOUNT.BIRTHDAY),
avg(ACCOUNT.SEX).as("sex_avg") avg(ACCOUNT.SEX).as("sex_avg")
).from(ACCOUNT); ).from(ACCOUNT);
// SQL: // SQL:
// SELECT id, user_name, // SELECT id, user_name,
@ -176,10 +177,10 @@ QueryWrapper query=new QueryWrapper();
```java ```java
QueryWrapper queryWrapper=QueryWrapper.create() QueryWrapper queryWrapper=QueryWrapper.create()
.select() .select()
.from(ACCOUNT) .from(ACCOUNT)
.where(ACCOUNT.ID.ge(100)) .where(ACCOUNT.ID.ge(100))
.and(ACCOUNT.USER_NAME.like("michael")); .and(ACCOUNT.USER_NAME.like("michael"));
// SQL: // SQL:
// SELECT * FROM tb_account // SELECT * FROM tb_account
@ -187,18 +188,33 @@ QueryWrapper queryWrapper=QueryWrapper.create()
// AND user_name LIKE ? // AND user_name LIKE ?
``` ```
### where select
```java
QueryWrapper queryWrapper = QueryWrapper.create()
.select()
.from(ACCOUNT)
.where(ACCOUNT.ID.ge(
select(ARTICLE.ACCOUNT_ID).from(ARTICLE).where(ARTICLE.ID.ge(100))
));
// SQL:
// SELECT * FROM `tb_account`
// WHERE `id` >=
// (SELECT `account_id` FROM `tb_article` WHERE `id` >= ? )
```
### exists, not exists ### exists, not exists
```java ```java
QueryWrapper queryWrapper=QueryWrapper.create() QueryWrapper queryWrapper=QueryWrapper.create()
.select() .select()
.from(ACCOUNT) .from(ACCOUNT)
.where(ACCOUNT.ID.ge(100)) .where(ACCOUNT.ID.ge(100))
.and( .and(
exist( exist(
selectOne().from(ARTICLE).where(ARTICLE.ID.ge(100)) selectOne().from(ARTICLE).where(ARTICLE.ID.ge(100))
) )
); );
// SQL: // SQL:
// SELECT * FROM tb_account // SELECT * FROM tb_account
@ -212,11 +228,11 @@ QueryWrapper queryWrapper=QueryWrapper.create()
```java ```java
QueryWrapper queryWrapper=QueryWrapper.create() QueryWrapper queryWrapper=QueryWrapper.create()
.select() .select()
.from(ACCOUNT) .from(ACCOUNT)
.where(ACCOUNT.ID.ge(100)) .where(ACCOUNT.ID.ge(100))
.and(ACCOUNT.SEX.eq(1).or(ACCOUNT.SEX.eq(2))) .and(ACCOUNT.SEX.eq(1).or(ACCOUNT.SEX.eq(2)))
.or(ACCOUNT.AGE.in(18,19,20).and(ACCOUNT.USER_NAME.like("michael"))); .or(ACCOUNT.AGE.in(18,19,20).and(ACCOUNT.USER_NAME.like("michael")));
// SQL: // SQL:
// SELECT * FROM tb_account // SELECT * FROM tb_account
@ -229,9 +245,9 @@ QueryWrapper queryWrapper=QueryWrapper.create()
```java ```java
QueryWrapper queryWrapper=QueryWrapper.create() QueryWrapper queryWrapper=QueryWrapper.create()
.select() .select()
.from(ACCOUNT) .from(ACCOUNT)
.groupBy(ACCOUNT.USER_NAME); .groupBy(ACCOUNT.USER_NAME);
// SQL: // SQL:
// SELECT * FROM tb_account // SELECT * FROM tb_account
@ -242,10 +258,10 @@ QueryWrapper queryWrapper=QueryWrapper.create()
```java ```java
QueryWrapper queryWrapper=QueryWrapper.create() QueryWrapper queryWrapper=QueryWrapper.create()
.select() .select()
.from(ACCOUNT) .from(ACCOUNT)
.groupBy(ACCOUNT.USER_NAME) .groupBy(ACCOUNT.USER_NAME)
.having(ACCOUNT.AGE.between(18,25)); .having(ACCOUNT.AGE.between(18,25));
// SQL: // SQL:
// SELECT * FROM tb_account // SELECT * FROM tb_account
@ -257,9 +273,10 @@ QueryWrapper queryWrapper=QueryWrapper.create()
```java ```java
QueryWrapper queryWrapper=QueryWrapper.create() QueryWrapper queryWrapper=QueryWrapper.create()
.select() .select()
.from(ACCOUNT) .from(ACCOUNT)
.orderBy(ACCOUNT.AGE.asc(), ACCOUNT.USER_NAME.desc().nullsLast()); .orderBy(ACCOUNT.AGE.asc()
, ACCOUNT.USER_NAME.desc().nullsLast());
// SQL: // SQL:
// SELECT * FROM `tb_account` // SELECT * FROM `tb_account`
@ -270,11 +287,11 @@ QueryWrapper queryWrapper=QueryWrapper.create()
```java ```java
QueryWrapper queryWrapper=QueryWrapper.create() QueryWrapper queryWrapper=QueryWrapper.create()
.select() .select()
.from(ACCOUNT) .from(ACCOUNT)
.leftJoin(ARTICLE).on(ACCOUNT.ID.eq(ARTICLE.ACCOUNT_ID)) .leftJoin(ARTICLE).on(ACCOUNT.ID.eq(ARTICLE.ACCOUNT_ID))
.innerJoin(ARTICLE).on(ACCOUNT.ID.eq(ARTICLE.ACCOUNT_ID)) .innerJoin(ARTICLE).on(ACCOUNT.ID.eq(ARTICLE.ACCOUNT_ID))
.where(ACCOUNT.AGE.ge(10)); .where(ACCOUNT.AGE.ge(10));
// SQL: // SQL:
// SELECT * FROM tb_account // SELECT * FROM tb_account
@ -354,11 +371,11 @@ update(T entity,boolean ignoreNulls)
```java ```java
Account account=UpdateEntity.of(Account.class); Account account=UpdateEntity.of(Account.class);
account.setId(100); account.setId(100);
account.setUserName(null); account.setUserName(null);
account.setSex(1); account.setSex(1);
accountMapper.update(account,false); accountMapper.update(account,false);
``` ```
以上的示例中,会把 id 为 100 这条数据中的 user_name 字段更新为 nullsex 字段更新为 1其他字段不会被更新。也就是说通过 `UpdateEntity` 以上的示例中,会把 id 为 100 这条数据中的 user_name 字段更新为 nullsex 字段更新为 1其他字段不会被更新。也就是说通过 `UpdateEntity`