Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dsk-dsc-flink
Project
Project
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
shezaixing
dsk-dsc-flink
Commits
159aac6a
Commit
159aac6a
authored
Feb 02, 2024
by
shezaixing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
JSON类型做字符串处理
parent
52202af4
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
34 additions
and
4 deletions
+34
-4
AsyncMysqlDataTransferFunction.java
...k/dsc/common/function/AsyncMysqlDataTransferFunction.java
+34
-4
No files found.
src/main/java/com/dsk/flink/dsc/common/function/AsyncMysqlDataTransferFunction.java
View file @
159aac6a
...
...
@@ -106,16 +106,29 @@ public class AsyncMysqlDataTransferFunction extends RichAsyncFunction<JSONObject
private
static
final
String
[]
STR_SQL_TYPE
=
new
String
[]{
"VARCHAR"
,
"CHAR"
,
"TINYBLOB"
,
"BLOB"
,
"MEDIUMBLOB"
,
"LONGBLOB"
,
"TINYTEXT"
,
"TEXT"
,
"MEDIUMTEXT"
,
"LONGTEXT"
,
"TIME"
,
"TIMESTAMP"
,
"JSON"
,
"json"
};
private
static
final
String
[]
KEYWORD
=
new
String
[]{
"limit"
};
private
static
String
tranferInsertSql
(
String
table
,
JSONObject
dataObj
,
JSONObject
mysqlType
)
{
Set
<
String
>
columnSet
=
mysqlType
.
keySet
();
StringBuilder
sb
=
new
StringBuilder
();
for
(
String
s
:
columnSet
)
{
sb
.
append
(
"`"
+
s
+
"`"
).
append
(
","
);
}
List
<
String
>
valueList
=
new
ArrayList
<>();
List
<
String
>
updateList
=
new
ArrayList
<>();
for
(
String
col
:
columnSet
)
{
String
formatCol
=
"`"
+
col
+
"`"
;
if
(
Arrays
.
asList
(
KEYWORD
).
contains
(
col
)){
valueList
.
add
(
getValueString
(
dataObj
,
col
,
mysqlType
.
getString
(
col
)));
updateList
.
add
(
formatCol
.
concat
(
" = VALUES("
).
concat
(
formatCol
).
concat
(
")"
));
}
else
{
valueList
.
add
(
getValueString
(
dataObj
,
col
,
mysqlType
.
getString
(
col
)));
updateList
.
add
(
col
.
concat
(
" = VALUES("
).
concat
(
col
).
concat
(
")"
));
}
String
columnString
=
String
.
join
(
","
,
columnSet
);
}
//String columnString = String.join(",",columnSet);
sb
.
setLength
(
sb
.
length
()-
1
);
String
columnString
=
sb
.
toString
();
String
valueString
=
String
.
join
(
","
,
valueList
);
String
updateString
=
String
.
join
(
","
,
updateList
);
...
...
@@ -167,7 +180,7 @@ public class AsyncMysqlDataTransferFunction extends RichAsyncFunction<JSONObject
//需要处理成字符串加引号的类型
if
(
Arrays
.
asList
(
STR_SQL_TYPE
).
contains
(
mysqlType
.
toUpperCase
())){
return
String
.
format
(
"'%s'"
,
dataObj
.
getString
(
columnKey
).
replace
All
(
"'"
,
"\\
\\'"
)
);
return
String
.
format
(
"'%s'"
,
dataObj
.
getString
(
columnKey
).
replace
(
"\\"
,
"\\\\"
).
replace
(
"'"
,
"
\\'"
)
);
}
//时间字段处理
...
...
@@ -213,6 +226,23 @@ public class AsyncMysqlDataTransferFunction extends RichAsyncFunction<JSONObject
System
.
out
.
println
(
tranferInsertSql
(
table
,
jsonObject
,
mysqlType
));
System
.
out
.
println
(
s2
.
replaceAll
(
"'"
,
"\\\\'"
));
String
[]
ss
=
new
String
[]{
"1"
,
"2"
,
"3"
};
StringBuilder
sb
=
new
StringBuilder
();
for
(
String
s3
:
ss
)
{
sb
.
append
(
"`"
+
s3
+
"?"
).
append
(
","
);
}
for
(
String
s3
:
ss
)
{
System
.
out
.
println
(
s3
);
}
sb
.
setLength
(
sb
.
length
()-
1
);
System
.
out
.
println
(
sb
.
toString
());
String
s5
=
"交货地址:安徽霍邱供应站及指定地点\\\",\\\"bjsm\\\":null,\\\"jhType\\\":null,\\"
;
System
.
out
.
println
(
s5
);
System
.
out
.
println
(
s5
.
replace
(
"\\"
,
"\\\\"
).
replace
(
"'"
,
"\\'"
));
}
}
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