Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
A
adaptation-master
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
912协同工作系统
项目监控管理工具
adaptation-master
Commits
15696850
提交
15696850
authored
12月 19, 2019
作者:
zhangshuang
浏览文件
操作
浏览文件
下载
差异文件
合并分支 'zs' 到 'master'
Zs 查看合并请求 ty_wyl/adaptation-master1!30
上级
b6273c2c
73c98544
显示空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
71 行增加
和
13 行删除
+71
-13
SQLExecuteTask.java
...ty/adaptationmaster/adaptor/entity/db/SQLExecuteTask.java
+36
-0
DBMigrateServiceImpl.java
...tionmaster/adaptor/service/Impl/DBMigrateServiceImpl.java
+34
-7
Regular.java
src/main/java/com/zjty/adaptationmaster/utils/Regular.java
+1
-6
没有找到文件。
src/main/java/com/zjty/adaptationmaster/adaptor/entity/db/SQLExecuteTask.java
0 → 100644
浏览文件 @
15696850
package
com
.
zjty
.
adaptationmaster
.
adaptor
.
entity
.
db
;
import
java.sql.Connection
;
import
java.sql.PreparedStatement
;
import
java.sql.SQLException
;
public
class
SQLExecuteTask
implements
Runnable
{
private
Connection
connection
;
private
String
sql
;
public
SQLExecuteTask
(
Connection
connection
){
this
.
connection
=
connection
;
}
public
void
setSql
(
String
sql
){
this
.
sql
=
sql
;
}
@Override
public
void
run
()
{
PreparedStatement
preparedStatement
=
null
;
try
{
preparedStatement
=
connection
.
prepareStatement
(
sql
);
preparedStatement
.
setQueryTimeout
(
10
);
preparedStatement
.
execute
();
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
finally
{
try
{
preparedStatement
.
close
();
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
}
}
}
src/main/java/com/zjty/adaptationmaster/adaptor/service/Impl/DBMigrateServiceImpl.java
浏览文件 @
15696850
...
...
@@ -22,6 +22,9 @@ import java.sql.PreparedStatement;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
import
java.util.*
;
import
java.util.concurrent.ArrayBlockingQueue
;
import
java.util.concurrent.ThreadPoolExecutor
;
import
java.util.concurrent.TimeUnit
;
@Service
@Slf4j
...
...
@@ -32,6 +35,9 @@ public class DBMigrateServiceImpl implements DBMigrateService {
@Autowired
private
DBRecordDao
dbRecordDao
;
//线程池数量,合适的线程数量能让程序更快
private
static
final
int
poolSize
=
2
;
@Value
(
"${highgo.driver}"
)
private
String
highgoDriver
;
@Value
(
"${highgo.connectionType}"
)
...
...
@@ -105,27 +111,48 @@ public class DBMigrateServiceImpl implements DBMigrateService {
File
file
=
new
File
(
path
);
FileReader
fileReader
=
null
;
BufferedReader
bufferedReader
=
null
;
List
<
String
>
tableList
=
new
ArrayList
<>();
List
<
String
>
insertList
=
new
ArrayList
<>();
List
<
String
>
elseList
=
new
ArrayList
<>();
PreparedStatement
preparedStatement1
=
null
;
try
{
fileReader
=
new
FileReader
(
file
);
bufferedReader
=
new
BufferedReader
(
fileReader
);
String
s
;
String
sql
=
""
;
ThreadPoolExecutor
pool
=
new
ThreadPoolExecutor
(
poolSize
,
poolSize
,
10
,
TimeUnit
.
SECONDS
,
new
ArrayBlockingQueue
<>(
poolSize
*
2
));
pool
.
setRejectedExecutionHandler
(
new
ThreadPoolExecutor
.
CallerRunsPolicy
());
while
((
s
=
bufferedReader
.
readLine
())
!=
null
){
try
{
if
(
Regular
.
lowerAndUpper
(
s
,
"INSERT"
)
&&
Regular
.
lowerAndUpper
(
s
,
"INTO"
)){
insertList
.
add
(
s
);
continue
;
}
else
if
(
Regular
.
lowerAndUpper
(
s
,
"FOREIGN"
)
&&
Regular
.
lowerAndUpper
(
s
,
"KEY"
)){
elseList
.
add
(
s
);
continue
;
}
else
if
(
Regular
.
lowerAndUpper
(
s
,
"CREATE"
)
&&
Regular
.
lowerAndUpper
(
s
,
"INDEX"
)){
elseList
.
add
(
s
);
continue
;
}
sql
+=
s
;
if
(
s
.
contains
(
";"
)){
preparedStatement1
=
connection1
.
prepareStatement
(
sql
);
preparedStatement1
.
execute
();
sql
=
""
;
}
}
catch
(
SQLException
e
)
{
log
.
info
(
"sql执行出错语句:"
+
sql
);
sql
=
""
;
e
.
printStackTrace
();
continue
;
}
for
(
String
insert:
insertList
){
SQLExecuteTask
sqlExecuteTask
=
new
SQLExecuteTask
(
connection1
);
sqlExecuteTask
.
setSql
(
insert
);
pool
.
submit
(
sqlExecuteTask
);
}
if
(
pool
.
getCorePoolSize
()
==
0
){
for
(
String
elseChar:
elseList
){
SQLExecuteTask
sqlExecuteTask
=
new
SQLExecuteTask
(
connection1
);
sqlExecuteTask
.
setSql
(
elseChar
);
pool
.
submit
(
sqlExecuteTask
);
}
}
System
.
out
.
println
(
""
);
System
.
out
.
println
(
"sql执行时间为:"
+
(
System
.
currentTimeMillis
()
-
b
));
log
.
info
(
databaseResponse
.
getSqlPath
()
+
"执行完成"
);
}
catch
(
Exception
e
)
{
...
...
@@ -134,7 +161,7 @@ public class DBMigrateServiceImpl implements DBMigrateService {
try
{
bufferedReader
.
close
();
fileReader
.
close
();
preparedStatement1
.
close
();
//
preparedStatement1.close();
connection1
.
close
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
...
...
src/main/java/com/zjty/adaptationmaster/utils/Regular.java
浏览文件 @
15696850
package
com
.
zjty
.
adaptationmaster
.
utils
;
import
com.zjty.adaptationmaster.adaptor.entity.SystemVariable
;
import
com.zjty.adaptationmaster.adaptor.entity.db.DBManage
;
import
com.zjty.adaptationmaster.adaptor.entity.db.RegularReturn
;
import
org.springframework.core.env.Environment
;
import
java.io.*
;
import
java.sql.Connection
;
import
java.sql.DriverManager
;
import
java.sql.SQLException
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.HashMap
;
import
java.util.List
;
public
class
Regular
{
...
...
@@ -290,6 +285,6 @@ public class Regular {
public
static
void
main
(
String
[]
args
)
{
mySqlRegular
(
"C:\\Users\\admin\\Desktop\\database\\
editor.sql"
,
"test5
"
);
mySqlRegular
(
"C:\\Users\\admin\\Desktop\\database\\
new_debug.sql"
,
"new_debug
"
);
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论