some bug fixed and some function deprecated

This commit is contained in:
Lunny Xiao 2013-06-12 21:51:39 +08:00
parent 0d7fdfb5bf
commit e68c855ee3
4 changed files with 45 additions and 10 deletions

19
deprecated.go Normal file
View File

@ -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
}

View File

@ -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

View File

@ -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
}

View File

@ -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 {