mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-07 00:58:24 +08:00
Merge branch 'main' of https://github.com/mybatis-flex/mybatis-flex
This commit is contained in:
commit
925f702c0b
@ -18,6 +18,8 @@ package com.mybatisflex.core.dialect;
|
|||||||
|
|
||||||
import java.util.EnumMap;
|
import java.util.EnumMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import com.mybatisflex.core.exception.MybatisFlexException;
|
||||||
import org.apache.ibatis.util.MapUtil;
|
import org.apache.ibatis.util.MapUtil;
|
||||||
import com.mybatisflex.core.FlexGlobalConfig;
|
import com.mybatisflex.core.FlexGlobalConfig;
|
||||||
import com.mybatisflex.core.dialect.impl.CommonsDialectImpl;
|
import com.mybatisflex.core.dialect.impl.CommonsDialectImpl;
|
||||||
@ -45,6 +47,7 @@ public class DialectFactory {
|
|||||||
* 通过设置当前线程的数据库类型,以达到在代码执行时随时切换方言的功能
|
* 通过设置当前线程的数据库类型,以达到在代码执行时随时切换方言的功能
|
||||||
*/
|
*/
|
||||||
private static final ThreadLocal<DbType> dbTypeThreadLocal = new ThreadLocal<>();
|
private static final ThreadLocal<DbType> dbTypeThreadLocal = new ThreadLocal<>();
|
||||||
|
private static DbType dbTypeGlobal = null ;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -75,6 +78,19 @@ public class DialectFactory {
|
|||||||
return dbTypeThreadLocal.get();
|
return dbTypeThreadLocal.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static DbType getGlobalDbType() {
|
||||||
|
return dbTypeGlobal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setGlobalDbType(DbType dbType) {
|
||||||
|
if(dbTypeGlobal == null&&dbType!=null){
|
||||||
|
dbTypeGlobal = dbType ;
|
||||||
|
}else if(dbTypeGlobal != null){
|
||||||
|
throw new MybatisFlexException("dbTypeGlobal is only set once");
|
||||||
|
}else if(dbType==null){
|
||||||
|
throw new MybatisFlexException("dbType can not be null");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 清除当前线程的 dbType
|
* 清除当前线程的 dbType
|
||||||
|
|||||||
@ -76,6 +76,11 @@ public class MapperInvocationHandler implements InvocationHandler {
|
|||||||
|
|
||||||
//优先获取用户自己配置的 dbType
|
//优先获取用户自己配置的 dbType
|
||||||
DbType dbType = DialectFactory.getHintDbType();
|
DbType dbType = DialectFactory.getHintDbType();
|
||||||
|
DbType dbTypeGlobal = DialectFactory.getGlobalDbType();
|
||||||
|
//当前线程没有设置dbType,但是全局设置了dbTypeGlobal,那么就使用全局的dbTypeGlobal
|
||||||
|
if(dbTypeGlobal!=null&&dbType==null){
|
||||||
|
dbType = dbTypeGlobal ;
|
||||||
|
}
|
||||||
if (dbType == null) {
|
if (dbType == null) {
|
||||||
if (dataSourceKey != null && dataSource != null) {
|
if (dataSourceKey != null && dataSource != null) {
|
||||||
dbType = dataSource.getDbType(dataSourceKey);
|
dbType = dataSource.getDbType(dataSourceKey);
|
||||||
|
|||||||
@ -2609,24 +2609,24 @@ public class QueryMethods {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SELECT 1 FROM table
|
* SELECT 1 as temp_one FROM table
|
||||||
*/
|
*/
|
||||||
public static QueryWrapper selectOne() {
|
public static QueryWrapper selectOne() {
|
||||||
return select(column("1"));
|
return select(column("1").as("temp_one"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SELECT COUNT(*) FROM table
|
* SELECT COUNT(*) as temp_count FROM table
|
||||||
*/
|
*/
|
||||||
public static QueryWrapper selectCount() {
|
public static QueryWrapper selectCount() {
|
||||||
return select(count());
|
return select(count().as("temp_count"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SELECT COUNT(1) FROM table
|
* SELECT COUNT(1) as temp_count_one FROM table
|
||||||
*/
|
*/
|
||||||
public static QueryWrapper selectCountOne() {
|
public static QueryWrapper selectCountOne() {
|
||||||
return select(count("1"));
|
return select(count(new RawQueryColumn("1")).as("temp_count_one"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -42,7 +42,7 @@ public class AccountSqlTester {
|
|||||||
.select()
|
.select()
|
||||||
.from(ACCOUNT);
|
.from(ACCOUNT);
|
||||||
|
|
||||||
Assert.assertEquals("SELECT * FROM `tb_account`",query.toSQL());
|
Assert.assertEquals("SELECT * FROM `tb_account`", query.toSQL());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -51,7 +51,7 @@ public class AccountSqlTester {
|
|||||||
.select()
|
.select()
|
||||||
.from(ACCOUNT01);
|
.from(ACCOUNT01);
|
||||||
|
|
||||||
Assert.assertEquals("SELECT * FROM `flex`.`tb_a01`",query.toSQL());
|
Assert.assertEquals("SELECT * FROM `flex`.`tb_a01`", query.toSQL());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -68,7 +68,7 @@ public class AccountSqlTester {
|
|||||||
Assert.assertEquals("SELECT * FROM `flex`.`tb_a01_01` " +
|
Assert.assertEquals("SELECT * FROM `flex`.`tb_a01_01` " +
|
||||||
"LEFT JOIN `tb_account_01` ON `flex`.`tb_a01_01`.`id` = `tb_account_01`.`id` " +
|
"LEFT JOIN `tb_account_01` ON `flex`.`tb_a01_01`.`id` = `tb_account_01`.`id` " +
|
||||||
"WHERE `flex`.`tb_a01_01`.`id` >= 100 AND `tb_account_01`.`sex` = 1"
|
"WHERE `flex`.`tb_a01_01`.`id` >= 100 AND `tb_account_01`.`sex` = 1"
|
||||||
,query.toSQL());
|
, query.toSQL());
|
||||||
|
|
||||||
System.out.println(query.toSQL());
|
System.out.println(query.toSQL());
|
||||||
// 重置dynamicTableProcessor,防止影响其他的测试用例
|
// 重置dynamicTableProcessor,防止影响其他的测试用例
|
||||||
@ -89,7 +89,7 @@ public class AccountSqlTester {
|
|||||||
Assert.assertEquals("SELECT * FROM `flex`.`tb_a01_01` AS `a1` " +
|
Assert.assertEquals("SELECT * FROM `flex`.`tb_a01_01` AS `a1` " +
|
||||||
"LEFT JOIN `tb_account_01` ON `a1`.`id` = `tb_account_01`.`id` " +
|
"LEFT JOIN `tb_account_01` ON `a1`.`id` = `tb_account_01`.`id` " +
|
||||||
"WHERE `a1`.`id` >= 100 AND `tb_account_01`.`sex` = 1"
|
"WHERE `a1`.`id` >= 100 AND `tb_account_01`.`sex` = 1"
|
||||||
,query.toSQL());
|
, query.toSQL());
|
||||||
|
|
||||||
System.out.println(query.toSQL());
|
System.out.println(query.toSQL());
|
||||||
// 重置dynamicTableProcessor,防止影响其他的测试用例
|
// 重置dynamicTableProcessor,防止影响其他的测试用例
|
||||||
@ -104,7 +104,7 @@ public class AccountSqlTester {
|
|||||||
.from(ACCOUNT);
|
.from(ACCOUNT);
|
||||||
|
|
||||||
Assert.assertEquals("SELECT `id`, `user_name` FROM `tb_account`"
|
Assert.assertEquals("SELECT `id`, `user_name` FROM `tb_account`"
|
||||||
,query.toSQL());
|
, query.toSQL());
|
||||||
|
|
||||||
System.out.println(query.toSQL());
|
System.out.println(query.toSQL());
|
||||||
}
|
}
|
||||||
@ -122,7 +122,7 @@ public class AccountSqlTester {
|
|||||||
"MAX(`a`.`age`) AS `ageMax` " +
|
"MAX(`a`.`age`) AS `ageMax` " +
|
||||||
"FROM `tb_account` AS `a`, `tb_article` AS `b` " +
|
"FROM `tb_account` AS `a`, `tb_article` AS `b` " +
|
||||||
"WHERE `a`.`id` = `b`.`account_id`"
|
"WHERE `a`.`id` = `b`.`account_id`"
|
||||||
,query.toSQL());
|
, query.toSQL());
|
||||||
|
|
||||||
System.out.println(query.toSQL());
|
System.out.println(query.toSQL());
|
||||||
}
|
}
|
||||||
@ -137,7 +137,7 @@ public class AccountSqlTester {
|
|||||||
"MAX(`birthday`) AS `Max_BirthDay`, " +
|
"MAX(`birthday`) AS `Max_BirthDay`, " +
|
||||||
"AVG(`sex`) AS `sex_avg` " +
|
"AVG(`sex`) AS `sex_avg` " +
|
||||||
"FROM `tb_account` AS `tableAlias`"
|
"FROM `tb_account` AS `tableAlias`"
|
||||||
,query.toSQL());
|
, query.toSQL());
|
||||||
|
|
||||||
System.out.println(query.toSQL());
|
System.out.println(query.toSQL());
|
||||||
}
|
}
|
||||||
@ -152,7 +152,7 @@ public class AccountSqlTester {
|
|||||||
"MAX(`birthday`) AS `Max_BirthDay`, " +
|
"MAX(`birthday`) AS `Max_BirthDay`, " +
|
||||||
"AVG(`sex`) AS `sex_avg` " +
|
"AVG(`sex`) AS `sex_avg` " +
|
||||||
"FROM `tb_account` AS `tableAlias`"
|
"FROM `tb_account` AS `tableAlias`"
|
||||||
,query.toSQL());
|
, query.toSQL());
|
||||||
|
|
||||||
System.out.println(query.toSQL());
|
System.out.println(query.toSQL());
|
||||||
}
|
}
|
||||||
@ -162,13 +162,13 @@ public class AccountSqlTester {
|
|||||||
QueryWrapper query = new QueryWrapper()
|
QueryWrapper query = new QueryWrapper()
|
||||||
.select(
|
.select(
|
||||||
new DistinctQueryColumn(ACCOUNT.SEX).as("sexDis"))
|
new DistinctQueryColumn(ACCOUNT.SEX).as("sexDis"))
|
||||||
.select( ACCOUNT.USER_NAME.add(ACCOUNT.AGE).as("addAlias"))
|
.select(ACCOUNT.USER_NAME.add(ACCOUNT.AGE).as("addAlias"))
|
||||||
.select(new RawQueryColumn("abc").as("aBc"))
|
.select(new RawQueryColumn("abc").as("aBc"))
|
||||||
.from(ACCOUNT);
|
.from(ACCOUNT);
|
||||||
|
|
||||||
Assert.assertEquals("SELECT DISTINCT `sex` AS `sexDis`, (`user_name` + `age`) AS `addAlias`, abc AS `aBc` " +
|
Assert.assertEquals("SELECT DISTINCT `sex` AS `sexDis`, (`user_name` + `age`) AS `addAlias`, abc AS `aBc` " +
|
||||||
"FROM `tb_account`"
|
"FROM `tb_account`"
|
||||||
,query.toSQL());
|
, query.toSQL());
|
||||||
|
|
||||||
System.out.println("sql = " + query.toSQL());
|
System.out.println("sql = " + query.toSQL());
|
||||||
|
|
||||||
@ -182,7 +182,7 @@ public class AccountSqlTester {
|
|||||||
.from(ACCOUNT);
|
.from(ACCOUNT);
|
||||||
|
|
||||||
Assert.assertEquals("SELECT * FROM `tb_account`"
|
Assert.assertEquals("SELECT * FROM `tb_account`"
|
||||||
,query.toSQL());
|
, query.toSQL());
|
||||||
|
|
||||||
System.out.println(query.toSQL());
|
System.out.println(query.toSQL());
|
||||||
}
|
}
|
||||||
@ -200,7 +200,7 @@ public class AccountSqlTester {
|
|||||||
Assert.assertEquals("(SELECT `id` FROM `tb_account` ORDER BY `id` DESC) " +
|
Assert.assertEquals("(SELECT `id` FROM `tb_account` ORDER BY `id` DESC) " +
|
||||||
"UNION (SELECT `id` FROM `tb_article`) " +
|
"UNION (SELECT `id` FROM `tb_article`) " +
|
||||||
"UNION ALL (SELECT `id` FROM `tb_article`)"
|
"UNION ALL (SELECT `id` FROM `tb_article`)"
|
||||||
,query.toSQL());
|
, query.toSQL());
|
||||||
|
|
||||||
System.out.println(query.toSQL());
|
System.out.println(query.toSQL());
|
||||||
}
|
}
|
||||||
@ -216,7 +216,7 @@ public class AccountSqlTester {
|
|||||||
|
|
||||||
Assert.assertEquals("SELECT * FROM `tb_account` " +
|
Assert.assertEquals("SELECT * FROM `tb_account` " +
|
||||||
"WHERE `id` >= 100 AND `user_name` LIKE '%michael%'"
|
"WHERE `id` >= 100 AND `user_name` LIKE '%michael%'"
|
||||||
,query.toSQL());
|
, query.toSQL());
|
||||||
|
|
||||||
System.out.println(query.toSQL());
|
System.out.println(query.toSQL());
|
||||||
}
|
}
|
||||||
@ -231,7 +231,7 @@ public class AccountSqlTester {
|
|||||||
|
|
||||||
Assert.assertEquals("SELECT A.*, b.x FROM `tb_account` " +
|
Assert.assertEquals("SELECT A.*, b.x FROM `tb_account` " +
|
||||||
"WHERE `id` >= 100 AND aaa IN ('michael', 'aaa')"
|
"WHERE `id` >= 100 AND aaa IN ('michael', 'aaa')"
|
||||||
,query.toSQL());
|
, query.toSQL());
|
||||||
|
|
||||||
System.out.println(query.toSQL());
|
System.out.println(query.toSQL());
|
||||||
}
|
}
|
||||||
@ -249,13 +249,11 @@ public class AccountSqlTester {
|
|||||||
.or(ACCOUNT.SEX.eq(1).and(ACCOUNT.BIRTHDAY.eq(2)));
|
.or(ACCOUNT.SEX.eq(1).and(ACCOUNT.BIRTHDAY.eq(2)));
|
||||||
|
|
||||||
String sql = "SELECT * FROM `tb_account` WHERE `id` >= 100 OR (`birthday` = 1) OR (`sex` = 1 AND `birthday` = 2)";
|
String sql = "SELECT * FROM `tb_account` WHERE `id` >= 100 OR (`birthday` = 1) OR (`sex` = 1 AND `birthday` = 2)";
|
||||||
Assert.assertEquals(sql,query.toSQL());
|
Assert.assertEquals(sql, query.toSQL());
|
||||||
System.out.println(query.toSQL());
|
System.out.println(query.toSQL());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testWhereCond1Sql() {
|
public void testWhereCond1Sql() {
|
||||||
boolean flag = false;
|
boolean flag = false;
|
||||||
@ -266,7 +264,7 @@ public class AccountSqlTester {
|
|||||||
.and(ACCOUNT.USER_NAME.like("michael"));
|
.and(ACCOUNT.USER_NAME.like("michael"));
|
||||||
|
|
||||||
Assert.assertEquals("SELECT * FROM `tb_account` WHERE `user_name` LIKE '%michael%'"
|
Assert.assertEquals("SELECT * FROM `tb_account` WHERE `user_name` LIKE '%michael%'"
|
||||||
,query.toSQL());
|
, query.toSQL());
|
||||||
|
|
||||||
System.out.println(query.toSQL());
|
System.out.println(query.toSQL());
|
||||||
}
|
}
|
||||||
@ -281,7 +279,7 @@ public class AccountSqlTester {
|
|||||||
.and(ACCOUNT.USER_NAME.notLike("michael"));
|
.and(ACCOUNT.USER_NAME.notLike("michael"));
|
||||||
|
|
||||||
Assert.assertEquals("SELECT * FROM `tb_account` WHERE `id` >= 100 AND `user_name` NOT LIKE '%michael%'"
|
Assert.assertEquals("SELECT * FROM `tb_account` WHERE `id` >= 100 AND `user_name` NOT LIKE '%michael%'"
|
||||||
,query.toSQL());
|
, query.toSQL());
|
||||||
|
|
||||||
System.out.println(query.toSQL());
|
System.out.println(query.toSQL());
|
||||||
}
|
}
|
||||||
@ -297,7 +295,7 @@ public class AccountSqlTester {
|
|||||||
.and(ACCOUNT.USER_NAME.like("michael"));
|
.and(ACCOUNT.USER_NAME.like("michael"));
|
||||||
|
|
||||||
Assert.assertEquals("SELECT * FROM `tb_account` WHERE `user_name` LIKE '%michael%'"
|
Assert.assertEquals("SELECT * FROM `tb_account` WHERE `user_name` LIKE '%michael%'"
|
||||||
,query.toSQL());
|
, query.toSQL());
|
||||||
|
|
||||||
System.out.println(query.toSQL());
|
System.out.println(query.toSQL());
|
||||||
}
|
}
|
||||||
@ -318,11 +316,20 @@ public class AccountSqlTester {
|
|||||||
Assert.assertEquals("SELECT * FROM `tb_account` " +
|
Assert.assertEquals("SELECT * FROM `tb_account` " +
|
||||||
"WHERE `id` >= 100 " +
|
"WHERE `id` >= 100 " +
|
||||||
"AND EXISTS (SELECT 1 FROM `tb_article` AS `a` WHERE `id` >= 100)"
|
"AND EXISTS (SELECT 1 FROM `tb_article` AS `a` WHERE `id` >= 100)"
|
||||||
,query.toSQL());
|
, query.toSQL());
|
||||||
|
|
||||||
System.out.println(query.toSQL());
|
System.out.println(query.toSQL());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSelectCountOne() {
|
||||||
|
QueryWrapper query = selectCountOne()
|
||||||
|
.from(ARTICLE);
|
||||||
|
Assert.assertEquals("SELECT COUNT(1) AS `temp_count_one` FROM `tb_article`"
|
||||||
|
, query.toSQL());
|
||||||
|
|
||||||
|
System.out.println(query.toSQL());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testWhereAndOrSql() {
|
public void testWhereAndOrSql() {
|
||||||
@ -337,7 +344,7 @@ public class AccountSqlTester {
|
|||||||
"WHERE `id` >= 100 " +
|
"WHERE `id` >= 100 " +
|
||||||
"AND (`sex` = 1 OR `sex` = 2) " +
|
"AND (`sex` = 1 OR `sex` = 2) " +
|
||||||
"OR (`age` IN (18, 19, 20) OR `user_name` LIKE '%michael%')"
|
"OR (`age` IN (18, 19, 20) OR `user_name` LIKE '%michael%')"
|
||||||
,query.toSQL());
|
, query.toSQL());
|
||||||
|
|
||||||
System.out.println(query.toSQL());
|
System.out.println(query.toSQL());
|
||||||
}
|
}
|
||||||
@ -354,7 +361,7 @@ public class AccountSqlTester {
|
|||||||
|
|
||||||
Assert.assertEquals("SELECT * FROM `tb_account`" +
|
Assert.assertEquals("SELECT * FROM `tb_account`" +
|
||||||
" WHERE `id` >= (SELECT `account_id` FROM `tb_article` WHERE `id` >= 100)"
|
" WHERE `id` >= (SELECT `account_id` FROM `tb_article` WHERE `id` >= 100)"
|
||||||
,query.toSQL());
|
, query.toSQL());
|
||||||
|
|
||||||
System.out.println(query.toSQL());
|
System.out.println(query.toSQL());
|
||||||
}
|
}
|
||||||
@ -367,7 +374,7 @@ public class AccountSqlTester {
|
|||||||
.groupBy(ACCOUNT.USER_NAME);
|
.groupBy(ACCOUNT.USER_NAME);
|
||||||
|
|
||||||
Assert.assertEquals("SELECT * FROM `tb_account` GROUP BY `user_name`"
|
Assert.assertEquals("SELECT * FROM `tb_account` GROUP BY `user_name`"
|
||||||
,query.toSQL());
|
, query.toSQL());
|
||||||
|
|
||||||
System.out.println(query.toSQL());
|
System.out.println(query.toSQL());
|
||||||
}
|
}
|
||||||
@ -383,7 +390,7 @@ public class AccountSqlTester {
|
|||||||
|
|
||||||
Assert.assertEquals("SELECT * FROM `tb_account` AS `a`, `flex`.`tb_a01` AS `b` " +
|
Assert.assertEquals("SELECT * FROM `tb_account` AS `a`, `flex`.`tb_a01` AS `b` " +
|
||||||
"GROUP BY YEAR(`a`.`birthday`)"
|
"GROUP BY YEAR(`a`.`birthday`)"
|
||||||
,query.toSQL());
|
, query.toSQL());
|
||||||
|
|
||||||
System.out.println(query.toSQL());
|
System.out.println(query.toSQL());
|
||||||
}
|
}
|
||||||
@ -391,14 +398,14 @@ public class AccountSqlTester {
|
|||||||
//https://gitee.com/mybatis-flex/mybatis-flex/issues/I7EAY9
|
//https://gitee.com/mybatis-flex/mybatis-flex/issues/I7EAY9
|
||||||
@Test
|
@Test
|
||||||
public void testGroup184() {
|
public void testGroup184() {
|
||||||
QueryWrapper query = QueryWrapper .create()
|
QueryWrapper query = QueryWrapper.create()
|
||||||
.select(left(ACCOUNT.AGE, 6).as("regionCode"))
|
.select(left(ACCOUNT.AGE, 6).as("regionCode"))
|
||||||
.from(ACCOUNT)
|
.from(ACCOUNT)
|
||||||
.groupBy("regionCode");
|
.groupBy("regionCode");
|
||||||
|
|
||||||
Assert.assertEquals("SELECT LEFT(`age`, 6) AS `regionCode` FROM `tb_account` " +
|
Assert.assertEquals("SELECT LEFT(`age`, 6) AS `regionCode` FROM `tb_account` " +
|
||||||
"GROUP BY regionCode"
|
"GROUP BY regionCode"
|
||||||
,query.toSQL());
|
, query.toSQL());
|
||||||
|
|
||||||
System.out.println(query.toSQL());
|
System.out.println(query.toSQL());
|
||||||
}
|
}
|
||||||
@ -414,7 +421,7 @@ public class AccountSqlTester {
|
|||||||
Assert.assertEquals("SELECT * FROM `tb_account` " +
|
Assert.assertEquals("SELECT * FROM `tb_account` " +
|
||||||
"GROUP BY `user_name` " +
|
"GROUP BY `user_name` " +
|
||||||
"HAVING `age` BETWEEN 18 AND 25 "
|
"HAVING `age` BETWEEN 18 AND 25 "
|
||||||
,query.toSQL());
|
, query.toSQL());
|
||||||
|
|
||||||
System.out.println(query.toSQL());
|
System.out.println(query.toSQL());
|
||||||
}
|
}
|
||||||
@ -431,7 +438,7 @@ public class AccountSqlTester {
|
|||||||
"LEFT JOIN `tb_article` " +
|
"LEFT JOIN `tb_article` " +
|
||||||
"ON `tb_account`.`id` = `tb_article`.`account_id` " +
|
"ON `tb_account`.`id` = `tb_article`.`account_id` " +
|
||||||
"WHERE `tb_account`.`age` >= 10"
|
"WHERE `tb_account`.`age` >= 10"
|
||||||
,query.toSQL());
|
, query.toSQL());
|
||||||
|
|
||||||
System.out.println(query.toSQL());
|
System.out.println(query.toSQL());
|
||||||
}
|
}
|
||||||
@ -450,7 +457,7 @@ public class AccountSqlTester {
|
|||||||
"LEFT JOIN `tb_article` " +
|
"LEFT JOIN `tb_article` " +
|
||||||
"ON `tb_account`.`id` = `tb_article`.`account_id` AND `tb_account`.`age` = 18 " +
|
"ON `tb_account`.`id` = `tb_article`.`account_id` AND `tb_account`.`age` = 18 " +
|
||||||
"WHERE `tb_account`.`age` >= 10"
|
"WHERE `tb_account`.`age` >= 10"
|
||||||
,query.toSQL());
|
, query.toSQL());
|
||||||
|
|
||||||
System.out.println(query.toSQL());
|
System.out.println(query.toSQL());
|
||||||
}
|
}
|
||||||
@ -471,7 +478,7 @@ public class AccountSqlTester {
|
|||||||
"LEFT JOIN (SELECT * FROM `tb_article` WHERE `id` >= 100) AS `a` " +
|
"LEFT JOIN (SELECT * FROM `tb_article` WHERE `id` >= 100) AS `a` " +
|
||||||
"ON `tb_account`.`id` = a.id " +
|
"ON `tb_account`.`id` = a.id " +
|
||||||
"WHERE `tb_account`.`age` >= 10"
|
"WHERE `tb_account`.`age` >= 10"
|
||||||
,query.toSQL());
|
, query.toSQL());
|
||||||
|
|
||||||
System.out.println(query.toSQL());
|
System.out.println(query.toSQL());
|
||||||
}
|
}
|
||||||
@ -496,7 +503,7 @@ public class AccountSqlTester {
|
|||||||
"LEFT JOIN `base_admin_user_info` AS `burmc` " +
|
"LEFT JOIN `base_admin_user_info` AS `burmc` " +
|
||||||
"ON burmc.user_id = burm.created_by " +
|
"ON burmc.user_id = burm.created_by " +
|
||||||
"WHERE bui.is_valid = 3 "
|
"WHERE bui.is_valid = 3 "
|
||||||
,query.toSQL());
|
, query.toSQL());
|
||||||
|
|
||||||
System.out.println(query.toSQL());
|
System.out.println(query.toSQL());
|
||||||
}
|
}
|
||||||
@ -540,7 +547,7 @@ public class AccountSqlTester {
|
|||||||
|
|
||||||
Assert.assertEquals("SELECT * FROM `tb_account` " +
|
Assert.assertEquals("SELECT * FROM `tb_account` " +
|
||||||
"ORDER BY `age` ASC, `user_name` DESC NULLS LAST"
|
"ORDER BY `age` ASC, `user_name` DESC NULLS LAST"
|
||||||
,query.toSQL());
|
, query.toSQL());
|
||||||
|
|
||||||
System.out.println(query.toSQL());
|
System.out.println(query.toSQL());
|
||||||
}
|
}
|
||||||
@ -552,7 +559,7 @@ public class AccountSqlTester {
|
|||||||
String sql = dialect.forDeleteEntityById(tableInfo);
|
String sql = dialect.forDeleteEntityById(tableInfo);
|
||||||
|
|
||||||
Assert.assertEquals("UPDATE `tb_account` SET `is_delete` = 1 WHERE `id` = ? AND `is_delete` = 0"
|
Assert.assertEquals("UPDATE `tb_account` SET `is_delete` = 1 WHERE `id` = ? AND `is_delete` = 0"
|
||||||
,sql);
|
, sql);
|
||||||
|
|
||||||
System.out.println(sql);
|
System.out.println(sql);
|
||||||
}
|
}
|
||||||
@ -564,14 +571,14 @@ public class AccountSqlTester {
|
|||||||
@Test
|
@Test
|
||||||
public void testDeleteWithJoin() {
|
public void testDeleteWithJoin() {
|
||||||
QueryWrapper qw = QueryWrapper.create()
|
QueryWrapper qw = QueryWrapper.create()
|
||||||
.from(ACCOUNT).leftJoin(ARTICLE).on(ACCOUNT.ID.eq(ARTICLE.ACCOUNT_ID))
|
.from(ACCOUNT).leftJoin(ARTICLE).on(ACCOUNT.ID.eq(ARTICLE.ACCOUNT_ID))
|
||||||
.where(ACCOUNT.USER_NAME.eq("x"));
|
.where(ACCOUNT.USER_NAME.eq("x"));
|
||||||
IDialect dialect = new CommonsDialectImpl();
|
IDialect dialect = new CommonsDialectImpl();
|
||||||
String sql = dialect.forDeleteByQuery(qw);
|
String sql = dialect.forDeleteByQuery(qw);
|
||||||
Assert.assertEquals("DELETE `tb_account` FROM `tb_account` " +
|
Assert.assertEquals("DELETE `tb_account` FROM `tb_account` " +
|
||||||
"LEFT JOIN `tb_article` ON `tb_account`.`id` = `tb_article`.`account_id` " +
|
"LEFT JOIN `tb_article` ON `tb_account`.`id` = `tb_article`.`account_id` " +
|
||||||
"WHERE `tb_account`.`user_name` = ?"
|
"WHERE `tb_account`.`user_name` = ?"
|
||||||
,sql);
|
, sql);
|
||||||
System.out.println(sql);
|
System.out.println(sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -588,7 +595,7 @@ public class AccountSqlTester {
|
|||||||
String sql = dialect.forSelectByQuery(queryWrapper);
|
String sql = dialect.forSelectByQuery(queryWrapper);
|
||||||
|
|
||||||
Assert.assertEquals("SELECT * FROM `tb_account` WHERE `user_name` LIKE ? FOR UPDATE"
|
Assert.assertEquals("SELECT * FROM `tb_account` WHERE `user_name` LIKE ? FOR UPDATE"
|
||||||
,sql);
|
, sql);
|
||||||
|
|
||||||
System.out.println(sql);
|
System.out.println(sql);
|
||||||
}
|
}
|
||||||
@ -611,7 +618,7 @@ public class AccountSqlTester {
|
|||||||
"FROM `tb_account` " +
|
"FROM `tb_account` " +
|
||||||
"WHERE `user_name` LIKE ? " +
|
"WHERE `user_name` LIKE ? " +
|
||||||
"AND CONVERT(NVARCHAR(30), GETDATE(), 126) IN (SELECT `id` FROM `tb_account` WHERE `id` >= ?)"
|
"AND CONVERT(NVARCHAR(30), GETDATE(), 126) IN (SELECT `id` FROM `tb_account` WHERE `id` >= ?)"
|
||||||
,sql);
|
, sql);
|
||||||
|
|
||||||
System.out.println(sql);
|
System.out.println(sql);
|
||||||
}
|
}
|
||||||
@ -791,7 +798,7 @@ public class AccountSqlTester {
|
|||||||
"AND `sex` = 0 " +
|
"AND `sex` = 0 " +
|
||||||
"AND `age` = 18 " +
|
"AND `age` = 18 " +
|
||||||
"AND `is_normal` = false"
|
"AND `is_normal` = false"
|
||||||
,qw.toSQL());
|
, qw.toSQL());
|
||||||
|
|
||||||
System.out.println(qw.toSQL());
|
System.out.println(qw.toSQL());
|
||||||
}
|
}
|
||||||
@ -814,7 +821,7 @@ public class AccountSqlTester {
|
|||||||
"ND `sex` = 0 " +
|
"ND `sex` = 0 " +
|
||||||
"AND `age` >= 18 " +
|
"AND `age` >= 18 " +
|
||||||
"AND `is_normal` = false"
|
"AND `is_normal` = false"
|
||||||
,qw.toSQL());
|
, qw.toSQL());
|
||||||
System.out.println(qw.toSQL());
|
System.out.println(qw.toSQL());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user