Some more refactors
This commit is contained in:
parent
f9f79d11c1
commit
02f42a3412
11
session.go
11
session.go
|
@ -123,9 +123,9 @@ func newSession(engine *Engine) *Session {
|
||||||
autoResetStatement: true,
|
autoResetStatement: true,
|
||||||
prepareStmt: false,
|
prepareStmt: false,
|
||||||
|
|
||||||
afterInsertBeans: make(map[interface{}]*[]func(interface{}), 0),
|
afterInsertBeans: make(map[interface{}]*[]func(interface{})),
|
||||||
afterUpdateBeans: make(map[interface{}]*[]func(interface{}), 0),
|
afterUpdateBeans: make(map[interface{}]*[]func(interface{})),
|
||||||
afterDeleteBeans: make(map[interface{}]*[]func(interface{}), 0),
|
afterDeleteBeans: make(map[interface{}]*[]func(interface{})),
|
||||||
beforeClosures: make([]func(interface{}), 0),
|
beforeClosures: make([]func(interface{}), 0),
|
||||||
afterClosures: make([]func(interface{}), 0),
|
afterClosures: make([]func(interface{}), 0),
|
||||||
afterProcessors: make([]executedProcessor, 0),
|
afterProcessors: make([]executedProcessor, 0),
|
||||||
|
@ -684,13 +684,12 @@ func (session *Session) slice2Bean(scanResults []interface{}, fields []string, b
|
||||||
tempMap[lKey] = idx
|
tempMap[lKey] = idx
|
||||||
|
|
||||||
col, fieldValue, err := session.getField(dataStruct, table, colName, idx)
|
col, fieldValue, err := session.getField(dataStruct, table, colName, idx)
|
||||||
if err != nil {
|
|
||||||
if _, ok := err.(ErrFieldIsNotExist); ok {
|
if _, ok := err.(ErrFieldIsNotExist); ok {
|
||||||
continue
|
continue
|
||||||
} else {
|
} else if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if fieldValue == nil {
|
if fieldValue == nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,85 +0,0 @@
|
||||||
// Copyright 2017 The Xorm Authors. All rights reserved.
|
|
||||||
// Use of this source code is governed by a BSD-style
|
|
||||||
// license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
package xorm
|
|
||||||
|
|
||||||
// Query runs a raw sql and return records as []map[string][]byte
|
|
||||||
func (session *Session) Query(sqlOrArgs ...interface{}) ([]map[string][]byte, error) {
|
|
||||||
if session.isAutoClose {
|
|
||||||
defer session.Close()
|
|
||||||
}
|
|
||||||
|
|
||||||
sqlStr, args, err := session.statement.GenQuerySQL(sqlOrArgs...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
rows, err := session.queryRows(sqlStr, args...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
defer rows.Close()
|
|
||||||
|
|
||||||
return session.engine.scanByteMaps(rows)
|
|
||||||
}
|
|
||||||
|
|
||||||
// QueryString runs a raw sql and return records as []map[string]string
|
|
||||||
func (session *Session) QueryString(sqlOrArgs ...interface{}) ([]map[string]string, error) {
|
|
||||||
if session.isAutoClose {
|
|
||||||
defer session.Close()
|
|
||||||
}
|
|
||||||
|
|
||||||
sqlStr, args, err := session.statement.GenQuerySQL(sqlOrArgs...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
rows, err := session.queryRows(sqlStr, args...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
defer rows.Close()
|
|
||||||
|
|
||||||
return session.engine.ScanStringMaps(rows)
|
|
||||||
}
|
|
||||||
|
|
||||||
// QuerySliceString runs a raw sql and return records as [][]string
|
|
||||||
func (session *Session) QuerySliceString(sqlOrArgs ...interface{}) ([][]string, error) {
|
|
||||||
if session.isAutoClose {
|
|
||||||
defer session.Close()
|
|
||||||
}
|
|
||||||
|
|
||||||
sqlStr, args, err := session.statement.GenQuerySQL(sqlOrArgs...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
rows, err := session.queryRows(sqlStr, args...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
defer rows.Close()
|
|
||||||
|
|
||||||
return session.engine.ScanStringSlices(rows)
|
|
||||||
}
|
|
||||||
|
|
||||||
// QueryInterface runs a raw sql and return records as []map[string]interface{}
|
|
||||||
func (session *Session) QueryInterface(sqlOrArgs ...interface{}) ([]map[string]interface{}, error) {
|
|
||||||
if session.isAutoClose {
|
|
||||||
defer session.Close()
|
|
||||||
}
|
|
||||||
|
|
||||||
sqlStr, args, err := session.statement.GenQuerySQL(sqlOrArgs...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
rows, err := session.queryRows(sqlStr, args...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
defer rows.Close()
|
|
||||||
|
|
||||||
return session.engine.ScanInterfaceMaps(rows)
|
|
||||||
}
|
|
|
@ -71,6 +71,86 @@ func (session *Session) queryRow(sqlStr string, args ...interface{}) *core.Row {
|
||||||
return core.NewRow(session.queryRows(sqlStr, args...))
|
return core.NewRow(session.queryRows(sqlStr, args...))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Query runs a raw sql and return records as []map[string][]byte
|
||||||
|
func (session *Session) Query(sqlOrArgs ...interface{}) ([]map[string][]byte, error) {
|
||||||
|
if session.isAutoClose {
|
||||||
|
defer session.Close()
|
||||||
|
}
|
||||||
|
|
||||||
|
sqlStr, args, err := session.statement.GenQuerySQL(sqlOrArgs...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
rows, err := session.queryRows(sqlStr, args...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
|
||||||
|
return session.engine.scanByteMaps(rows)
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryString runs a raw sql and return records as []map[string]string
|
||||||
|
func (session *Session) QueryString(sqlOrArgs ...interface{}) ([]map[string]string, error) {
|
||||||
|
if session.isAutoClose {
|
||||||
|
defer session.Close()
|
||||||
|
}
|
||||||
|
|
||||||
|
sqlStr, args, err := session.statement.GenQuerySQL(sqlOrArgs...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
rows, err := session.queryRows(sqlStr, args...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
|
||||||
|
return session.engine.ScanStringMaps(rows)
|
||||||
|
}
|
||||||
|
|
||||||
|
// QuerySliceString runs a raw sql and return records as [][]string
|
||||||
|
func (session *Session) QuerySliceString(sqlOrArgs ...interface{}) ([][]string, error) {
|
||||||
|
if session.isAutoClose {
|
||||||
|
defer session.Close()
|
||||||
|
}
|
||||||
|
|
||||||
|
sqlStr, args, err := session.statement.GenQuerySQL(sqlOrArgs...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
rows, err := session.queryRows(sqlStr, args...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
|
||||||
|
return session.engine.ScanStringSlices(rows)
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryInterface runs a raw sql and return records as []map[string]interface{}
|
||||||
|
func (session *Session) QueryInterface(sqlOrArgs ...interface{}) ([]map[string]interface{}, error) {
|
||||||
|
if session.isAutoClose {
|
||||||
|
defer session.Close()
|
||||||
|
}
|
||||||
|
|
||||||
|
sqlStr, args, err := session.statement.GenQuerySQL(sqlOrArgs...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
rows, err := session.queryRows(sqlStr, args...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
|
||||||
|
return session.engine.ScanInterfaceMaps(rows)
|
||||||
|
}
|
||||||
|
|
||||||
func (session *Session) exec(sqlStr string, args ...interface{}) (sql.Result, error) {
|
func (session *Session) exec(sqlStr string, args ...interface{}) (sql.Result, error) {
|
||||||
defer session.resetStatement()
|
defer session.resetStatement()
|
||||||
|
|
||||||
|
|
|
@ -70,12 +70,12 @@ func (session *Session) SumInt(bean interface{}, columnName string) (res int64,
|
||||||
|
|
||||||
// Sums call sum some columns. bean's non-empty fields are conditions.
|
// Sums call sum some columns. bean's non-empty fields are conditions.
|
||||||
func (session *Session) Sums(bean interface{}, columnNames ...string) ([]float64, error) {
|
func (session *Session) Sums(bean interface{}, columnNames ...string) ([]float64, error) {
|
||||||
var res = make([]float64, len(columnNames), len(columnNames))
|
var res = make([]float64, len(columnNames))
|
||||||
return res, session.sum(&res, bean, columnNames...)
|
return res, session.sum(&res, bean, columnNames...)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SumsInt sum specify columns and return as []int64 instead of []float64
|
// SumsInt sum specify columns and return as []int64 instead of []float64
|
||||||
func (session *Session) SumsInt(bean interface{}, columnNames ...string) ([]int64, error) {
|
func (session *Session) SumsInt(bean interface{}, columnNames ...string) ([]int64, error) {
|
||||||
var res = make([]int64, len(columnNames), len(columnNames))
|
var res = make([]int64, len(columnNames))
|
||||||
return res, session.sum(&res, bean, columnNames...)
|
return res, session.sum(&res, bean, columnNames...)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue