Last active
April 14, 2016 02:12
-
-
Save xigang/587bf6db2995aeea8a15bdfb575f9421 to your computer and use it in GitHub Desktop.
初始化数据库
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| const ( | |
| DBName = "rijin" | |
| Host = "localhost" | |
| User = "root" | |
| Port = 3306 | |
| Password = "wangxigang" | |
| Charset = "utf8" | |
| ) | |
| func initDatabase() (err error) { | |
| db := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=%s", User, Password, Host, Port, DBName, Charset) | |
| engine, err = xorm.NewEngine("mysql", db) | |
| return | |
| } | |
| //事务处理 | |
| import ( | |
| "github.com/go-xorm/xorm" | |
| ) | |
| var ( | |
| engines map[string]*xorm.Engine | |
| ) | |
| func SetXormEngines(engines map[string]*xorm.Engine) { | |
| engines = engines | |
| } | |
| type TranFunc func(session *xorm.Session) (result interface{}, err error) | |
| func DoTransaction(db string, fc TranFunc) (result interface{}, err error) { | |
| session := engines[db].NewSession() | |
| err = session.Begin() | |
| if err != nil { | |
| return | |
| } | |
| isNeedRollBack := true | |
| defer func() { | |
| if isNeedRollBack { | |
| err = session.Rollback() | |
| if err != nil { | |
| return | |
| } | |
| } | |
| }() | |
| result, err = fc(session) | |
| if err != nil { | |
| return | |
| } | |
| err = session.Commit() | |
| if err != nil { | |
| return | |
| } | |
| isNeedRollBack = false | |
| return | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment