From a95dfa392106b1134bff9b96047eff67257d12b4 Mon Sep 17 00:00:00 2001 From: "tab.zhang" Date: Thu, 21 Mar 2019 11:41:23 +0800 Subject: [PATCH] add show only INSERT UPDATE DELETE SQLs --- engine.go | 9 +++++++++ session.go | 3 ++- session_delete.go | 2 +- session_insert.go | 4 ++-- session_raw.go | 6 ++++++ session_update.go | 2 +- 6 files changed, 21 insertions(+), 5 deletions(-) diff --git a/engine.go b/engine.go index d959d01f..f5b3c4a6 100644 --- a/engine.go +++ b/engine.go @@ -38,6 +38,7 @@ type Engine struct { Cacher core.Cacher showSQL bool + showCUDSQL bool showExecTime bool logger core.ILogger @@ -96,12 +97,16 @@ func (engine *Engine) CondDeleted(colName string) builder.Cond { } // ShowSQL show SQL statement or not on logger if log level is great than INFO +// Show[1] show SQL only INSERT UPDATE and DELETE. func (engine *Engine) ShowSQL(show ...bool) { engine.logger.ShowSQL(show...) if len(show) == 0 { engine.showSQL = true } else { engine.showSQL = show[0] + if len(show) > 1 { + engine.showCUDSQL = show[1] + } } } @@ -1372,6 +1377,7 @@ func (engine *Engine) QueryInterface(sqlorArgs ...interface{}) ([]map[string]int func (engine *Engine) Insert(beans ...interface{}) (int64, error) { session := engine.NewSession() defer session.Close() + session.isCUD = true return session.Insert(beans...) } @@ -1379,6 +1385,7 @@ func (engine *Engine) Insert(beans ...interface{}) (int64, error) { func (engine *Engine) InsertOne(bean interface{}) (int64, error) { session := engine.NewSession() defer session.Close() + session.isCUD = true return session.InsertOne(bean) } @@ -1391,6 +1398,7 @@ func (engine *Engine) InsertOne(bean interface{}) (int64, error) { func (engine *Engine) Update(bean interface{}, condiBeans ...interface{}) (int64, error) { session := engine.NewSession() defer session.Close() + session.isCUD = true return session.Update(bean, condiBeans...) } @@ -1398,6 +1406,7 @@ func (engine *Engine) Update(bean interface{}, condiBeans ...interface{}) (int64 func (engine *Engine) Delete(bean interface{}) (int64, error) { session := engine.NewSession() defer session.Close() + session.isCUD = true return session.Delete(bean) } diff --git a/session.go b/session.go index 3775eb01..36b16a64 100644 --- a/session.go +++ b/session.go @@ -51,7 +51,8 @@ type Session struct { lastSQL string lastSQLArgs []interface{} - err error + err error + isCUD bool } // Clone copy all the session's content and return a new session diff --git a/session_delete.go b/session_delete.go index d9cf3ea9..fac92ad5 100644 --- a/session_delete.go +++ b/session_delete.go @@ -78,7 +78,7 @@ func (session *Session) Delete(bean interface{}) (int64, error) { if session.isAutoClose { defer session.Close() } - + session.isCUD = true if err := session.statement.setRefBean(bean); err != nil { return 0, err } diff --git a/session_insert.go b/session_insert.go index 2ea58fda..d0202dfa 100644 --- a/session_insert.go +++ b/session_insert.go @@ -18,7 +18,7 @@ import ( func (session *Session) Insert(beans ...interface{}) (int64, error) { var affected int64 var err error - + session.isCUD = true if session.isAutoClose { defer session.Close() } @@ -517,7 +517,7 @@ func (session *Session) InsertOne(bean interface{}) (int64, error) { if session.isAutoClose { defer session.Close() } - + session.isCUD = true return session.innerInsert(bean) } diff --git a/session_raw.go b/session_raw.go index 47823d67..c9a7241a 100644 --- a/session_raw.go +++ b/session_raw.go @@ -172,6 +172,12 @@ func (session *Session) exec(sqlStr string, args ...interface{}) (sql.Result, er session.engine.logger.Infof("[SQL] %v", sqlStr) } } + } else if session.engine.showCUDSQL && session.isCUD { + if len(args) > 0 { + session.engine.logger.Infof("[SQL] %v %#v", sqlStr, args) + } else { + session.engine.logger.Infof("[SQL] %v", sqlStr) + } } if !session.isAutoCommit { diff --git a/session_update.go b/session_update.go index 42dfaacd..442aaf0f 100644 --- a/session_update.go +++ b/session_update.go @@ -146,7 +146,7 @@ func (session *Session) Update(bean interface{}, condiBean ...interface{}) (int6 if session.isAutoClose { defer session.Close() } - + session.isCUD = true v := rValue(bean) t := v.Type()