Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MaxKey单点登录官方(MaxKeyTop)
Mybatis Jpa Extra
提交
7281a5b7
M
Mybatis Jpa Extra
项目概览
MaxKey单点登录官方(MaxKeyTop)
/
Mybatis Jpa Extra
8 个月 前同步成功
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
Mybatis Jpa Extra
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
7281a5b7
编写于
4月 21, 2021
作者:
M
MaxKey
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Highgo
上级
fe7bc164
变更
28
隐藏空白更改
内联
并排
Showing
28 changed file
with
389 addition
and
250 deletion
+389
-250
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/AllStatementHandlerInterceptor.java
...rg/apache/mybatis/jpa/AllStatementHandlerInterceptor.java
+11
-7
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/StatementHandlerInterceptor.java
...a/org/apache/mybatis/jpa/StatementHandlerInterceptor.java
+8
-3
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/DB2Dialect.java
.../main/java/org/apache/mybatis/jpa/dialect/DB2Dialect.java
+3
-3
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/DerbyDialect.java
...ain/java/org/apache/mybatis/jpa/dialect/DerbyDialect.java
+3
-3
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/Dialect.java
...src/main/java/org/apache/mybatis/jpa/dialect/Dialect.java
+3
-1
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/HighgoDialectDialect.java
.../org/apache/mybatis/jpa/dialect/HighgoDialectDialect.java
+69
-0
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/MySQLDialect.java
...ain/java/org/apache/mybatis/jpa/dialect/MySQLDialect.java
+6
-6
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/OracleDialect.java
...in/java/org/apache/mybatis/jpa/dialect/OracleDialect.java
+3
-3
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/PostgreSQLDialect.java
...ava/org/apache/mybatis/jpa/dialect/PostgreSQLDialect.java
+6
-6
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/SQLServerDialect.java
...java/org/apache/mybatis/jpa/dialect/SQLServerDialect.java
+7
-7
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/FieldColumnMapper.java
...org/apache/mybatis/jpa/persistence/FieldColumnMapper.java
+13
-2
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/JpaPageResults.java
...va/org/apache/mybatis/jpa/persistence/JpaPageResults.java
+15
-6
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/JpaPagination.java
...ava/org/apache/mybatis/jpa/persistence/JpaPagination.java
+25
-8
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/MapperMetadata.java
...va/org/apache/mybatis/jpa/persistence/MapperMetadata.java
+32
-4
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/provider/SqlProviderDelete.java
...e/mybatis/jpa/persistence/provider/SqlProviderDelete.java
+1
-1
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/provider/SqlProviderInsert.java
...e/mybatis/jpa/persistence/provider/SqlProviderInsert.java
+1
-1
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/provider/SqlProviderQuery.java
...he/mybatis/jpa/persistence/provider/SqlProviderQuery.java
+4
-4
mybatis-jpa-extra-core/src/test/java/org/apache/mybatis/jpa/test/MyBatisTestRunner.java
...t/java/org/apache/mybatis/jpa/test/MyBatisTestRunner.java
+2
-2
mybatis-jpa-extra-core/src/test/resources/config/applicationConfig.properties
...re/src/test/resources/config/applicationConfig.properties
+11
-5
mybatis-jpa-extra-core/src/test/resources/org/apache/mybatis/jpa/test/dao/persistence/xml/postgresql/StudentsMapper.xml
...pa/test/dao/persistence/xml/postgresql/StudentsMapper.xml
+74
-0
mybatis-jpa-extra-core/src/test/resources/spring/applicationContext-persist.xml
.../src/test/resources/spring/applicationContext-persist.xml
+2
-2
mybatis-jpa-extra-core/src/test/resources/students-postgresql.sql
...jpa-extra-core/src/test/resources/students-postgresql.sql
+55
-0
mybatis-jpa-extra-spring-boot-starter/src/main/java/org/apache/mybatis/jpa/starter/MybatisAutoConfiguration.java
.../apache/mybatis/jpa/starter/MybatisAutoConfiguration.java
+10
-2
mybatis-jpa-extra-spring-boot-starter/src/main/java/org/apache/mybatis/jpa/starter/MybatisProperties.java
...ava/org/apache/mybatis/jpa/starter/MybatisProperties.java
+11
-8
mybatis-jpa-extra-spring-boot-starter/src/test/resources/application.properties
...ng-boot-starter/src/test/resources/application.properties
+2
-2
mybatis-jpa-extra-test/src/test/resources/students-mysql.sql
mybatis-jpa-extra-test/src/test/resources/students-mysql.sql
+0
-83
mybatis-jpa-extra-test/src/test/resources/students-oracle.sql
...tis-jpa-extra-test/src/test/resources/students-oracle.sql
+0
-81
pom.xml
pom.xml
+12
-0
未找到文件。
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/AllStatementHandlerInterceptor.java
浏览文件 @
7281a5b7
...
...
@@ -34,9 +34,9 @@ public class AllStatementHandlerInterceptor extends
public
Object
intercept
(
Invocation
invocation
)
throws
Throwable
{
Method
m
=
invocation
.
getMethod
();
if
(
"prepare"
.
equals
(
m
.
getName
()))
{
//
һ���������
Statement
if
(
"prepare"
.
equals
(
m
.
getName
()))
{
//
prepare
Statement
return
prepare
(
invocation
);
}
else
if
(
"parameterize"
.
equals
(
m
.
getName
()))
{
//
һ���������ò���
}
else
if
(
"parameterize"
.
equals
(
m
.
getName
()))
{
//
parameterize
return
parameterize
(
invocation
);
}
else
if
(
"handleResultSets"
.
equals
(
m
.
getName
()))
{
// handleResultSets
return
handleResultSets
(
invocation
);
...
...
@@ -54,14 +54,15 @@ public class AllStatementHandlerInterceptor extends
private
Object
prepare
(
Invocation
invocation
)
throws
Throwable
{
StatementHandler
statement
=
getStatementHandler
(
invocation
);
if
(
statement
instanceof
SimpleStatementHandler
||
statement
instanceof
PreparedStatementHandler
)
{
if
(
statement
instanceof
SimpleStatementHandler
||
statement
instanceof
PreparedStatementHandler
)
{
MetaObject
metaObject
=
SystemMetaObject
.
forObject
(
statement
);
Object
parameterObject
=
metaObject
.
getValue
(
"parameterHandler.parameterObject"
);
BoundSql
boundSql
=
statement
.
getBoundSql
();
String
sql
=
boundSql
.
getSql
();
_logger
.
debug
(
"prepare boundSql : "
+
sql
);
_logger
.
debug
(
"startsWith
SELECT : "
+
sql
.
toUpperCase
().
trim
().
startsWith
(
"SELECT
"
));
if
(
sql
.
to
UpperCase
().
trim
().
startsWith
(
"SELECT
"
)
&&
(
parameterObject
instanceof
JpaBaseDomain
))
{
_logger
.
debug
(
"startsWith
select : "
+
sql
.
toLowerCase
().
trim
().
startsWith
(
"select
"
));
if
(
sql
.
to
LowerCase
().
trim
().
startsWith
(
"select
"
)
&&
(
parameterObject
instanceof
JpaBaseDomain
))
{
if
(
statement
instanceof
SimpleStatementHandler
){
sql
=
dialect
.
getLimitString
(
sql
,
(
JpaBaseDomain
)
parameterObject
);
}
else
if
(
statement
instanceof
PreparedStatementHandler
){
...
...
@@ -84,9 +85,12 @@ public class AllStatementHandlerInterceptor extends
Object
parameterObject
=
metaObject
.
getValue
(
"parameterHandler.parameterObject"
);
BoundSql
boundSql
=
statementHandler
.
getBoundSql
();
if
(
boundSql
.
getSql
().
toUpperCase
().
trim
().
startsWith
(
"SELECT"
)
&&
(
parameterObject
instanceof
JpaBaseDomain
))
{
if
(
boundSql
.
getSql
().
toLowerCase
().
trim
().
startsWith
(
"select"
)
&&
(
parameterObject
instanceof
JpaBaseDomain
)
)
{
List
<
ParameterMapping
>
pms
=
boundSql
.
getParameterMappings
();
System
.
out
.
println
(
pms
);
_logger
.
debug
(
"ParameterMapping "
+
pms
);
int
parameterSize
=
pms
.
size
();
dialect
.
setLimitParamters
(
ps
,
parameterSize
,(
JpaBaseDomain
)
parameterObject
);
}
...
...
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/StatementHandlerInterceptor.java
浏览文件 @
7281a5b7
...
...
@@ -42,21 +42,26 @@ public class StatementHandlerInterceptor extends AbstractStatementHandlerInterce
private
Object
prepare
(
Invocation
invocation
)
throws
Throwable
{
StatementHandler
statement
=
getStatementHandler
(
invocation
);
if
(
statement
instanceof
SimpleStatementHandler
||
statement
instanceof
PreparedStatementHandler
)
{
if
(
statement
instanceof
SimpleStatementHandler
||
statement
instanceof
PreparedStatementHandler
)
{
MetaObject
metaObject
=
SystemMetaObject
.
forObject
(
statement
);
Object
parameterObject
=
metaObject
.
getValue
(
"parameterHandler.parameterObject"
);
BoundSql
boundSql
=
statement
.
getBoundSql
();
String
sql
=
boundSql
.
getSql
();
_logger
.
trace
(
"parameter object ==> "
+
parameterObject
);
if
((
parameterObject
instanceof
JpaPagination
)
&&
(
sql
.
toUpperCase
().
trim
().
startsWith
(
"SELECT"
))
)
{
&&
(
sql
.
toLowerCase
().
trim
().
startsWith
(
"select"
))
)
{
_logger
.
trace
(
"dialect "
+
dialect
);
JpaPagination
pagination
=(
JpaPagination
)
parameterObject
;
if
(
pagination
.
isPageable
()){
_logger
.
trace
(
"prepare boundSql ==> "
+
removeBreakingWhitespace
(
sql
));
if
(
statement
instanceof
SimpleStatementHandler
){
sql
=
dialect
.
getLimitString
(
sql
,
pagination
);
}
else
if
(
statement
instanceof
PreparedStatementHandler
){
JpaBaseService
.
pageResultsBoundSqlCache
.
put
(
pagination
.
getPageResultSelectUUID
(),
new
PageResultsSqlCache
(
sql
,
boundSql
));
JpaBaseService
.
pageResultsBoundSqlCache
.
put
(
pagination
.
getPageResultSelectUUID
(),
new
PageResultsSqlCache
(
sql
,
boundSql
)
);
sql
=
dialect
.
getLimitString
(
sql
,
pagination
);
}
_logger
.
trace
(
"prepare dialect boundSql : "
+
removeBreakingWhitespace
(
sql
));
...
...
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/DB2Dialect.java
浏览文件 @
7281a5b7
...
...
@@ -41,11 +41,11 @@ public class DB2Dialect extends Dialect {
public
String
getPreparedStatementLimitString
(
String
sql
,
JpaPagination
pagination
)
{
//LIMIT #{pageResults} OFFSET #{startRow}
if
(
pagination
.
getPageSize
()>
0
&&
pagination
.
getStartRow
()>
0
){
return
sql
+
"
LIMIT
? , ?"
;
return
sql
+
"
limit
? , ?"
;
}
else
if
(
pagination
.
getPageSize
()>
0
){
return
sql
+
"
LIMIT
? "
;
return
sql
+
"
limit
? "
;
}
else
{
return
sql
+
"
LIMIT
?"
;
return
sql
+
"
limit
?"
;
}
}
...
...
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/DerbyDialect.java
浏览文件 @
7281a5b7
...
...
@@ -41,11 +41,11 @@ public class DerbyDialect extends Dialect {
public
String
getPreparedStatementLimitString
(
String
sql
,
JpaPagination
pagination
)
{
//LIMIT #{pageResults} OFFSET #{startRow}
if
(
pagination
.
getPageSize
()>
0
&&
pagination
.
getStartRow
()>
0
){
return
sql
+
"
LIMIT
? , ?"
;
return
sql
+
"
limit
? , ?"
;
}
else
if
(
pagination
.
getPageSize
()>
0
){
return
sql
+
"
LIMIT
? "
;
return
sql
+
"
limit
? "
;
}
else
{
return
sql
+
"
LIMIT
?"
;
return
sql
+
"
limit
?"
;
}
}
...
...
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/Dialect.java
浏览文件 @
7281a5b7
...
...
@@ -21,7 +21,7 @@ public abstract class Dialect {
private
static
final
Logger
_logger
=
LoggerFactory
.
getLogger
(
Dialect
.
class
);
public
static
final
String
DEFAULT_BATCH_SIZE
=
"
15
"
;
public
static
final
String
DEFAULT_BATCH_SIZE
=
"
20
"
;
public
static
final
String
NO_BATCH
=
"0"
;
public
static
final
String
DEFAULT_DIALECT
=
"mysql"
;
...
...
@@ -35,8 +35,10 @@ public abstract class Dialect {
dialectMap
.
put
(
"mysql"
,
"org.apache.mybatis.jpa.dialect.MySQLDialect"
);
dialectMap
.
put
(
"oracle"
,
"org.apache.mybatis.jpa.dialect.OracleDialect"
);
dialectMap
.
put
(
"postgresql"
,
"org.apache.mybatis.jpa.dialect.PostgreSQLDialect"
);
dialectMap
.
put
(
"highgo"
,
"org.apache.mybatis.jpa.dialect.HighgoDialect"
);
dialectMap
.
put
(
"sqlserver"
,
"org.apache.mybatis.jpa.dialect.SQLServerDialect"
);
_logger
.
trace
(
"Dialect Mapper : \n"
+
dialectMap
);
}
...
...
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/HighgoDialectDialect.java
0 → 100644
浏览文件 @
7281a5b7
package
org.apache.mybatis.jpa.dialect
;
import
java.sql.PreparedStatement
;
import
java.sql.SQLException
;
import
org.apache.mybatis.jpa.persistence.JpaPagination
;
public
class
HighgoDialectDialect
extends
Dialect
{
public
HighgoDialectDialect
()
{
super
();
}
@Override
public
boolean
supportsLimit
()
{
return
true
;
}
@Override
public
String
getLimitString
(
String
sql
,
JpaPagination
pagination
)
{
//LIMIT #{pageResults} OFFSET #{startRow}
if
(
pagination
.
getPageSize
()>
0
&&
pagination
.
getStartRow
()>
0
){
return
sql
+
" limit "
+
pagination
.
getPageSize
()+
" offset "
+
pagination
.
getStartRow
()
;
}
else
if
(
pagination
.
getPageSize
()>
0
){
return
sql
+
" limit "
+
pagination
.
getPageSize
();
}
else
{
return
sql
+
" limit 1000"
;
}
}
@Override
public
String
getPreparedStatementLimitString
(
String
sql
,
JpaPagination
pagination
)
{
//LIMIT #{pageResults} OFFSET #{startRow}
if
(
pagination
.
getPageSize
()>
0
&&
pagination
.
getStartRow
()>
0
){
return
sql
+
" limit ? , ?"
;
}
else
if
(
pagination
.
getPageSize
()>
0
){
return
sql
+
" limit ? "
;
}
else
{
return
sql
+
" limit ?"
;
}
}
public
void
setLimitParamters
(
PreparedStatement
preparedStatement
,
int
parameterSize
,
JpaPagination
pagination
)
{
try
{
if
(
pagination
.
getPageSize
()>
0
&&
pagination
.
getStartRow
()>
0
){
preparedStatement
.
setInt
(++
parameterSize
,
pagination
.
getPageSize
());
preparedStatement
.
setInt
(++
parameterSize
,
pagination
.
getPageSize
());
}
else
if
(
pagination
.
getPageSize
()>
0
){
preparedStatement
.
setInt
(++
parameterSize
,
pagination
.
getPageSize
());
}
else
{
preparedStatement
.
setInt
(++
parameterSize
,
1000
);
}
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public
String
toString
()
{
return
"PostgreSQLDialect ["
+
HighgoDialectDialect
.
class
+
"]"
;
}
}
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/MySQLDialect.java
浏览文件 @
7281a5b7
...
...
@@ -29,11 +29,11 @@ public class MySQLDialect extends Dialect {
//LIMIT #{pageResults} OFFSET #{startRow}
pagination
.
calculate
();
if
(
pagination
.
getPageSize
()>
0
&&
pagination
.
getStartRow
()>
0
){
return
sql
+
"
LIMIT
"
+
pagination
.
getStartRow
()+
" , "
+
pagination
.
getPageSize
();
return
sql
+
"
limit
"
+
pagination
.
getStartRow
()+
" , "
+
pagination
.
getPageSize
();
}
else
if
(
pagination
.
getPageSize
()>
0
){
return
sql
+
"
LIMIT
"
+
pagination
.
getPageSize
();
return
sql
+
"
limit
"
+
pagination
.
getPageSize
();
}
else
{
return
sql
+
"
LIMIT
"
+
pagination
.
getPageSize
();
return
sql
+
"
limit
"
+
pagination
.
getPageSize
();
}
}
...
...
@@ -41,11 +41,11 @@ public class MySQLDialect extends Dialect {
public
String
getPreparedStatementLimitString
(
String
sql
,
JpaPagination
pagination
)
{
//LIMIT #{pageResults} OFFSET #{startRow}
if
(
pagination
.
getPageSize
()>
0
&&
pagination
.
getStartRow
()>
0
){
return
sql
+
"
LIMIT
? , ?"
;
return
sql
+
"
limit
? , ?"
;
}
else
if
(
pagination
.
getPageSize
()>
0
){
return
sql
+
"
LIMIT
? "
;
return
sql
+
"
limit
? "
;
}
else
{
return
sql
+
"
LIMIT
?"
;
return
sql
+
"
limit
?"
;
}
}
...
...
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/OracleDialect.java
浏览文件 @
7281a5b7
...
...
@@ -41,11 +41,11 @@ public class OracleDialect extends Dialect {
public
String
getPreparedStatementLimitString
(
String
sql
,
JpaPagination
pagination
)
{
//LIMIT #{pageResults} OFFSET #{startRow}
if
(
pagination
.
getPageSize
()>
0
&&
pagination
.
getStartRow
()>
0
){
return
sql
+
"
LIMIT
? , ?"
;
return
sql
+
"
limit
? , ?"
;
}
else
if
(
pagination
.
getPageSize
()>
0
){
return
sql
+
"
LIMIT
? "
;
return
sql
+
"
limit
? "
;
}
else
{
return
sql
+
"
LIMIT
?"
;
return
sql
+
"
limit
?"
;
}
}
...
...
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/PostgreSQLDialect.java
浏览文件 @
7281a5b7
...
...
@@ -22,11 +22,11 @@ public class PostgreSQLDialect extends Dialect {
public
String
getLimitString
(
String
sql
,
JpaPagination
pagination
)
{
//LIMIT #{pageResults} OFFSET #{startRow}
if
(
pagination
.
getPageSize
()>
0
&&
pagination
.
getStartRow
()>
0
){
return
sql
+
"
LIMIT "
+
pagination
.
getPageSize
()+
" ,
"
+
pagination
.
getStartRow
()
;
return
sql
+
"
limit "
+
pagination
.
getPageSize
()+
" offset
"
+
pagination
.
getStartRow
()
;
}
else
if
(
pagination
.
getPageSize
()>
0
){
return
sql
+
"
LIMIT
"
+
pagination
.
getPageSize
();
return
sql
+
"
limit
"
+
pagination
.
getPageSize
();
}
else
{
return
sql
+
"
LIMIT
1000"
;
return
sql
+
"
limit
1000"
;
}
}
...
...
@@ -34,11 +34,11 @@ public class PostgreSQLDialect extends Dialect {
public
String
getPreparedStatementLimitString
(
String
sql
,
JpaPagination
pagination
)
{
//LIMIT #{pageResults} OFFSET #{startRow}
if
(
pagination
.
getPageSize
()>
0
&&
pagination
.
getStartRow
()>
0
){
return
sql
+
"
LIMIT ? ,
?"
;
return
sql
+
"
limit ? offset
?"
;
}
else
if
(
pagination
.
getPageSize
()>
0
){
return
sql
+
"
LIMIT
? "
;
return
sql
+
"
limit
? "
;
}
else
{
return
sql
+
"
LIMIT
?"
;
return
sql
+
"
limit
?"
;
}
}
...
...
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/SQLServerDialect.java
浏览文件 @
7281a5b7
...
...
@@ -25,11 +25,11 @@ public class SQLServerDialect extends Dialect {
StringBuilder
pagingSelectSql
=
new
StringBuilder
(
""
);
if
(
pagination
.
getPageSize
()>
0
){
pagingSelectSql
.
append
(
"
SELECT TOP "
+
pagination
.
getPageSize
()+
" * FROM
( "
);
pagingSelectSql
.
append
(
"
SELECT ROW_NUMBER() OVER() AS ROWNUMBER,MYBATIS_QUERY_TEMP_TABLE.* FROM
( "
);
pagingSelectSql
.
append
(
"
MYBATIS_QUERY_TEMP_TABLE ) MYBATIS_QUERY_TEMP_PAGE
"
);
pagingSelectSql
.
append
(
"
select top "
+
pagination
.
getPageSize
()+
" * from
( "
);
pagingSelectSql
.
append
(
"
select row_number() over() as rownumber,mybatis_query_temp_table.* from
( "
);
pagingSelectSql
.
append
(
"
mybatis_query_temp_table ) mybatis_query_temp_page
"
);
if
(
pagination
.
getStartRow
()>
0
){
pagingSelectSql
.
append
(
"
WHERE ROWNUMBER
> "
+
pagination
.
getStartRow
());
pagingSelectSql
.
append
(
"
where rownumber
> "
+
pagination
.
getStartRow
());
}
}
else
{
return
sql
;
...
...
@@ -41,11 +41,11 @@ public class SQLServerDialect extends Dialect {
public
String
getPreparedStatementLimitString
(
String
sql
,
JpaPagination
pagination
)
{
//LIMIT #{pageResults} OFFSET #{startRow}
if
(
pagination
.
getPageSize
()>
0
&&
pagination
.
getStartRow
()>
0
){
return
sql
+
"
LIMIT
? , ?"
;
return
sql
+
"
limit
? , ?"
;
}
else
if
(
pagination
.
getPageSize
()>
0
){
return
sql
+
"
LIMIT
? "
;
return
sql
+
"
limit
? "
;
}
else
{
return
sql
+
"
LIMIT
?"
;
return
sql
+
"
limit
?"
;
}
}
...
...
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/FieldColumnMapper.java
浏览文件 @
7281a5b7
...
...
@@ -69,8 +69,19 @@ public class FieldColumnMapper {
@Override
public
String
toString
()
{
return
"FieldColumnMapper [fieldName="
+
fieldName
+
", fieldType="
+
fieldType
+
", columnName="
+
columnName
+
", idColumn="
+
idColumn
+
", generatedValue="
+
generatedValue
+
"]"
;
StringBuilder
builder
=
new
StringBuilder
();
builder
.
append
(
"FieldColumnMapper [fieldName="
);
builder
.
append
(
fieldName
);
builder
.
append
(
", fieldType="
);
builder
.
append
(
fieldType
);
builder
.
append
(
", columnName="
);
builder
.
append
(
columnName
);
builder
.
append
(
", idColumn="
);
builder
.
append
(
idColumn
);
builder
.
append
(
", generatedValue="
);
builder
.
append
(
generatedValue
);
builder
.
append
(
"]"
);
return
builder
.
toString
();
}
}
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/JpaPageResults.java
浏览文件 @
7281a5b7
...
...
@@ -183,14 +183,23 @@ public class JpaPageResults <T>{
public
void
setRows
(
List
<
T
>
rows
)
{
this
.
rows
=
rows
;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public
String
toString
()
{
return
"Grid [page="
+
page
+
", total="
+
total
+
", totalPage="
+
totalPage
+
", records="
+
records
+
", rows="
+
rows
+
"]"
;
StringBuilder
builder
=
new
StringBuilder
();
builder
.
append
(
"JpaPageResults [_logger="
);
builder
.
append
(
_logger
);
builder
.
append
(
", page="
);
builder
.
append
(
page
);
builder
.
append
(
", total="
);
builder
.
append
(
total
);
builder
.
append
(
", totalPage="
);
builder
.
append
(
totalPage
);
builder
.
append
(
", records="
);
builder
.
append
(
records
);
builder
.
append
(
", rows="
);
builder
.
append
(
rows
);
builder
.
append
(
"]"
);
return
builder
.
toString
();
}
...
...
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/JpaPagination.java
浏览文件 @
7281a5b7
...
...
@@ -202,16 +202,33 @@ public class JpaPagination {
return
pageResultSelectUUID
;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public
String
toString
()
{
return
"Pagination [rows="
+
rows
+
", pageResults="
+
pageSize
+
", page="
+
pageNumber
+
", startRow="
+
startRow
+
", endRow="
+
endRow
+
", sidx="
+
sidx
+
", sord="
+
sortOrder
+
", sortKey="
+
sortKey
+
", orderBy="
+
orderBy
+
", pageable="
+
pageable
+
"]"
;
StringBuilder
builder
=
new
StringBuilder
();
builder
.
append
(
"JpaPagination [rows="
);
builder
.
append
(
rows
);
builder
.
append
(
", pageSize="
);
builder
.
append
(
pageSize
);
builder
.
append
(
", pageNumber="
);
builder
.
append
(
pageNumber
);
builder
.
append
(
", startRow="
);
builder
.
append
(
startRow
);
builder
.
append
(
", endRow="
);
builder
.
append
(
endRow
);
builder
.
append
(
", sidx="
);
builder
.
append
(
sidx
);
builder
.
append
(
", sortOrder="
);
builder
.
append
(
sortOrder
);
builder
.
append
(
", sortKey="
);
builder
.
append
(
sortKey
);
builder
.
append
(
", orderBy="
);
builder
.
append
(
orderBy
);
builder
.
append
(
", pageable="
);
builder
.
append
(
pageable
);
builder
.
append
(
", pageResultSelectUUID="
);
builder
.
append
(
pageResultSelectUUID
);
builder
.
append
(
"]"
);
return
builder
.
toString
();
}
...
...
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/MapperMetadata.java
浏览文件 @
7281a5b7
...
...
@@ -39,15 +39,26 @@ public class MapperMetadata <T extends JpaBaseDomain>{
/**
* 表名和字段名
*/
public
static
boolean
TABLE_COLUMN_UPCASE
=
true
;
public
static
int
TABLE_COLUMN_CASE
=
CASE_TYPE
.
LOWERCASE
;
public
static
boolean
TABLE_COLUMN_ESCAPE
=
false
;
public
static
String
TABLE_COLUMN_ESCAPE_CHAR
=
"`"
;
public
static
class
CASE_TYPE
{
public
static
int
NORMAL
=
0
;
public
static
int
LOWERCASE
=
1
;
public
static
int
UPPERCASE
=
2
;
}
public
transient
static
ConcurrentMap
<
String
,
List
<
FieldColumnMapper
>>
fieldsMap
=
new
ConcurrentHashMap
<
String
,
List
<
FieldColumnMapper
>>();
public
transient
static
ConcurrentMap
<
String
,
String
>
sqlsMap
=
new
ConcurrentHashMap
<
String
,
String
>();
public
static
IdentifierGeneratorFactory
identifierGeneratorFactory
=
new
IdentifierGeneratorFactory
();
/**
* getTableName
* @param entityClass
* @return
*/
public
static
String
getTableName
(
Class
<?>
entityClass
)
{
String
tableName
=
null
;
String
schema
=
null
;
...
...
@@ -89,7 +100,9 @@ public class MapperMetadata <T extends JpaBaseDomain>{
}
}
tableName
=
TABLE_COLUMN_UPCASE
?
tableName
.
toUpperCase
()
:
tableName
;
tableName
=
tableColumnCaseConverter
(
tableName
);
tableName
=
TABLE_COLUMN_ESCAPE
?
TABLE_COLUMN_ESCAPE_CHAR
+
tableName
+
TABLE_COLUMN_ESCAPE_CHAR
:
tableName
;
_logger
.
trace
(
"Table Name "
+
tableName
);
return
tableName
;
...
...
@@ -107,6 +120,10 @@ public class MapperMetadata <T extends JpaBaseDomain>{
return
idFieldColumnMapper
;
}
/**
* buildColumnList
* @param entityClass
*/
public
static
void
buildColumnList
(
Class
<?>
entityClass
)
{
if
(
fieldsMap
.
containsKey
(
entityClass
.
getSimpleName
()))
{
//run one time
...
...
@@ -133,10 +150,11 @@ public class MapperMetadata <T extends JpaBaseDomain>{
if
(
columnAnnotation
.
name
()
!=
null
&&
!
columnAnnotation
.
name
().
equals
(
""
))
{
columnName
=
columnAnnotation
.
name
();
}
else
{
columnName
=
TABLE_COLUMN_UPCASE
?
field
.
getName
().
toUpperCase
()
:
field
.
getName
();
columnName
=
field
.
getName
();
}
columnName
=
tableColumnCaseConverter
(
columnName
);
columnName
=
TABLE_COLUMN_ESCAPE
?
TABLE_COLUMN_ESCAPE_CHAR
+
columnName
+
TABLE_COLUMN_ESCAPE_CHAR
:
columnName
;
...
...
@@ -161,4 +179,14 @@ public class MapperMetadata <T extends JpaBaseDomain>{
_logger
.
debug
(
"fieldsMap : "
+
fieldsMap
);
}
public
static
String
tableColumnCaseConverter
(
String
name
)
{
if
(
TABLE_COLUMN_CASE
==
CASE_TYPE
.
NORMAL
)
{}
else
if
(
TABLE_COLUMN_CASE
==
CASE_TYPE
.
LOWERCASE
)
{
name
=
name
.
toLowerCase
();
}
else
if
(
TABLE_COLUMN_CASE
==
CASE_TYPE
.
UPPERCASE
)
{
name
=
name
.
toUpperCase
();
}
return
name
;
}
}
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/provider/SqlProviderDelete.java
浏览文件 @
7281a5b7
...
...
@@ -50,7 +50,7 @@ public class SqlProviderDelete <T extends JpaBaseDomain>{
FieldColumnMapper
idFieldColumnMapper
=
MapperMetadata
.
getIdColumn
(
entityClass
.
getSimpleName
());
SQL
sql
=
new
SQL
();
sql
.
DELETE_FROM
(
MapperMetadata
.
getTableName
(
entityClass
));
sql
.
WHERE
(
idFieldColumnMapper
.
getColumnName
()+
"
IN
( "
+
keyValue
+
" )"
);
sql
.
WHERE
(
idFieldColumnMapper
.
getColumnName
()+
"
in
( "
+
keyValue
+
" )"
);
String
deleteSql
=
sql
.
toString
();
_logger
.
trace
(
"Delete SQL \n"
+
deleteSql
);
MapperMetadata
.
sqlsMap
.
put
(
MapperMetadata
.
getTableName
(
entityClass
)
+
MapperMetadata
.
SQL_TYPE
.
REMOVE_SQL
,
deleteSql
);
...
...
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/provider/SqlProviderInsert.java
浏览文件 @
7281a5b7
...
...
@@ -56,7 +56,7 @@ public class SqlProviderInsert <T extends JpaBaseDomain>{
sql
.
VALUES
(
fieldColumnMapper
.
getColumnName
(),
"#{"
+
fieldColumnMapper
.
getFieldName
()
+
"}"
);
}
}
else
if
(
generatedValue
.
strategy
()==
GenerationType
.
SEQUENCE
){
sql
.
VALUES
(
fieldColumnMapper
.
getColumnName
(),
generatedValue
.
generator
()+
".
NEXTVAL
"
);
sql
.
VALUES
(
fieldColumnMapper
.
getColumnName
(),
generatedValue
.
generator
()+
".
nextval
"
);
}
else
if
(
generatedValue
.
strategy
()==
GenerationType
.
IDENTITY
){
//skip
}
else
if
(
generatedValue
.
strategy
()==
GenerationType
.
TABLE
){
...
...
mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/provider/SqlProviderQuery.java
浏览文件 @
7281a5b7
...
...
@@ -107,11 +107,11 @@ public class SqlProviderQuery <T extends JpaBaseDomain>{
countSql
.
append
(
selectSql
);
}
if
(
countSql
.
toString
().
to
UpperCase
().
indexOf
(
"DISTINCT
"
)>
0
)
{
sql
.
append
(
"
SELECT COUNT(1) COUNTROWS_ FROM ("
).
append
(
countSql
).
append
(
" ) COUNT_TABLE
_"
);
if
(
countSql
.
toString
().
to
LowerCase
().
indexOf
(
"distinct
"
)>
0
)
{
sql
.
append
(
"
select count(1) countrows_ from ("
).
append
(
countSql
).
append
(
" ) count_table
_"
);
}
else
{
sql
.
append
(
"
SELECT COUNT(1) COUNTROWS
_ "
).
append
(
countSql
.
substring
(
countSql
.
toString
().
to
UpperCase
().
indexOf
(
"FROM
"
))
sql
.
append
(
"
select count(1) countrows
_ "
).
append
(
countSql
.
substring
(
countSql
.
toString
().
to
LowerCase
().
indexOf
(
"from
"
))
);
}
//删除缓存
...
...
mybatis-jpa-extra-core/src/test/java/org/apache/mybatis/jpa/test/MyBatisTestRunner.java
浏览文件 @
7281a5b7
...
...
@@ -38,7 +38,7 @@ public class MyBatisTestRunner {
Thread
.
sleep
(
1000
);
_logger
.
info
(
"insert id "
+
student
.
getId
());
service
.
remove
(
student
.
getId
());
//
service.remove(student.getId());
}
...
...
@@ -129,7 +129,7 @@ public class MyBatisTestRunner {
student
.
setStdGender
(
"M"
);
//student.setStdMajor(政治");
student
.
setPageSize
(
10
);
student
.
setPageNumber
(
2
);
student
.
setPageNumber
(
1
);
List
<
Students
>
allListStudents
=
service
.
queryPageResults
(
student
).
getRows
();
for
(
Students
s
:
allListStudents
)
{
...
...
mybatis-jpa-extra-core/src/test/resources/config/applicationConfig.properties
浏览文件 @
7281a5b7
...
...
@@ -2,7 +2,7 @@
# DataBase configuration
############################################################################
#db2,derby,mysql,oracle,postgresql,sqlserver
config.datasource.database
=
my
sql
config.datasource.database
=
postgre
sql
# JDBC Driver
# for MySql com.mysql.jdbc.Driver
# for oracle oracle.jdbc.driver.OracleDriver
...
...
@@ -21,9 +21,15 @@ config.datasource.database=mysql
# for SyBase jdbc:sybase:Tds:hostname:port/secdb
# for Derby jdbc:derby://localhost:1527/secdb
#
config.datasource.driverclass
=
com.mysql.jdbc.Driver
config.datasource.url
=
jdbc:mysql://localhost/test?autoReconnect=false&characterEncoding=UTF-8&serverTimezone=UTC
config.datasource.username
=
root
config.datasource.password
=
maxkey
config.datasource.driverclass
=
org.postgresql.Driver
config.datasource.url
=
jdbc:postgresql://localhost:5432/postgres
config.datasource.username
=
postgres
config.datasource.password
=
postgresql
#config.datasource.driverclass=com.mysql.jdbc.Driver
#config.datasource.url=jdbc:mysql://localhost/test?autoReconnect=false&characterEncoding=UTF-8&serverTimezone=UTC
#config.datasource.username=root
#config.datasource.password=maxkey
############################################################################
\ No newline at end of file
mybatis-jpa-extra-core/src/test/resources/org/apache/mybatis/jpa/test/dao/persistence/xml/postgresql/StudentsMapper.xml
0 → 100644
浏览文件 @
7281a5b7
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"org.apache.mybatis.jpa.test.dao.persistence.StudentsMapper"
>
<sql
id=
"sql_condition"
>
WHERE 1 = 1
<if
test=
"id != null"
>
AND id = '${id}'
</if>
<if
test=
"stdName != null and stdName != '' "
>
AND stdname like '%${stdName}%'
</if>
<if
test=
"stdGender != null and stdGender != '' "
>
AND stdgender = #{stdGender}
</if>
<if
test=
"stdMajor != null"
>
<![CDATA[AND stdmajor = #{stdMajor}]]>
</if>
</sql>
<select
id=
"queryPageResults"
parameterType=
"Students"
resultType=
"Students"
>
select
id ,
stdno ,
stdname ,
stdgender ,
stdage ,
stdmajor ,
stdclass
from students
<include
refid=
"sql_condition"
/>
</select>
<select
id=
"queryPageResults1"
parameterType=
"Students"
resultType=
"Students"
>
select
id ,
stdno ,
stdname ,
stdgender ,
stdage ,
stdmajor ,
stdclass
from students
<include
refid=
"sql_condition"
/>
and stdgender in (
select stdgender from students
)
</select>
<select
id=
"queryBy"
parameterType=
"Students"
resultType=
"Students"
>
select
id ,
stdno ,
stdname ,
stdgender ,
stdage ,
stdmajor ,
stdclass
from roles
<include
refid=
"sql_condition"
/>
</select>
<delete
id=
"delete"
parameterType=
"Students"
>
delete from students where id=#{id}
</delete>
</mapper>
\ No newline at end of file
mybatis-jpa-extra-core/src/test/resources/spring/applicationContext-persist.xml
浏览文件 @
7281a5b7
...
...
@@ -35,9 +35,9 @@
<!--<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">-->
<bean
id=
"sqlSessionFactory"
class=
"org.apache.mybatis.jpa.MyBatisSessionFactoryBean"
>
<property
name=
"timeout"
value=
"30"
/>
<property
name=
"dialect"
value=
"
my
sql"
/>
<property
name=
"dialect"
value=
"
postgre
sql"
/>
<property
name=
"dataSource"
ref=
"dataSource"
/>
<property
name=
"mapperLocations"
value=
"classpath*:/org/apache/mybatis/jpa/test/dao/persistence/xml/
my
sql/*.xml"
/>
<property
name=
"mapperLocations"
value=
"classpath*:/org/apache/mybatis/jpa/test/dao/persistence/xml/
postgre
sql/*.xml"
/>
<property
name=
"typeAliasesPackage"
value=
"
org.apache.mybatis.jpa.test.domain,
...
...
mybatis-jpa-extra-core/src/test/resources/students-postgresql.sql
0 → 100644
浏览文件 @
7281a5b7
--全部字段和表名用小写
insert
into
test
.
students
(
stdno
,
stdname
,
stdgender
,
stdage
,
stdmajor
,
stdclass
,
id
)
values
(
'10001'
,
'刘备'
,
'm'
,
40
,
'政治'
,
'1'
,
'8c34448b-c65b-4a4e-a0da-83284d05f909'
);
insert
into
test
.
students
(
stdno
,
stdname
,
stdgender
,
stdage
,
stdmajor
,
stdclass
,
id
)
values
(
'10002'
,
'关羽'
,
'm'
,
37
,
'物理'
,
'1'
,
'b9111f83-d338-461d-8d46-f331087d5a42'
);
insert
into
test
.
students
(
stdno
,
stdname
,
stdgender
,
stdage
,
stdmajor
,
stdclass
,
id
)
values
(
'10003'
,
'张飞'
,
'm'
,
38
,
'政治'
,
'1'
,
'1297510b-5f47-4425-b1cf-778425254142'
);
insert
into
test
.
students
(
stdno
,
stdname
,
stdgender
,
stdage
,
stdmajor
,
stdclass
,
id
)
values
(
'10004'
,
'赵云'
,
'm'
,
29
,
'历史'
,
'1'
,
'940908e2-7c58-429a-bcef-8b566befed00'
);
insert
into
test
.
students
(
stdno
,
stdname
,
stdgender
,
stdage
,
stdmajor
,
stdclass
,
id
)
values
(
'10005'
,
'黄忠'
,
'm'
,
68
,
'化学'
,
'1'
,
'05084723-77a8-425a-870e-e33d00e53fd2'
);
insert
into
test
.
students
(
stdno
,
stdname
,
stdgender
,
stdage
,
stdmajor
,
stdclass
,
id
)
values
(
'10006'
,
'魏延'
,
'm'
,
35
,
'化学'
,
'1'
,
'37e4b3b4-3c76-4bf3-8165-f514d14ff54f'
);
insert
into
test
.
students
(
stdno
,
stdname
,
stdgender
,
stdage
,
stdmajor
,
stdclass
,
id
)
values
(
'10007'
,
'马超'
,
'm'
,
29
,
'历史'
,
'1'
,
'f8d34aac-93d6-47ab-915e-fcd169007f62'
);
insert
into
test
.
students
(
stdno
,
stdname
,
stdgender
,
stdage
,
stdmajor
,
stdclass
,
id
)
values
(
'10008'
,
'姜维'
,
'm'
,
20
,
'政治'
,
'1'
,
'd252f326-c0ac-46cb-82fc-cb2597edaf41'
);
insert
into
test
.
students
(
stdno
,
stdname
,
stdgender
,
stdage
,
stdmajor
,
stdclass
,
id
)
values
(
'10009'
,
'孙策'
,
'm'
,
43
,
'政治'
,
'2'
,
'e4b748e6-ff3c-4727-9fc2-458b97cb318d'
);
insert
into
test
.
students
(
stdno
,
stdname
,
stdgender
,
stdage
,
stdmajor
,
stdclass
,
id
)
values
(
'10010'
,
'周瑜'
,
'm'
,
39
,
'数学'
,
'2'
,
'c38f8afd-a6bc-458d-9f9a-fb22f30c7e39'
);
insert
into
test
.
students
(
stdno
,
stdname
,
stdgender
,
stdage
,
stdmajor
,
stdclass
,
id
)
values
(
'10011'
,
'鲁肃'
,
'm'
,
34
,
'物理'
,
'2'
,
'71aaa4dd-9720-4f76-a825-357842de3c88'
);
insert
into
test
.
students
(
stdno
,
stdname
,
stdgender
,
stdage
,
stdmajor
,
stdclass
,
id
)
values
(
'10012'
,
'吕蒙'
,
'm'
,
20
,
'数学'
,
'2'
,
'dba0b7b9-97bf-41ac-8ac1-652b1fa05c9a'
);
insert
into
test
.
students
(
stdno
,
stdname
,
stdgender
,
stdage
,
stdmajor
,
stdclass
,
id
)
values
(
'10013'
,
'孙权'
,
'm'
,
20
,
'政治'
,
'2'
,
'3f1e0276-8104-44a0-9231-2759777b08ee'
);
insert
into
test
.
students
(
stdno
,
stdname
,
stdgender
,
stdage
,
stdmajor
,
stdclass
,
id
)
values
(
'10014'
,
'陆逊'
,
'm'
,
18
,
'数学'
,
'2'
,
'2120f7a5-00d9-44ff-92ee-ae1e2bc212e2'
);
insert
into
test
.
students
(
stdno
,
stdname
,
stdgender
,
stdage
,
stdmajor
,
stdclass
,
id
)
values
(
'10015'
,
'曹操'
,
'm'
,
46
,
'政治'
,
'3'
,
'715c53ac-c85d-4049-9ef9-abf4e3d91d15'
);
insert
into
test
.
students
(
stdno
,
stdname
,
stdgender
,
stdage
,
stdmajor
,
stdclass
,
id
)
values
(
'10016'
,
'典韦'
,
'm'
,
28
,
'历史'
,
'3'
,
'293745a9-c33e-47d2-9844-8668574d3b60'
);
insert
into
test
.
students
(
stdno
,
stdname
,
stdgender
,
stdage
,
stdmajor
,
stdclass
,
id
)
values
(
'10017'
,
'曹仁'
,
'm'
,
40
,
'数学'
,
'3'
,
'f29ca87a-7b85-4ed6-b57b-8ab75128487b'
);
insert
into
test
.
students
(
stdno
,
stdname
,
stdgender
,
stdage
,
stdmajor
,
stdclass
,
id
)
values
(
'10018'
,
'司马懿'
,
'm'
,
38
,
'政治'
,
'3'
,
'8793f911-fc0a-49fa-9ca7-2ab4e6a19454'
);
\ No newline at end of file
mybatis-jpa-extra-spring-boot-starter/src/main/java/org/apache/mybatis/jpa/starter/MybatisAutoConfiguration.java
浏览文件 @
7281a5b7
...
...
@@ -34,6 +34,7 @@ import org.apache.ibatis.type.TypeHandler;
import
org.apache.mybatis.jpa.MyBatisSessionFactoryBean
;
import
org.apache.mybatis.jpa.id.IdentifierGeneratorFactory
;
import
org.apache.mybatis.jpa.persistence.MapperMetadata
;
import
org.apache.mybatis.jpa.persistence.MapperMetadata.CASE_TYPE
;
import
org.mybatis.spring.SqlSessionFactoryBean
;
import
org.mybatis.spring.SqlSessionTemplate
;
import
org.mybatis.spring.mapper.MapperFactoryBean
;
...
...
@@ -160,8 +161,15 @@ public class MybatisAutoConfiguration implements InitializingBean {
}
}
if
(
this
.
properties
.
isTableColumnUpcase
())
{
MapperMetadata
.
TABLE_COLUMN_UPCASE
=
true
;
//default is lowercase
if
(
this
.
properties
.
getTableColumnCase
().
equalsIgnoreCase
(
"uppercase"
))
{
MapperMetadata
.
TABLE_COLUMN_CASE
=
CASE_TYPE
.
UPPERCASE
;
}
else
if
(
this
.
properties
.
getTableColumnCase
().
equalsIgnoreCase
(
"lowercase"
))
{
MapperMetadata
.
TABLE_COLUMN_CASE
=
CASE_TYPE
.
LOWERCASE
;
}
else
if
(
this
.
properties
.
getTableColumnCase
().
equalsIgnoreCase
(
"normal"
))
{
MapperMetadata
.
TABLE_COLUMN_CASE
=
CASE_TYPE
.
NORMAL
;
}
else
{
MapperMetadata
.
TABLE_COLUMN_CASE
=
CASE_TYPE
.
LOWERCASE
;
}
if
(
this
.
properties
.
getTableColumnSnowflakeDatacenterId
()>
0
&&
...
...
mybatis-jpa-extra-spring-boot-starter/src/main/java/org/apache/mybatis/jpa/starter/MybatisProperties.java
浏览文件 @
7281a5b7
...
...
@@ -64,7 +64,7 @@ public class MybatisProperties {
private
String
tableColumnEscapeChar
;
private
boolean
tableColumnUpc
ase
;
private
String
tableColumnC
ase
;
private
int
tableColumnSnowflakeDatacenterId
;
...
...
@@ -241,15 +241,18 @@ public class MybatisProperties {
this
.
tableColumnEscapeChar
=
tableColumnEscapeChar
;
}
public
boolean
isTableColumnUpcase
()
{
return
tableColumnUpcase
;
}
public
void
setTableColumnUpcase
(
boolean
tableColumnUpcase
)
{
this
.
tableColumnUpcase
=
tableColumnUpcase
;
}
public
int
getTableColumnSnowflakeDatacenterId
()
{
public
String
getTableColumnCase
()
{
return
tableColumnCase
;
}
public
void
setTableColumnCase
(
String
tableColumnCase
)
{
this
.
tableColumnCase
=
tableColumnCase
;
}
public
int
getTableColumnSnowflakeDatacenterId
()
{
return
tableColumnSnowflakeDatacenterId
;
}
...
...
mybatis-jpa-extra-spring-boot-starter/src/test/resources/application.properties
浏览文件 @
7281a5b7
...
...
@@ -6,9 +6,9 @@ spring.datasource.url=jdbc:mysql://localhost/test?autoReconnect=true&characterEn
spring.datasource.driver-class-name
=
com.mysql.jdbc.Driver
spring.datasource.type
=
com.alibaba.druid.pool.DruidDataSource
mybatis.dialect
=
mysql
mybatis.type-aliases-package
=
org.apache.mybatis.jpa.test.domain
mybatis.mapper-locations
=
classpath*:/org/apache/mybatis/jpa/test/dao/persistence/xml/
mysql
/*.xml
mybatis.mapper-locations
=
classpath*:/org/apache/mybatis/jpa/test/dao/persistence/xml/
${mybatis.dialect}
/*.xml
mybatis.table-column-escape
=
true
mybatis.table-column-snowflake-datacenter-id
=
1
mybatis.table-column-snowflake-machine-id
=
1
...
...
mybatis-jpa-extra-test/src/test/resources/students-mysql.sql
已删除
100644 → 0
浏览文件 @
fe7bc164
CREATE
TABLE
STUDENTS
(
STDNO
VARCHAR
(
100
),
STDNAME
VARCHAR
(
100
),
STDGENDER
VARCHAR
(
100
),
STDAGE
int
,
STDMAJOR
VARCHAR
(
100
),
STDCLASS
VARCHAR
(
100
),
ID
VARCHAR
(
100
)
)
ENGINE
=
InnoDB
DEFAULT
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
;
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10001'
,
'刘备'
,
'M'
,
40
,
'政治'
,
'1'
,
'8c34448b-c65b-4a4e-a0da-83284d05f909'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10002'
,
'关羽'
,
'M'
,
37
,
'物理'
,
'1'
,
'b9111f83-d338-461d-8d46-f331087d5a42'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10003'
,
'张飞'
,
'M'
,
38
,
'政治'
,
'1'
,
'1297510b-5f47-4425-b1cf-778425254142'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10004'
,
'赵云'
,
'M'
,
29
,
'历史'
,
'1'
,
'940908e2-7c58-429a-bcef-8b566befed00'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10005'
,
'黄忠'
,
'M'
,
68
,
'化学'
,
'1'
,
'05084723-77a8-425a-870e-e33d00e53fd2'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10006'
,
'魏延'
,
'M'
,
35
,
'化学'
,
'1'
,
'37e4b3b4-3c76-4bf3-8165-f514d14ff54f'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10007'
,
'马超'
,
'M'
,
29
,
'历史'
,
'1'
,
'f8d34aac-93d6-47ab-915e-fcd169007f62'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10008'
,
'姜维'
,
'M'
,
20
,
'政治'
,
'1'
,
'd252f326-c0ac-46cb-82fc-cb2597edaf41'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10009'
,
'孙策'
,
'M'
,
43
,
'政治'
,
'2'
,
'e4b748e6-ff3c-4727-9fc2-458b97cb318d'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10010'
,
'周瑜'
,
'M'
,
39
,
'数学'
,
'2'
,
'c38f8afd-a6bc-458d-9f9a-fb22f30c7e39'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10011'
,
'鲁肃'
,
'M'
,
34
,
'物理'
,
'2'
,
'71aaa4dd-9720-4f76-a825-357842de3c88'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10012'
,
'吕蒙'
,
'M'
,
20
,
'数学'
,
'2'
,
'dba0b7b9-97bf-41ac-8ac1-652b1fa05c9a'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10013'
,
'孙权'
,
'M'
,
20
,
'政治'
,
'2'
,
'3f1e0276-8104-44a0-9231-2759777b08ee'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10014'
,
'陆逊'
,
'M'
,
18
,
'数学'
,
'2'
,
'2120f7a5-00d9-44ff-92ee-ae1e2bc212e2'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10015'
,
'曹操'
,
'M'
,
46
,
'政治'
,
'3'
,
'715c53ac-c85d-4049-9ef9-abf4e3d91d15'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10016'
,
'典韦'
,
'M'
,
28
,
'历史'
,
'3'
,
'293745a9-c33e-47d2-9844-8668574d3b60'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10017'
,
'曹仁'
,
'M'
,
40
,
'数学'
,
'3'
,
'f29ca87a-7b85-4ed6-b57b-8ab75128487b'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10018'
,
'司马懿'
,
'M'
,
38
,
'政治'
,
'3'
,
'8793f911-fc0a-49fa-9ca7-2ab4e6a19454'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10019'
,
'邓艾'
,
'M'
,
17
,
'军事'
,
'3'
,
'317d5eda-927c-4871-a916-472a8062df23'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10020'
,
'大乔'
,
'F'
,
25
,
'艺术'
,
'4'
,
'3edd3ce2-1b13-46c9-8f39-37522052f2cc'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10021'
,
'小乔'
,
'F'
,
23
,
'艺术'
,
'4'
,
'd353a108-657d-47c3-8aef-e6936fd9a58e'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10022'
,
'孙尚香'
,
'F'
,
26
,
'历史'
,
'4'
,
'22f2914c-37bc-4e05-b0da-3d02f682008a'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10023'
,
'貂蝉'
,
'F'
,
20
,
'艺术'
,
'4'
,
'af04d610-6092-481e-9558-30bd63ef783c'
);
mybatis-jpa-extra-test/src/test/resources/students-oracle.sql
已删除
100644 → 0
浏览文件 @
fe7bc164
CREATE
TABLE
STUDENTS
(
STDNO
VARCHAR2
(
100
),
STDNAME
VARCHAR2
(
100
),
STDGENDER
VARCHAR2
(
100
),
STDAGE
NUMBER
,
STDMAJOR
VARCHAR2
(
100
),
STDCLASS
VARCHAR2
(
100
),
ID
VARCHAR2
(
100
)
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10001'
,
'刘备'
,
'M'
,
40
,
'政治'
,
'1'
,
'8c34448b-c65b-4a4e-a0da-83284d05f909'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10002'
,
'关羽'
,
'M'
,
37
,
'物理'
,
'1'
,
'b9111f83-d338-461d-8d46-f331087d5a42'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10003'
,
'张飞'
,
'M'
,
38
,
'政治'
,
'1'
,
'1297510b-5f47-4425-b1cf-778425254142'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10004'
,
'赵云'
,
'M'
,
29
,
'历史'
,
'1'
,
'940908e2-7c58-429a-bcef-8b566befed00'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10005'
,
'黄忠'
,
'M'
,
68
,
'化学'
,
'1'
,
'05084723-77a8-425a-870e-e33d00e53fd2'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10006'
,
'魏延'
,
'M'
,
35
,
'化学'
,
'1'
,
'37e4b3b4-3c76-4bf3-8165-f514d14ff54f'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10007'
,
'马超'
,
'M'
,
29
,
'历史'
,
'1'
,
'f8d34aac-93d6-47ab-915e-fcd169007f62'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10008'
,
'姜维'
,
'M'
,
20
,
'政治'
,
'1'
,
'd252f326-c0ac-46cb-82fc-cb2597edaf41'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10009'
,
'孙策'
,
'M'
,
43
,
'政治'
,
'2'
,
'e4b748e6-ff3c-4727-9fc2-458b97cb318d'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10010'
,
'周瑜'
,
'M'
,
39
,
'数学'
,
'2'
,
'c38f8afd-a6bc-458d-9f9a-fb22f30c7e39'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10011'
,
'鲁肃'
,
'M'
,
34
,
'物理'
,
'2'
,
'71aaa4dd-9720-4f76-a825-357842de3c88'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10012'
,
'吕蒙'
,
'M'
,
20
,
'数学'
,
'2'
,
'dba0b7b9-97bf-41ac-8ac1-652b1fa05c9a'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10013'
,
'孙权'
,
'M'
,
20
,
'政治'
,
'2'
,
'3f1e0276-8104-44a0-9231-2759777b08ee'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10014'
,
'陆逊'
,
'M'
,
18
,
'数学'
,
'2'
,
'2120f7a5-00d9-44ff-92ee-ae1e2bc212e2'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10015'
,
'曹操'
,
'M'
,
46
,
'政治'
,
'3'
,
'715c53ac-c85d-4049-9ef9-abf4e3d91d15'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10016'
,
'典韦'
,
'M'
,
28
,
'历史'
,
'3'
,
'293745a9-c33e-47d2-9844-8668574d3b60'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10017'
,
'曹仁'
,
'M'
,
40
,
'数学'
,
'3'
,
'f29ca87a-7b85-4ed6-b57b-8ab75128487b'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10018'
,
'司马懿'
,
'M'
,
38
,
'政治'
,
'3'
,
'8793f911-fc0a-49fa-9ca7-2ab4e6a19454'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10019'
,
'邓艾'
,
'M'
,
17
,
'军事'
,
'3'
,
'317d5eda-927c-4871-a916-472a8062df23'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10020'
,
'大乔'
,
'F'
,
25
,
'艺术'
,
'4'
,
'3edd3ce2-1b13-46c9-8f39-37522052f2cc'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10021'
,
'小乔'
,
'F'
,
23
,
'艺术'
,
'4'
,
'd353a108-657d-47c3-8aef-e6936fd9a58e'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10022'
,
'孙尚香'
,
'F'
,
26
,
'历史'
,
'4'
,
'22f2914c-37bc-4e05-b0da-3d02f682008a'
);
insert
into
STUDENTS
(
STDNO
,
STDNAME
,
STDGENDER
,
STDAGE
,
STDMAJOR
,
STDCLASS
,
ID
)
values
(
'10023'
,
'貂蝉'
,
'F'
,
20
,
'艺术'
,
'4'
,
'af04d610-6092-481e-9558-30bd63ef783c'
);
pom.xml
浏览文件 @
7281a5b7
...
...
@@ -224,6 +224,18 @@
<artifactId>
mysql-connector-java
</artifactId>
<version>
${mysql-connnector.version}
</version>
</dependency>
<dependency>
<groupId>
com.highgo
</groupId>
<artifactId>
HgdbJdbc
</artifactId>
<version>
6.0.3.jre8
</version>
</dependency>
<dependency>
<groupId>
org.postgresql
</groupId>
<artifactId>
postgresql
</artifactId>
<version>
42.2.19
</version>
</dependency>
<!-- <dependency> <groupId>oracle</groupId> <artifactId>ojdbc6</artifactId>
<version>11.2.0.3</version> <scope>system</scope> <systemPath>${project.basedir}/lib/ojdbc6.jar</systemPath>
</dependency> -->
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录