Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
datax-cloud
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄营
datax-cloud
Commits
a2601092
Commit
a2601092
authored
Apr 07, 2020
by
yuwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2.0.0项目初始化
parent
67f6c572
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
104 additions
and
13 deletions
+104
-13
DbQuery.java
...abase/src/main/java/cn/datax/common/database/DbQuery.java
+18
-0
DbQueryTemplate.java
.../java/cn/datax/common/database/query/DbQueryTemplate.java
+18
-2
ApiCallServiceImpl.java
...data/market/api/call/service/impl/ApiCallServiceImpl.java
+1
-3
SqlBuilderUtil.java
...ax/service/data/market/api/call/utils/SqlBuilderUtil.java
+4
-2
WhereType.java
...ava/cn/datax/service/data/market/api/enums/WhereType.java
+17
-3
SqlBuilderUtil.java
...va/cn/datax/service/data/market/utils/SqlBuilderUtil.java
+46
-3
No files found.
datax-common/datax-common-database/src/main/java/cn/datax/common/database/DbQuery.java
View file @
a2601092
...
...
@@ -59,6 +59,14 @@ public interface DbQuery {
int
count
(
String
sql
,
Object
[]
args
);
/**
* 获取总数带查询参数 NamedParameterJdbcTemplate
*
* @param sql
* @return
*/
int
count
(
String
sql
,
Map
<
String
,
Object
>
params
);
/**
* 查询结果列表
*
* @param sql
...
...
@@ -94,4 +102,14 @@ public interface DbQuery {
* @return
*/
PageResult
<
Map
<
String
,
Object
>>
queryByPage
(
String
sql
,
Object
[]
args
,
long
offset
,
long
size
);
/**
* 查询结果分页带查询参数 NamedParameterJdbcTemplate
* @param sql
* @param params
* @param offset
* @param size
* @return
*/
PageResult
<
Map
<
String
,
Object
>>
queryByPage
(
String
sql
,
Map
<
String
,
Object
>
params
,
long
offset
,
long
size
);
}
datax-common/datax-common-database/src/main/java/cn/datax/common/database/query/DbQueryTemplate.java
View file @
a2601092
...
...
@@ -9,6 +9,7 @@ import cn.datax.common.database.exception.DataQueryException;
import
com.zaxxer.hikari.HikariDataSource
;
import
lombok.Setter
;
import
org.springframework.jdbc.core.JdbcTemplate
;
import
org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate
;
import
javax.sql.DataSource
;
import
java.sql.Connection
;
...
...
@@ -62,6 +63,17 @@ public class DbQueryTemplate implements DbQuery {
}
@Override
public
int
count
(
String
sql
,
Object
[]
args
)
{
return
jdbcTemplate
.
queryForObject
(
dbDialect
.
count
(
sql
),
args
,
Integer
.
class
);
}
@Override
public
int
count
(
String
sql
,
Map
<
String
,
Object
>
params
)
{
NamedParameterJdbcTemplate
namedJdbcTemplate
=
new
NamedParameterJdbcTemplate
(
jdbcTemplate
);
return
namedJdbcTemplate
.
queryForObject
(
dbDialect
.
count
(
sql
),
params
,
Integer
.
class
);
}
@Override
public
List
<
Map
<
String
,
Object
>>
queryList
(
String
sql
)
{
return
jdbcTemplate
.
queryForList
(
sql
);
}
...
...
@@ -88,7 +100,11 @@ public class DbQueryTemplate implements DbQuery {
}
@Override
public
int
count
(
String
sql
,
Object
[]
args
)
{
return
jdbcTemplate
.
queryForObject
(
dbDialect
.
count
(
sql
),
args
,
Integer
.
class
);
public
PageResult
<
Map
<
String
,
Object
>>
queryByPage
(
String
sql
,
Map
<
String
,
Object
>
params
,
long
offset
,
long
size
)
{
int
total
=
count
(
sql
,
params
);
String
pageSql
=
dbDialect
.
buildPaginationSql
(
sql
,
offset
,
size
);
NamedParameterJdbcTemplate
namedJdbcTemplate
=
new
NamedParameterJdbcTemplate
(
jdbcTemplate
);
List
<
Map
<
String
,
Object
>>
records
=
namedJdbcTemplate
.
queryForList
(
pageSql
,
params
);
return
new
PageResult
<>(
total
,
records
);
}
}
datax-modules/data-market-service-parent/data-market-service-api-call/src/main/java/cn/datax/service/data/market/api/call/service/impl/ApiCallServiceImpl.java
View file @
a2601092
...
...
@@ -76,11 +76,9 @@ public class ApiCallServiceImpl implements ApiCallService {
ThreadUtil
.
getInstance
().
get
().
setMsg
(
e
.
getMessage
());
throw
new
DataException
(
"API调用动态构造SQL语句出错"
);
}
Object
[]
args
=
new
Object
[]
{};
Map
<
String
,
Object
>
acceptedFilters
=
sqlFilterResult
.
getAcceptedFilters
();
args
=
acceptedFilters
.
values
().
toArray
();
try
{
PageResult
<
Map
<
String
,
Object
>>
pageResult
=
dbQuery
.
queryByPage
(
sqlFilterResult
.
getSql
(),
a
rg
s
,
offset
,
pageSize
);
PageResult
<
Map
<
String
,
Object
>>
pageResult
=
dbQuery
.
queryByPage
(
sqlFilterResult
.
getSql
(),
a
cceptedFilter
s
,
offset
,
pageSize
);
pageResult
.
setPageNum
(
pageNum
).
setPageSize
(
pageSize
);
ThreadUtil
.
getInstance
().
get
().
setCallerSize
(
pageResult
.
getData
().
size
());
return
pageResult
;
...
...
datax-modules/data-market-service-parent/data-market-service-api-call/src/main/java/cn/datax/service/data/market/api/call/utils/SqlBuilderUtil.java
View file @
a2601092
...
...
@@ -137,10 +137,12 @@ public class SqlBuilderUtil {
log
.
debug
(
"The filter namedParameters="
+
parsedSql
.
getParamNames
()
+
" is accepted on segment="
+
sql
.
substring
(
start
,
end
+
MARK_KEY_END
.
length
()));
}
// 下面方法2选1可以获取条件代码块
// select id, name from user where 1 = 1 and id = :id
// String segment = sql.substring(start + MARK_KEY_START.length(), end);
//
String segment = parsedSql.getOriginalSql();
String
segment
=
parsedSql
.
getOriginalSql
();
// 转换命名参数:为?
String
segment
=
NamedParameterUtil
.
substituteNamedParams
(
parsedSql
,
filters
);
// select id, name from user where 1 = 1 and id = ?
// String segment = NamedParameterUtil.substituteNamedParams(parsedSql, filters);
// 获取传参中包含命名参数的数据
LinkedHashMap
<
String
,
Object
>
linkAcceptedFilters
=
NamedParameterUtil
.
buildValueArray
(
parsedSql
,
filters
);
acceptedFilters
.
putAll
(
linkAcceptedFilters
);
...
...
datax-modules/data-market-service-parent/data-market-service-api/src/main/java/cn/datax/service/data/market/api/enums/WhereType.java
View file @
a2601092
...
...
@@ -5,13 +5,15 @@ public enum WhereType {
EQUALS
(
1
,
"="
,
"等于"
),
NOT_EQUALS
(
2
,
"!="
,
"不等于"
),
LIKE
(
3
,
"LIKE"
,
"全模糊查询"
),
LIKE_LEFT
(
4
,
"LIKE
_LEFT
"
,
"左模糊查询"
),
LIKE_RIGHT
(
5
,
"LIKE
_RIGHT
"
,
"右模糊查询"
),
LIKE_LEFT
(
4
,
"LIKE"
,
"左模糊查询"
),
LIKE_RIGHT
(
5
,
"LIKE"
,
"右模糊查询"
),
GREATER_THAN
(
6
,
">"
,
"大于"
),
GREATER_THAN_EQUALS
(
7
,
">="
,
"大于等于"
),
LESS_THAN
(
8
,
"<"
,
"小于"
),
LESS_THAN_EQUALS
(
9
,
"<="
,
"小于等于"
),
IN
(
10
,
"IN"
,
"IN"
);
NULL
(
10
,
"IS NULL"
,
"是否为空"
),
NOT_NULL
(
11
,
"IS NOT NULL"
,
"是否不为空"
),
IN
(
12
,
"IN"
,
"IN"
);
private
final
Integer
type
;
...
...
@@ -25,6 +27,18 @@ public enum WhereType {
this
.
desc
=
desc
;
}
public
Integer
getType
()
{
return
type
;
}
public
String
getKey
()
{
return
key
;
}
public
String
getDesc
()
{
return
desc
;
}
public
static
WhereType
getWhereType
(
Integer
whereType
)
{
for
(
WhereType
type
:
WhereType
.
values
())
{
if
(
type
.
type
==
whereType
)
{
...
...
datax-modules/data-market-service-parent/data-market-service/src/main/java/cn/datax/service/data/market/utils/SqlBuilderUtil.java
View file @
a2601092
...
...
@@ -79,13 +79,29 @@ public class SqlBuilderUtil {
*/
private
final
String
WHERE_INIT
=
WHERE_SQL
+
" 1 = 1"
;
/**
* 左括号
*/
private
final
String
LEFT_BRACKET
=
"("
;
/**
* 右括号
*/
private
final
String
RIGHT_BRACKET
=
")"
;
/**
* 百分号%
*/
private
final
String
PERCENT_SIGN
=
"%"
;
/**
* 单引号 '
*/
private
final
String
SINGLE_QUOTE
=
"'"
;
/**
* 条件代码块标记开始
*/
public
String
MARK_KEY_START
=
"${"
;
public
final
String
MARK_KEY_START
=
"${"
;
/**
* 条件代码块标记结束
*/
public
String
MARK_KEY_END
=
"}"
;
public
final
String
MARK_KEY_END
=
"}"
;
/**
* 拼接命名参数sql
...
...
@@ -105,7 +121,34 @@ public class SqlBuilderUtil {
sql
.
append
(
SPACE
).
append
(
WHERE_INIT
);
for
(
int
i
=
0
;
i
<
params
.
size
();
i
++)
{
ReqParam
reqParam
=
params
.
get
(
i
);
sql
.
append
(
SPACE
).
append
(
MARK_KEY_START
).
append
(
WHERE_AND
).
append
(
SPACE
).
append
(
reqParam
.
getParamName
()).
append
(
SPACE
).
append
(
WhereType
.
getWhereType
(
reqParam
.
getWhereType
())).
append
(
SPACE
).
append
(
COLON
).
append
(
reqParam
.
getParamName
()).
append
(
MARK_KEY_END
);
sql
.
append
(
SPACE
).
append
(
MARK_KEY_START
).
append
(
WHERE_AND
).
append
(
SPACE
).
append
(
reqParam
.
getParamName
());
if
(
WhereType
.
LIKE
.
getType
()
==
reqParam
.
getWhereType
())
{
// LIKE '%' :username '%' ,:username 两边一定要有空格,如果没有空格,是查询不到数据的
sql
.
append
(
SPACE
).
append
(
WhereType
.
getWhereType
(
reqParam
.
getWhereType
()).
getKey
())
.
append
(
SPACE
).
append
(
SINGLE_QUOTE
).
append
(
PERCENT_SIGN
).
append
(
SINGLE_QUOTE
).
append
(
SPACE
)
.
append
(
COLON
).
append
(
reqParam
.
getParamName
())
.
append
(
SPACE
).
append
(
SINGLE_QUOTE
).
append
(
PERCENT_SIGN
).
append
(
SINGLE_QUOTE
).
append
(
MARK_KEY_END
);
}
else
if
(
WhereType
.
LIKE_LEFT
.
getType
()
==
reqParam
.
getWhereType
())
{
sql
.
append
(
SPACE
).
append
(
WhereType
.
getWhereType
(
reqParam
.
getWhereType
()).
getKey
())
.
append
(
SPACE
).
append
(
SINGLE_QUOTE
).
append
(
PERCENT_SIGN
).
append
(
SINGLE_QUOTE
).
append
(
SPACE
)
.
append
(
COLON
).
append
(
reqParam
.
getParamName
()).
append
(
MARK_KEY_END
);
}
else
if
(
WhereType
.
LIKE_RIGHT
.
getType
()
==
reqParam
.
getWhereType
())
{
sql
.
append
(
SPACE
).
append
(
WhereType
.
getWhereType
(
reqParam
.
getWhereType
()).
getKey
())
.
append
(
SPACE
).
append
(
COLON
).
append
(
reqParam
.
getParamName
())
.
append
(
SPACE
).
append
(
SINGLE_QUOTE
).
append
(
PERCENT_SIGN
).
append
(
SINGLE_QUOTE
).
append
(
MARK_KEY_END
);
}
else
if
(
WhereType
.
NULL
.
getType
()
==
reqParam
.
getWhereType
()
||
WhereType
.
NOT_NULL
.
getType
()
==
reqParam
.
getWhereType
()){
// is null或is not null不需要参数值
sql
.
append
(
SPACE
).
append
(
WhereType
.
getWhereType
(
reqParam
.
getWhereType
()).
getKey
()).
append
(
MARK_KEY_END
);
}
else
if
(
WhereType
.
IN
.
getType
()
==
reqParam
.
getWhereType
()){
// in (:ids)
sql
.
append
(
SPACE
).
append
(
WhereType
.
getWhereType
(
reqParam
.
getWhereType
()).
getKey
())
.
append
(
SPACE
).
append
(
LEFT_BRACKET
)
.
append
(
COLON
).
append
(
reqParam
.
getParamName
())
.
append
(
RIGHT_BRACKET
).
append
(
MARK_KEY_END
);
}
else
{
sql
.
append
(
SPACE
).
append
(
WhereType
.
getWhereType
(
reqParam
.
getWhereType
()).
getKey
())
.
append
(
SPACE
).
append
(
COLON
).
append
(
reqParam
.
getParamName
()).
append
(
MARK_KEY_END
);
}
}
return
sql
.
toString
();
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment