Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
schbrain-parent
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Incidents
Environments
Packages & Registries
Packages & Registries
Package Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
framework
schbrain-parent
Commits
939b0c81
Commit
939b0c81
authored
Nov 09, 2023
by
liaozan
🏀
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Distinct sql params
parent
33a54cd2
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
29 additions
and
29 deletions
+29
-29
commons/common-util/src/main/java/com/schbrain/common/util/StreamUtils.java
...l/src/main/java/com/schbrain/common/util/StreamUtils.java
+9
-1
commons/module-tree/src/main/java/com/schbrain/common/module/tree/dao/TreeNodeDao.java
...java/com/schbrain/common/module/tree/dao/TreeNodeDao.java
+3
-3
support/schbrain-base-dao/src/main/java/com/schbrain/framework/dao/util/SQLUtil.java
...rc/main/java/com/schbrain/framework/dao/util/SQLUtil.java
+17
-25
No files found.
commons/common-util/src/main/java/com/schbrain/common/util/StreamUtils.java
View file @
939b0c81
...
@@ -146,12 +146,20 @@ public class StreamUtils {
...
@@ -146,12 +146,20 @@ public class StreamUtils {
return
join
(
data
,
delimiter
,
Objects:
:
toString
);
return
join
(
data
,
delimiter
,
Objects:
:
toString
);
}
}
public
static
<
T
>
String
join
(
Iterable
<
T
>
data
,
Function
<
T
,
String
>
toStringFunction
)
{
return
join
(
data
,
StrPool
.
COMMA
,
toStringFunction
);
}
public
static
<
T
>
String
join
(
Iterable
<
T
>
data
,
String
delimiter
,
Function
<
T
,
String
>
toStringFunction
)
{
public
static
<
T
>
String
join
(
Iterable
<
T
>
data
,
String
delimiter
,
Function
<
T
,
String
>
toStringFunction
)
{
return
from
(
data
).
map
(
toStringFunction
).
collect
(
joining
(
delimiter
));
return
from
(
data
).
map
(
toStringFunction
).
collect
(
joining
(
delimiter
));
}
}
public
static
List
<
String
>
split
(
String
data
)
{
public
static
List
<
String
>
split
(
String
data
)
{
return
split
(
data
,
Function
.
identity
());
return
split
(
data
,
StrPool
.
COMMA
);
}
public
static
List
<
String
>
split
(
String
data
,
String
delimiter
)
{
return
split
(
data
,
delimiter
,
Function
.
identity
());
}
}
public
static
<
T
>
List
<
T
>
split
(
String
data
,
Function
<
String
,
T
>
mapper
)
{
public
static
<
T
>
List
<
T
>
split
(
String
data
,
Function
<
String
,
T
>
mapper
)
{
...
...
commons/module-tree/src/main/java/com/schbrain/common/module/tree/dao/TreeNodeDao.java
View file @
939b0c81
...
@@ -32,7 +32,7 @@ public class TreeNodeDao<NODE extends TreeNode> {
...
@@ -32,7 +32,7 @@ public class TreeNodeDao<NODE extends TreeNode> {
}
}
public
List
<
NODE
>
listByIds
(
List
<
Long
>
ids
)
{
public
List
<
NODE
>
listByIds
(
List
<
Long
>
ids
)
{
return
baseDao
.
listByCondition
(
"validate = #{validate} AND "
+
SQLUtil
.
buidInClause
(
"id"
,
Long
.
class
,
ids
),
ValidateEnum
.
VALID
.
getValue
());
return
baseDao
.
listByCondition
(
"validate = #{validate} AND "
+
SQLUtil
.
bui
l
dInClause
(
"id"
,
Long
.
class
,
ids
),
ValidateEnum
.
VALID
.
getValue
());
}
}
public
Integer
countParent
(
Long
relateId
,
NODE
node
,
TreeQueryOption
option
)
{
public
Integer
countParent
(
Long
relateId
,
NODE
node
,
TreeQueryOption
option
)
{
...
@@ -242,7 +242,7 @@ public class TreeNodeDao<NODE extends TreeNode> {
...
@@ -242,7 +242,7 @@ public class TreeNodeDao<NODE extends TreeNode> {
}
}
public
int
updateParentId
(
List
<
Long
>
nodeIds
,
Long
parentId
)
{
public
int
updateParentId
(
List
<
Long
>
nodeIds
,
Long
parentId
)
{
String
sql
=
"UPDATE "
+
baseDao
.
getTableName
()
+
" SET parent_id = #{parentId} WHERE "
+
SQLUtil
.
buidInClause
(
"id"
,
Long
.
class
,
nodeIds
);
String
sql
=
"UPDATE "
+
baseDao
.
getTableName
()
+
" SET parent_id = #{parentId} WHERE "
+
SQLUtil
.
bui
l
dInClause
(
"id"
,
Long
.
class
,
nodeIds
);
return
baseDao
.
updateByCompleteSql
(
sql
,
parentId
);
return
baseDao
.
updateByCompleteSql
(
sql
,
parentId
);
}
}
...
@@ -267,7 +267,7 @@ public class TreeNodeDao<NODE extends TreeNode> {
...
@@ -267,7 +267,7 @@ public class TreeNodeDao<NODE extends TreeNode> {
}
}
public
int
updateNodeByIds
(
NODE
updateNode
,
List
<
Long
>
nodeIds
)
{
public
int
updateNodeByIds
(
NODE
updateNode
,
List
<
Long
>
nodeIds
)
{
return
baseDao
.
updateByCondition
(
updateNode
,
SQLUtil
.
buidInClause
(
"id"
,
Long
.
class
,
nodeIds
));
return
baseDao
.
updateByCondition
(
updateNode
,
SQLUtil
.
bui
l
dInClause
(
"id"
,
Long
.
class
,
nodeIds
));
}
}
private
String
getParentLeftRange
(
NODE
node
,
TreeQueryOption
option
,
List
<
Object
>
params
)
{
private
String
getParentLeftRange
(
NODE
node
,
TreeQueryOption
option
,
List
<
Object
>
params
)
{
...
...
support/schbrain-base-dao/src/main/java/com/schbrain/framework/dao/util/SQLUtil.java
View file @
939b0c81
package
com.schbrain.framework.dao.util
;
package
com.schbrain.framework.dao.util
;
import
com.schbrain.common.util.StreamUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.util.ClassUtils
;
import
java.util.List
;
import
java.util.*
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
/**
/**
* description
* description
...
@@ -14,36 +14,28 @@ import java.util.stream.Collectors;
...
@@ -14,36 +14,28 @@ import java.util.stream.Collectors;
*/
*/
public
class
SQLUtil
{
public
class
SQLUtil
{
public
static
String
buidInClause
(
String
columnName
,
Class
<?>
valueType
,
List
<?>
valueList
)
{
public
static
<
T
>
String
buildInClause
(
String
columnName
,
Class
<
T
>
valueType
,
List
<
T
>
values
)
{
Set
<
T
>
valueList
=
StreamUtils
.
filterToSet
(
values
,
Objects:
:
nonNull
);
if
(
CollectionUtils
.
isEmpty
(
valueList
))
{
if
(
CollectionUtils
.
isEmpty
(
valueList
))
{
throw
new
IllegalArgumentException
(
"Value list can not be empty."
);
throw
new
IllegalArgumentException
(
"Value list can not be empty."
);
}
}
valueList
=
valueList
.
stream
().
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toList
());
StringBuilder
builder
=
new
StringBuilder
(
" "
);
if
(
CollectionUtils
.
isEmpty
(
valueList
))
{
builder
.
append
(
columnName
).
append
(
" in ("
);
throw
new
IllegalArgumentException
(
"Value list can not be empty."
);
if
(
ClassUtils
.
isPrimitiveWrapper
(
valueType
))
{
}
builder
.
append
(
StreamUtils
.
join
(
valueList
)).
append
(
")"
);
StringBuilder
sb
=
new
StringBuilder
(
" "
);
sb
.
append
(
columnName
).
append
(
" in ("
);
if
(
Integer
.
class
.
isAssignableFrom
(
valueType
)
||
Long
.
class
.
isAssignableFrom
(
valueType
)
||
Short
.
class
.
isAssignableFrom
(
valueType
)
||
Byte
.
class
.
isAssignableFrom
(
valueType
)
||
Double
.
class
.
isAssignableFrom
(
valueType
)
||
Float
.
class
.
isAssignableFrom
(
valueType
))
{
sb
.
append
(
StringUtils
.
join
(
valueList
,
','
)).
append
(
")"
);
}
else
{
}
else
{
valueList
.
forEach
(
e
->
{
builder
.
append
(
StreamUtils
.
join
(
valueList
,
SQLUtil:
:
escapeSql
)).
append
(
")"
);
sb
.
append
(
"'"
).
append
(
escapeSql
(
e
)).
append
(
"',"
);
});
sb
.
deleteCharAt
(
sb
.
length
()
-
1
).
append
(
")"
);
}
}
sb
.
append
(
" "
);
builder
.
append
(
" "
);
return
sb
.
toString
();
return
builder
.
toString
();
}
}
private
static
String
escapeSql
(
Object
o
)
{
private
static
String
escapeSql
(
Object
value
)
{
if
(
o
instanceof
String
)
{
if
(
value
instanceof
String
)
{
return
StringUtils
.
replace
((
String
)
o
,
"'"
,
"''"
);
return
StringUtils
.
replace
((
String
)
value
,
"'"
,
"''"
);
}
else
{
}
else
{
return
String
.
valueOf
(
o
);
return
String
.
valueOf
(
value
);
}
}
}
}
}
}
\ No newline at end of file
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