Skip to content

Commit e7a750e

Browse files
author
core-lib
committed
脚本执行
1 parent 0d4a68a commit e7a750e

File tree

3 files changed

+30
-10
lines changed

3 files changed

+30
-10
lines changed

src/main/java/io/sqlman/SqlVersion.java

+9
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public class SqlVersion {
1919
private Integer rowEffected;
2020
private Integer errorCode;
2121
private String errorState;
22+
private String errorMessage;
2223
private Timestamp timeExecuted;
2324

2425
public Integer getId() {
@@ -93,6 +94,14 @@ public void setErrorState(String errorState) {
9394
this.errorState = errorState;
9495
}
9596

97+
public String getErrorMessage() {
98+
return errorMessage;
99+
}
100+
101+
public void setErrorMessage(String errorMessage) {
102+
this.errorMessage = errorMessage;
103+
}
104+
96105
public Timestamp getTimeExecuted() {
97106
return timeExecuted;
98107
}

src/main/java/io/sqlman/dialect/MySQLDialect.java

+16-9
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public void install(Connection connection, SqlConfig config) throws SQLException
3232
ddl.append(" `row_effected` int(11) NOT NULL COMMENT '影响行数',");
3333
ddl.append(" `error_code` int(11) NOT NULL COMMENT '错误代码',");
3434
ddl.append(" `error_state` varchar(255) NOT NULL COMMENT '错误状态',");
35+
ddl.append(" `error_message` varchar(255) NOT NULL COMMENT '错误信息',");
3536
ddl.append(" `time_executed` timestamp NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '执行时间',");
3637
ddl.append(" PRIMARY KEY (`id`),");
3738
ddl.append(" UNIQUE KEY `UK_").append(name).append("_version_ordinal` (`version`,`ordinal`) USING BTREE");
@@ -54,6 +55,7 @@ public SqlVersion status(Connection connection, SqlConfig config) throws SQLExce
5455
dql.append(" s.row_effected AS rowEffected,");
5556
dql.append(" s.error_code AS errorCode,");
5657
dql.append(" s.error_state AS errorState,");
58+
dql.append(" s.error_message AS errorMessage,");
5759
dql.append(" s.time_executed AS timeExecuted");
5860
dql.append(" FROM");
5961
dql.append(" ").append(name).append(" AS s");
@@ -79,6 +81,7 @@ public SqlVersion status(Connection connection, SqlConfig config) throws SQLExce
7981
version.setRowEffected(result.getInt("rowEffected"));
8082
version.setErrorCode(result.getInt("errorCode"));
8183
version.setErrorState(result.getString("errorState"));
84+
version.setErrorMessage(result.getString("errorMessage"));
8285
version.setTimeExecuted(result.getTimestamp("timeExecuted"));
8386

8487
return version;
@@ -97,17 +100,19 @@ public int upgrade(Connection connection, SqlConfig config, SqlVersion version)
97100
dml.append(" row_effected,");
98101
dml.append(" error_code,");
99102
dml.append(" error_state,");
103+
dml.append(" error_message,");
100104
dml.append(" time_executed");
101105
dml.append(" )");
102106
dml.append(" VALUES");
103-
dml.append(" (?, ?, ?, ?, ?, ?, ?, ?, ?)");
107+
dml.append(" (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
104108
dml.append(" ON DUPLICATE KEY UPDATE");
105109
dml.append(" description = ?,");
106110
dml.append(" sql_quantity = ?,");
107111
dml.append(" success = ?,");
108112
dml.append(" row_effected = ?,");
109113
dml.append(" error_code = ?,");
110114
dml.append(" error_state = ?,");
115+
dml.append(" error_message = ?,");
111116
dml.append(" time_executed = ?");
112117

113118
PreparedStatement statement = connection.prepareStatement(dml.toString());
@@ -119,14 +124,16 @@ public int upgrade(Connection connection, SqlConfig config, SqlVersion version)
119124
statement.setInt(6, version.getRowEffected());
120125
statement.setInt(7, version.getErrorCode());
121126
statement.setString(8, Sqls.truncate(version.getErrorState(), 255));
122-
statement.setTimestamp(9, version.getTimeExecuted());
123-
statement.setString(10, Sqls.truncate(version.getDescription(), 128));
124-
statement.setInt(11, version.getSqlQuantity());
125-
statement.setBoolean(12, version.getSuccess());
126-
statement.setInt(13, version.getRowEffected());
127-
statement.setInt(14, version.getErrorCode());
128-
statement.setString(15, Sqls.truncate(version.getErrorState(), 255));
129-
statement.setTimestamp(16, version.getTimeExecuted());
127+
statement.setString(9, Sqls.truncate(version.getErrorMessage(), 255));
128+
statement.setTimestamp(10, version.getTimeExecuted());
129+
statement.setString(11, Sqls.truncate(version.getDescription(), 128));
130+
statement.setInt(12, version.getSqlQuantity());
131+
statement.setBoolean(13, version.getSuccess());
132+
statement.setInt(14, version.getRowEffected());
133+
statement.setInt(15, version.getErrorCode());
134+
statement.setString(16, Sqls.truncate(version.getErrorState(), 255));
135+
statement.setString(17, Sqls.truncate(version.getErrorMessage(), 255));
136+
statement.setTimestamp(18, version.getTimeExecuted());
130137

131138
return statement.executeUpdate();
132139
}

src/main/java/io/sqlman/executor/BasicExecutor.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,8 @@ private void upgrade(SqlScript script, int ordinal) throws Exception {
9090
boolean success = false;
9191
int rowEffected = 0;
9292
int errorCode = 0;
93-
String errorState = "";
93+
String errorState = null;
94+
String errorMessage = null;
9495
Timestamp dateExecuted = new Timestamp(System.currentTimeMillis());
9596
Connection connection = null;
9697
try {
@@ -105,13 +106,15 @@ private void upgrade(SqlScript script, int ordinal) throws Exception {
105106
}
106107
errorCode = e.getErrorCode();
107108
errorState = e.getSQLState();
109+
errorMessage = e.getMessage();
108110
throw e;
109111
} catch (Exception e) {
110112
if (connection != null) {
111113
connection.rollback();
112114
}
113115
errorCode = -1;
114116
errorState = e.getMessage();
117+
errorMessage = e.getMessage();
115118
} finally {
116119
if (connection != null) {
117120
connection.close();
@@ -125,6 +128,7 @@ private void upgrade(SqlScript script, int ordinal) throws Exception {
125128
version.setRowEffected(rowEffected);
126129
version.setErrorCode(errorCode);
127130
version.setErrorState(errorState);
131+
version.setErrorMessage(errorMessage);
128132
version.setTimeExecuted(dateExecuted);
129133
record(version);
130134
}

0 commit comments

Comments
 (0)