forked from p81075629/datagear
SQL工作台:执行日志添加更新SQL的影响行数信息
This commit is contained in:
parent
7736dde45f
commit
8a26dfe49e
|
@ -11,6 +11,7 @@ import org.cometd.server.AbstractService;
|
|||
import org.datagear.web.OperationMessage;
|
||||
import org.datagear.web.sqlpad.SqlpadExecutionService.SQLExecutionStat;
|
||||
import org.datagear.web.sqlpad.SqlpadExecutionService.SqlCommand;
|
||||
import org.datagear.web.sqlpad.SqlpadExecutionService.SqlResultType;
|
||||
import org.datagear.web.util.SqlScriptParser.SqlStatement;
|
||||
|
||||
/**
|
||||
|
@ -45,9 +46,28 @@ public class SqlpadCometdService extends AbstractService
|
|||
* @param sqlStatement
|
||||
* @param sqlStatementCount
|
||||
*/
|
||||
public void sendSuccessMessage(ServerChannel channel, SqlStatement sqlStatement, int sqlStatementIndex)
|
||||
public void sendExecuteSQLSuccessMessage(ServerChannel channel, SqlStatement sqlStatement, int sqlStatementIndex)
|
||||
{
|
||||
channel.publish(getServerSession(), new SqlSuccessMessageData(sqlStatement, sqlStatementIndex));
|
||||
channel.publish(getServerSession(),
|
||||
new SqlSuccessMessageData(sqlStatement, sqlStatementIndex, SqlResultType.NONE));
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送SQL执行成功消息。
|
||||
*
|
||||
* @param channel
|
||||
* @param sqlStatement
|
||||
* @param sqlStatementIndex
|
||||
* @param updateCount
|
||||
*/
|
||||
public void sendExecuteSQLSuccessMessage(ServerChannel channel, SqlStatement sqlStatement, int sqlStatementIndex,
|
||||
int updateCount)
|
||||
{
|
||||
SqlSuccessMessageData sqlSuccessMessageData = new SqlSuccessMessageData(sqlStatement, sqlStatementIndex,
|
||||
SqlResultType.UPDATE_COUNT);
|
||||
sqlSuccessMessageData.setUpdateCount(updateCount);
|
||||
|
||||
channel.publish(getServerSession(), sqlSuccessMessageData);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -277,16 +297,23 @@ public class SqlpadCometdService extends AbstractService
|
|||
/** SQL语句索引 */
|
||||
private int sqlStatementIndex;
|
||||
|
||||
/** SQL结果类型 */
|
||||
private SqlResultType sqlResultType = SqlResultType.NONE;
|
||||
|
||||
/** 更新数目 */
|
||||
private int updateCount = -1;
|
||||
|
||||
public SqlSuccessMessageData()
|
||||
{
|
||||
super(TYPE);
|
||||
}
|
||||
|
||||
public SqlSuccessMessageData(SqlStatement sqlStatement, int sqlStatementIndex)
|
||||
public SqlSuccessMessageData(SqlStatement sqlStatement, int sqlStatementIndex, SqlResultType sqlResultType)
|
||||
{
|
||||
super(TYPE);
|
||||
this.sqlStatement = sqlStatement;
|
||||
this.sqlStatementIndex = sqlStatementIndex;
|
||||
this.sqlResultType = sqlResultType;
|
||||
}
|
||||
|
||||
public SqlStatement getSqlStatement()
|
||||
|
@ -308,6 +335,26 @@ public class SqlpadCometdService extends AbstractService
|
|||
{
|
||||
this.sqlStatementIndex = sqlStatementIndex;
|
||||
}
|
||||
|
||||
public SqlResultType getSqlResultType()
|
||||
{
|
||||
return sqlResultType;
|
||||
}
|
||||
|
||||
public void setSqlResultType(SqlResultType sqlResultType)
|
||||
{
|
||||
this.sqlResultType = sqlResultType;
|
||||
}
|
||||
|
||||
public int getUpdateCount()
|
||||
{
|
||||
return updateCount;
|
||||
}
|
||||
|
||||
public void setUpdateCount(int updateCount)
|
||||
{
|
||||
this.updateCount = updateCount;
|
||||
}
|
||||
}
|
||||
|
||||
protected static class ExceptionMessageData extends MessageData
|
||||
|
|
|
@ -406,11 +406,8 @@ public class SqlpadExecutionService
|
|||
|
||||
try
|
||||
{
|
||||
execute(cn, st, sqlStatement.getSql());
|
||||
|
||||
execute(cn, st, sqlStatement, i);
|
||||
sqlExecutionStat.increaseSuccessCount();
|
||||
|
||||
this.sqlpadCometdService.sendSuccessMessage(_sqlpadServerChannel, sqlStatement, i);
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
|
@ -612,11 +609,35 @@ public class SqlpadExecutionService
|
|||
* @param sql
|
||||
* @throws SQLException
|
||||
*/
|
||||
protected void execute(Connection cn, Statement st, String sql) throws SQLException
|
||||
protected void execute(Connection cn, Statement st, SqlStatement sqlStatement, int sqlStatementIndex)
|
||||
throws SQLException
|
||||
{
|
||||
// TODO 执行SQL
|
||||
boolean isResultSet = st.execute(sqlStatement.getSql());
|
||||
|
||||
st.execute(sql);
|
||||
// 查询操作
|
||||
if (isResultSet)
|
||||
{
|
||||
// TODO 处理查询操作
|
||||
this.sqlpadCometdService.sendExecuteSQLSuccessMessage(this._sqlpadServerChannel, sqlStatement,
|
||||
sqlStatementIndex);
|
||||
}
|
||||
else
|
||||
{
|
||||
int updateCount = st.getUpdateCount();
|
||||
|
||||
// 更新操作
|
||||
if (updateCount > -1)
|
||||
{
|
||||
this.sqlpadCometdService.sendExecuteSQLSuccessMessage(this._sqlpadServerChannel, sqlStatement,
|
||||
sqlStatementIndex, updateCount);
|
||||
}
|
||||
// 其他操作
|
||||
else
|
||||
{
|
||||
this.sqlpadCometdService.sendExecuteSQLSuccessMessage(this._sqlpadServerChannel, sqlStatement,
|
||||
sqlStatementIndex);
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
|
@ -801,4 +822,22 @@ public class SqlpadExecutionService
|
|||
/** 停止 */
|
||||
STOP
|
||||
}
|
||||
|
||||
/**
|
||||
* SQL执行结果类型。
|
||||
*
|
||||
* @author datagear@163.com
|
||||
*
|
||||
*/
|
||||
public static enum SqlResultType
|
||||
{
|
||||
/** 结果集 */
|
||||
RESULT_SET,
|
||||
|
||||
/** 更新数目 */
|
||||
UPDATE_COUNT,
|
||||
|
||||
/** 无结果 */
|
||||
NONE
|
||||
}
|
||||
}
|
||||
|
|
|
@ -379,4 +379,5 @@ sqlpad.sqlExecutionStat.infoNoDuration=SQL\u603B\u8BA1{0}\u6761\uFF0C\u6210\u529
|
|||
sqlpad.sqlExecutionStat.infoSuffixDuration.H.M=\uFF0C\u7528\u65F6{0}\u5C0F\u65F6{1}\u5206
|
||||
sqlpad.sqlExecutionStat.infoSuffixDuration.M.S=\uFF0C\u7528\u65F6{0}\u5206{1}\u79D2
|
||||
sqlpad.sqlExecutionStat.infoSuffixDuration.S.MS=\uFF0C\u7528\u65F6{0}\u79D2{1}\u6BEB\u79D2
|
||||
sqlpad.sqlExecutionStat.infoSuffixDuration.MS=\uFF0C\u7528\u65F6{0}\u6BEB\u79D2
|
||||
sqlpad.sqlExecutionStat.infoSuffixDuration.MS=\uFF0C\u7528\u65F6{0}\u6BEB\u79D2
|
||||
sqlpad.affectDataRowCount=\u5F71\u54CD\u4E86 {0} \u884C\u6570\u636E
|
|
@ -215,7 +215,7 @@ select count(*) from t_order where id = 3 and name = 'jack';
|
|||
return;
|
||||
|
||||
$("<span class='sql-index'>["+(sqlStatementIndex + 1)+"]</span>").appendTo($msgContent);
|
||||
var $sqlValue = $("<span class='sql-value' />").text($.truncateIf(sqlStatement.sql, "...", 38)).appendTo($msgContent);
|
||||
var $sqlValue = $("<span class='sql-value' />").text($.truncateIf(sqlStatement.sql, "...", 100)).appendTo($msgContent);
|
||||
|
||||
<#assign messageArgs=['"+(sqlStatement.startRow+1)+"', '"+sqlStatement.startColumn+"', '"+(sqlStatement.endRow+1)+"', '"+sqlStatement.endColumn+"'] />
|
||||
$sqlValue.attr("title", "<@spring.messageArgs code='sqlpad.executionSqlselectionRange' args=messageArgs />");
|
||||
|
@ -300,6 +300,19 @@ select count(*) from t_order where id = 3 and name = 'jack';
|
|||
$msgDiv.addClass("execution-success");
|
||||
|
||||
po.appendSqlStatementMessage($msgContent, msgData.sqlStatement, msgData.sqlStatementIndex);
|
||||
|
||||
if(msgData.sqlResultType = "UPDATE_COUNT")
|
||||
{
|
||||
<#assign messageArgs=['"+msgData.updateCount+"'] />
|
||||
$("<span class='sql-update-count' />").text("<@spring.messageArgs code='sqlpad.affectDataRowCount' args=messageArgs />")
|
||||
.appendTo($msgContent);
|
||||
}
|
||||
else if(msgData.sqlResultType = "RESULT_SET")
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
;
|
||||
}
|
||||
else if(msgDataType == "SQLEXCEPTION")
|
||||
{
|
||||
|
|
|
@ -1360,6 +1360,13 @@ table.dataTable tbody tr .column-check .row-data-state .ui-icon{
|
|||
.page-sqlpad .content .content-result .execution-message .message-content span{
|
||||
margin-right: 0.41em;
|
||||
}
|
||||
.page-sqlpad .content .content-result .execution-message .message-content .sql-value{
|
||||
display: inline-block;
|
||||
width: 30%;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
.page-sqlpad .foot{
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
|
|
Loading…
Reference in New Issue