some bug fixed and some function deprecated
This commit is contained in:
parent
0d7fdfb5bf
commit
e68c855ee3
|
@ -0,0 +1,19 @@
|
|||
package xorm
|
||||
|
||||
// all content in this file will be removed from xorm some times after
|
||||
|
||||
// @deprecation : please use NewSession instead
|
||||
func (engine *Engine) MakeSession() (Session, error) {
|
||||
s, err := engine.NewSession()
|
||||
if err == nil {
|
||||
return *s, err
|
||||
} else {
|
||||
return Session{}, err
|
||||
}
|
||||
}
|
||||
|
||||
// @deprecation : please use NewEngine instead
|
||||
func Create(driverName string, dataSourceName string) Engine {
|
||||
engine := NewEngine(driverName, dataSourceName)
|
||||
return *engine
|
||||
}
|
24
engine.go
24
engine.go
|
@ -50,17 +50,25 @@ func (e *Engine) OpenDB() (*sql.DB, error) {
|
|||
return sql.Open(e.DriverName, e.DataSourceName)
|
||||
}
|
||||
|
||||
func (engine *Engine) MakeSession() (session Session, err error) {
|
||||
func (engine *Engine) NewSession() (session *Session, err error) {
|
||||
db, err := engine.OpenDB()
|
||||
if err != nil {
|
||||
return Session{}, err
|
||||
return nil, err
|
||||
}
|
||||
|
||||
session = Session{Engine: engine, Db: db}
|
||||
session = &Session{Engine: engine, Db: db}
|
||||
session.Init()
|
||||
return
|
||||
}
|
||||
|
||||
func (engine *Engine) Test() error {
|
||||
session, err := engine.NewSession()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return session.Db.Ping()
|
||||
}
|
||||
|
||||
func (engine *Engine) Where(querystring string, args ...interface{}) *Engine {
|
||||
engine.Statement.Where(querystring, args...)
|
||||
return engine
|
||||
|
@ -260,9 +268,15 @@ func (e *Engine) DropAll() error {
|
|||
|
||||
func (e *Engine) CreateTables(beans ...interface{}) error {
|
||||
session, err := e.MakeSession()
|
||||
session.Begin()
|
||||
session.Statement = e.Statement
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer session.Close()
|
||||
err = session.Begin()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
session.Statement = e.Statement
|
||||
defer e.Statement.Init()
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
|
@ -88,14 +88,16 @@ func (session *Session) Having(conditions string) *Session {
|
|||
|
||||
func (session *Session) Begin() error {
|
||||
if session.IsAutoCommit {
|
||||
tx, err := session.Db.Begin()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
session.IsAutoCommit = false
|
||||
session.IsCommitedOrRollbacked = false
|
||||
tx, err := session.Db.Begin()
|
||||
session.Tx = tx
|
||||
if session.Engine.ShowSQL {
|
||||
fmt.Println("BEGIN TRANSACTION")
|
||||
}
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
6
xorm.go
6
xorm.go
|
@ -4,12 +4,12 @@ import (
|
|||
"reflect"
|
||||
)
|
||||
|
||||
func Create(driverName string, dataSourceName string) Engine {
|
||||
engine := Engine{ShowSQL: false, DriverName: driverName, Mapper: SnakeMapper{},
|
||||
func NewEngine(driverName string, dataSourceName string) *Engine {
|
||||
engine := &Engine{ShowSQL: false, DriverName: driverName, Mapper: SnakeMapper{},
|
||||
DataSourceName: dataSourceName}
|
||||
|
||||
engine.Tables = make(map[reflect.Type]Table)
|
||||
engine.Statement.Engine = &engine
|
||||
engine.Statement.Engine = engine
|
||||
engine.InsertMany = true
|
||||
engine.TagIdentifier = "xorm"
|
||||
if driverName == SQLITE {
|
||||
|
|
Loading…
Reference in New Issue