提交 01e2c251 authored 作者: zhangshuang's avatar zhangshuang

zs

上级 131d9445
......@@ -152,6 +152,11 @@
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.5</version>
</dependency>
</dependencies>
<build>
......
......@@ -11,5 +11,5 @@ import java.util.List;
@Data
public class DBNameReturn {
List<String> dbName;
Integer status;//连接状态1-连接0-未连接
Integer status;//连接状态1-开启 0-关闭
}
......@@ -157,8 +157,12 @@ public class DBMigrateServiceImpl implements DBMigrateService {
createTableSql += create;
}
}
preparedStatement1 = connection1.prepareStatement(createTableSql);
preparedStatement1.execute();
try {
preparedStatement1 = connection1.prepareStatement(createTableSql);
preparedStatement1.execute();
}catch (Exception e){
return ServerResponse.error("创建表出错");
}
//数据插入
if(insertList != null && insertList.size() != 0){
for(String insert:insertList){
......@@ -193,8 +197,12 @@ public class DBMigrateServiceImpl implements DBMigrateService {
elseSql += elseChar;
}
}
preparedStatement1 = connection1.prepareStatement(elseSql);
preparedStatement1.execute();
try {
preparedStatement1 = connection1.prepareStatement(elseSql);
preparedStatement1.execute();
}catch (Exception e){
return ServerResponse.error("执行新建索引和外键的sql语句出错");
}
System.out.println("sql执行时间为:" + (System.currentTimeMillis() - b));
log.info(databaseResponse.getSqlPath() + "执行完成");
} catch (Exception e) {
......@@ -211,7 +219,7 @@ public class DBMigrateServiceImpl implements DBMigrateService {
}
}
}else {
return ServerResponse.error("创建数据库时连接数据库失败");
return ServerResponse.error("创建数据库时连接数据库失败");
}
}
//保存迁移记录到数据库
......@@ -254,9 +262,10 @@ public class DBMigrateServiceImpl implements DBMigrateService {
databaseManagement.setDatabaseName(highgoDBName);
databaseManagement.setDriver(highgoDriver);
databaseManagement.setConnectionType(highgoConnnectionType);
//获取数据库连接
Connection connection = Regular.databaseConnection(databaseManagement);
if (connection != null) {
dbNameReturn.setStatus(1);
dbNameReturn.setStatus(1);//1-库为开启状态
PreparedStatement preparedStatement = null;
try {
String findDB = "select p.datname from pg_database p where p.datistemplate = false;";
......@@ -277,7 +286,7 @@ public class DBMigrateServiceImpl implements DBMigrateService {
}
}
}else {
dbNameReturn.setStatus(0);//未连接
dbNameReturn.setStatus(0);//关闭
}
}
dbNameReturn.setDbName(dbNameList);
......
......@@ -41,6 +41,7 @@ public class Const {
public static Map<String,Long> transferCountMap = new ConcurrentHashMap<>();
public static final String MAVENHOME = "/opt/apache-maven-3.5.4";
public static final String CTLPATH = "/home/taiyuan/桌面/AAS-V9.0/bin/appctl";
//public static final String CTLPATH = "/home/taiyuan/桌面/AAS-V9.0/bin/appctl";
public static final String CTLPATH = "/home/user/AAS-V9.0/bin/appctl.cmd";
public static final String CTLPWD = "Qwert123!@#";
}
......@@ -41,7 +41,7 @@ public class ApusicDeployer {
boolean titleEnd = false;
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
//System.out.println(line);
if(line.contains("---------------")){
titleEnd = true;
continue;
......@@ -74,6 +74,7 @@ public class ApusicDeployer {
}
private void appctl(String command,String webSocketName,String projectName){
try {
System.out.println(command);
Process exec = Runtime.getRuntime().exec(command);
String password = Const.CTLPWD;
OutputStream outputStream = exec.getOutputStream();
......
......@@ -7,10 +7,22 @@ import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
public class Regular {
private static HashMap<String,String> insertRule = new HashMap<>();
private static String[] insertKeys;
private static String[] insertValues;
private static HashMap<String,String> elseRule = new HashMap<>();
/**
* 将mysql导出的.sql文件转为highgo可以识别的.sql文件
* @param path sql文件地址
......@@ -43,17 +55,12 @@ public class Regular {
String createTableSql = "";
boolean createLock = true;
boolean executeOne = true;
setInsertRuleMap();//insert的替换规则
while ((s = bufferedReader.readLine()) != null){
s = s.replaceAll("`","\"");
s += "\r\n";
if(lowerAndUpper(s,"INSERT") && lowerAndUpper(s,"INTO")){
//将\0与\1替换为true或false
s = s.replace("'\\0'","'false'");
s = s.replace("'\\1'","'true'");
s = s.replaceAll("'0000-00-00 00:00:00'","null");
s = s.replace("\\\\","\\");//转义\
s = s.replace("\\\"","\"");//转义"
s = s.replace("\\'","''");//转义'
s = StringUtils.replaceEach(s, insertKeys, insertValues);
bufferedWriter.write(s);
continue;
}
......@@ -212,6 +219,27 @@ public class Regular {
return savePath;
}
/**
* insert的替换规则
*/
public static void setInsertRuleMap(){
//将\0与\1替换为true或false
insertRule.put("'\\0'","'false'");
insertRule.put("'\\1'","'true'");
insertRule.put("'0000-00-00 00:00:00'","null");
insertRule.put("\\\\","\\");
insertRule.put("\\\"","\"");
insertRule.put("\\'","''");
int i = 0;
insertKeys = new String[insertRule.size()];
insertValues = new String[insertRule.size()];
for(Map.Entry<String,String> stringMap:insertRule.entrySet()){
insertKeys[i] = stringMap.getKey();
insertValues[i] = stringMap.getValue();
i++;
}
}
/**
* 判断大写和小写
*/
......@@ -287,8 +315,7 @@ public class Regular {
return null;
}
public static void main(String[] args) {
mySqlRegular("C:\\Users\\admin\\Desktop\\database\\three.sql","three");
mySqlRegular("C:\\Users\\admin\\Desktop\\database\\test10.sql","bserver");
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论