本文整理汇总了Golang中github.com/go-xorm/xorm.Engine类的典型用法代码示例。如果您正苦于以下问题:Golang Engine类的具体用法?Golang Engine怎么用?Golang Engine使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Engine类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: CleanDB
func CleanDB(x *xorm.Engine) {
if x.DriverName() == "postgres" {
sess := x.NewSession()
defer sess.Close()
if _, err := sess.Exec("DROP SCHEMA public CASCADE;"); err != nil {
panic("Failed to drop schema public")
}
if _, err := sess.Exec("CREATE SCHEMA public;"); err != nil {
panic("Failed to create schema public")
}
} else if x.DriverName() == "mysql" {
tables, _ := x.DBMetas()
sess := x.NewSession()
defer sess.Close()
for _, table := range tables {
if _, err := sess.Exec("set foreign_key_checks = 0"); err != nil {
panic("failed to disable foreign key checks")
}
if _, err := sess.Exec("drop table " + table.Name + " ;"); err != nil {
panic(fmt.Sprintf("failed to delete table: %v, err: %v", table.Name, err))
}
if _, err := sess.Exec("set foreign_key_checks = 1"); err != nil {
panic("failed to disable foreign key checks")
}
}
}
}
开发者ID:Robin7Ma,项目名称:grafana,代码行数:30,代码来源:sqlutil.go
示例2: createMultiTables
func createMultiTables(engine *xorm.Engine, t *testing.T) {
session := engine.NewSession()
defer session.Close()
user := &Userinfo{}
err := session.Begin()
if err != nil {
t.Error(err)
panic(err)
}
for i := 0; i < 10; i++ {
tableName := fmt.Sprintf("user_%v", i)
err = session.DropTable(tableName)
if err != nil {
session.Rollback()
t.Error(err)
panic(err)
}
err = session.Table(tableName).CreateTable(user)
if err != nil {
session.Rollback()
t.Error(err)
panic(err)
}
}
err = session.Commit()
if err != nil {
t.Error(err)
panic(err)
}
}
开发者ID:gotokatsuya,项目名称:tests,代码行数:33,代码来源:testMeta.go
示例3: GetCustomers
func GetCustomers(ctx *macaron.Context, x *xorm.Engine) {
m, _ := url.ParseQuery(ctx.Req.URL.RawQuery)
glog.V(1).Infof("Debug %#v", m)
skip := 0
limit := 0
var err error
if v, ok := m["skip"]; ok {
skip, _ = strconv.Atoi(v[0])
}
if v, ok := m["limit"]; ok {
limit, _ = strconv.Atoi(v[0])
}
cs := make([]Customer, 0)
err = x.Limit(limit, skip).Find(&cs)
if err != nil {
glog.V(1).Infof("Get customer from db fail:%s", err.Error())
ctx.JSON(http.StatusInternalServerError, map[string]string{"message": err.Error()})
return
}
ctx.JSON(http.StatusOK, cs)
}
开发者ID:renhuiyang,项目名称:macaron_xorm_shoppingweb_practise,代码行数:25,代码来源:customerController.go
示例4: DbTx
func DbTx(engine *xorm.Engine, f interface{}) bool {
session := engine.NewSession()
defer session.Close()
err := session.Begin()
if err != nil {
log.Println(err)
return false
}
err = Executor((f.(func(*xorm.Session) error))).Run(session)
if err != nil {
log.Println(err)
session.Rollback()
return false
}
err = session.Commit()
if err != nil {
log.Println(err)
return false
}
return true
}
开发者ID:springCat,项目名称:go_utils,代码行数:26,代码来源:tx.go
示例5: NewTestEngine
func NewTestEngine(x *xorm.Engine) (err error) {
switch DbCfg.Type {
case "mysql":
x, err = xorm.NewEngine("mysql", fmt.Sprintf("%s:%[email protected](%s)/%s?charset=utf8",
DbCfg.User, DbCfg.Pwd, DbCfg.Host, DbCfg.Name))
case "postgres":
var host, port = "127.0.0.1", "5432"
fields := strings.Split(DbCfg.Host, ":")
if len(fields) > 0 && len(strings.TrimSpace(fields[0])) > 0 {
host = fields[0]
}
if len(fields) > 1 && len(strings.TrimSpace(fields[1])) > 0 {
port = fields[1]
}
cnnstr := fmt.Sprintf("user=%s password=%s host=%s port=%s dbname=%s sslmode=%s",
DbCfg.User, DbCfg.Pwd, host, port, DbCfg.Name, DbCfg.SslMode)
//fmt.Println(cnnstr)
x, err = xorm.NewEngine("postgres", cnnstr)
case "sqlite3":
if !EnableSQLite3 {
return fmt.Errorf("Unknown database type: %s", DbCfg.Type)
}
os.MkdirAll(path.Dir(DbCfg.Path), os.ModePerm)
x, err = xorm.NewEngine("sqlite3", DbCfg.Path)
default:
return fmt.Errorf("Unknown database type: %s", DbCfg.Type)
}
if err != nil {
return fmt.Errorf("models.init(fail to conntect database): %v", err)
}
return x.Sync(tables...)
}
开发者ID:jcfrank,项目名称:gogs,代码行数:32,代码来源:models.go
示例6: OrmRegModels
func OrmRegModels(eng *xorm.Engine) {
err := eng.Sync(new(WalletDbT))
if err != nil {
logmodels.Logger.Info(logmodels.SPrintError("Database Table", "XORM Engine Sync is err %v", err))
panic(1)
}
}
开发者ID:Ledgercn,项目名称:go-LumenFederation,代码行数:7,代码来源:databasetable.go
示例7: testIndexAndUnique
func testIndexAndUnique(engine *xorm.Engine, t *testing.T) {
err := engine.CreateTables(&IndexOrUnique{})
if err != nil {
t.Error(err)
//panic(err)
}
err = engine.DropTables(&IndexOrUnique{})
if err != nil {
t.Error(err)
//panic(err)
}
err = engine.CreateTables(&IndexOrUnique{})
if err != nil {
t.Error(err)
//panic(err)
}
err = engine.CreateIndexes(&IndexOrUnique{})
if err != nil {
t.Error(err)
//panic(err)
}
err = engine.CreateUniques(&IndexOrUnique{})
if err != nil {
t.Error(err)
//panic(err)
}
}
开发者ID:gotokatsuya,项目名称:tests,代码行数:31,代码来源:testMeta.go
示例8: testDistinct
func testDistinct(engine *xorm.Engine, t *testing.T) {
users := make([]Userinfo, 0)
departname := engine.TableMapper.Obj2Table("Departname")
err := engine.Distinct(departname).Find(&users)
if err != nil {
t.Error(err)
panic(err)
}
if len(users) != 1 {
t.Error(err)
panic(errors.New("should be one record"))
}
fmt.Println(users)
type Depart struct {
Departname string
}
users2 := make([]Depart, 0)
err = engine.Distinct(departname).Table(new(Userinfo)).Find(&users2)
if err != nil {
t.Error(err)
panic(err)
}
if len(users2) != 1 {
t.Error(err)
panic(errors.New("should be one record"))
}
fmt.Println(users2)
}
开发者ID:gotokatsuya,项目名称:tests,代码行数:31,代码来源:testFind.go
示例9: Login
func Login(w http.ResponseWriter, r *http.Request, urlValues map[string]string, db *xorm.Engine) {
//handle the input
var input struct {
Email string `json:"email" validate:"required"`
Password string `json:"password" validate:"required"`
}
if err := httputil.Bind(r.Body, &input); err != nil {
middleware.Send(w, http.StatusBadRequest, map[string]string{"error": err.Error()})
return
}
user := model.User{}
found, err := db.Where("email = ?", input.Email).Get(&user)
if err != nil {
middleware.Send(w, http.StatusInternalServerError, map[string]string{"error": err.Error()})
return
}
if found == false || bcrypt.CompareHashAndPassword([]byte(user.PasswordDigest), []byte(input.Password)) != nil {
middleware.Send(w, http.StatusUnauthorized, map[string]string{"error": "Incorrect Email / Password"})
return
}
if newToken, err := auth.Sign(user.Id); err != nil {
middleware.Send(w, http.StatusInternalServerError, map[string]string{"error": err.Error()})
} else {
// update JWT Token
w.Header().Add("Authorization", newToken)
//allow CORS
w.Header().Set("Access-Control-Expose-Headers", "Authorization")
middleware.Send(w, http.StatusOK, map[string]string{"userId": user.Id})
}
}
开发者ID:TritonHo,项目名称:meow,代码行数:32,代码来源:auth.go
示例10: insertTwoTable
func insertTwoTable(engine *xorm.Engine, t *testing.T) {
userdetail := Userdetail{ /*Id: 1, */ Intro: "I'm a very beautiful women.", Profile: "sfsaf"}
userinfo := Userinfo{Username: "xlw3", Departname: "dev", Alias: "lunny4", Created: time.Now(), Detail: userdetail}
cnt, err := engine.Insert(&userinfo, &userdetail)
if err != nil {
t.Error(err)
panic(err)
}
if userinfo.Uid <= 0 {
err = errors.New("not return id error")
t.Error(err)
panic(err)
}
if userdetail.Id <= 0 {
err = errors.New("not return id error")
t.Error(err)
panic(err)
}
if cnt != 2 {
err = errors.New("insert not returned 2")
t.Error(err)
panic(err)
return
}
}
开发者ID:gotokatsuya,项目名称:tests,代码行数:29,代码来源:testInsert.go
示例11: join3
func join3(engine *xorm.Engine, t *testing.T) {
_, err := engine.Join("LEFT", "userdetail", "userinfo.id=userdetail.id").Get(&Userinfo{Uid: 1})
if err != nil {
t.Error(err)
panic(err)
}
}
开发者ID:winxxp,项目名称:tests,代码行数:7,代码来源:estJoin.go
示例12: update
func update(engines *xorm.Engine, File *xlsx.Sheet) {
var num int = 0
if len(File.Rows) < 1 {
fmt.Println("检查更新列表.")
return
}
for _, row := range File.Rows[1:] {
var list []*xlsx.Cell
for _, cell := range row.Cells {
list = append(list, cell)
}
date := parse(list)
if date != nil {
n, err := engines.Where("IssuerId = ? and ServerID = ?", date.IssuerId,
date.ServerID).MustCols("OnlineNum", "IsRuning", "ServerStyle",
"IsStartIPWhile", "OrderBy").Update(date)
if n == 0 || err != nil {
fmt.Printf("更新:%s出错.\n", fmt.Sprint(*date))
continue
}
engines.Query(fmt.Sprintf("UPDATE NxServerState SET ServerName=N'%s' where IssuerId = %d and ServerID = %d", date.ServerName, date.IssuerId, date.ServerID))
}
num++
}
fmt.Printf("一共更新%d条数据\n", num)
}
开发者ID:czxichen,项目名称:Goprograme,代码行数:26,代码来源:read_xlsx.go
示例13: TestDropNullStructTable
func TestDropNullStructTable(engine *xorm.Engine, t *testing.T) {
err := engine.DropTables(new(NullType))
if err != nil {
t.Error(err)
panic(err)
}
}
开发者ID:gotokatsuya,项目名称:tests,代码行数:7,代码来源:testNullStruct.go
示例14: setEngine
func setEngine(engine *xorm.Engine, useCache bool) {
if useCache {
engine.SetDefaultCacher(newCache())
}
engine.Logger().ShowSQL(showTestSql)
engine.Logger().SetLevel(core.LOG_DEBUG)
}
开发者ID:go-xorm,项目名称:tidb,代码行数:7,代码来源:tidb_test.go
示例15: generateOrgRandsAndSalt
func generateOrgRandsAndSalt(x *xorm.Engine) (err error) {
type User struct {
ID int64 `xorm:"pk autoincr"`
Rands string `xorm:"VARCHAR(10)"`
Salt string `xorm:"VARCHAR(10)"`
}
orgs := make([]*User, 0, 10)
if err = x.Where("type=1").And("rands=''").Find(&orgs); err != nil {
return fmt.Errorf("select all organizations: %v", err)
}
sess := x.NewSession()
defer sessionRelease(sess)
if err = sess.Begin(); err != nil {
return err
}
for _, org := range orgs {
org.Rands = base.GetRandomString(10)
org.Salt = base.GetRandomString(10)
if _, err = sess.Id(org.ID).Update(org); err != nil {
return err
}
}
return sess.Commit()
}
开发者ID:jessezwd,项目名称:gogs,代码行数:28,代码来源:migrations.go
示例16: NewTestEngine
func NewTestEngine(x *xorm.Engine) (err error) {
x, err = getEngine()
if err != nil {
return fmt.Errorf("models.init(fail to conntect database): %v", err)
}
return x.Sync(tables...)
}
开发者ID:last1here,项目名称:gogs,代码行数:8,代码来源:models.go
示例17: Update
// Update will update a coverpage stored in database.
func (c *TestTable) Update(db *xorm.Engine) error {
_, err := db.Update(c)
if err != nil {
return err
}
return nil
}
开发者ID:way-2-go,项目名称:go-boilerplate,代码行数:9,代码来源:testModel.go
示例18: joinCount
func joinCount(engine *xorm.Engine, t *testing.T) {
count, err := engine.Join("LEFT", "userdetail", "userinfo.id=userdetail.id").Count(&Userinfo{Uid: 1})
if err != nil {
t.Error(err)
panic(err)
}
fmt.Println(count)
}
开发者ID:gotokatsuya,项目名称:tests,代码行数:8,代码来源:testJoin.go
示例19: NewXormAuth
func NewXormAuth(orm *xorm.Engine, allowAnony bool, perm os.FileMode, encryptFunc func(string) string) (*XormAuth, error) {
err := orm.Sync2(new(User))
if err != nil {
return nil, err
}
return &XormAuth{allowAnony, os.ModePerm, orm, encryptFunc}, nil
}
开发者ID:goftp,项目名称:xorm-auth,代码行数:8,代码来源:auth.go
示例20: joinSameMapper
func joinSameMapper(engine *xorm.Engine, t *testing.T) {
users := make([]Userinfo, 0)
err := engine.Join("LEFT", "`Userdetail`", "`Userinfo`.`(id)`=`Userdetail`.`Id`").Find(&users)
if err != nil {
t.Error(err)
panic(err)
}
}
开发者ID:winxxp,项目名称:tests,代码行数:8,代码来源:estJoin.go
注:本文中的github.com/go-xorm/xorm.Engine类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论