【go】xorm CRUD一括追加とトランザクション

1コルム

xorm は Go 言語の ORM ライブラリです。そのドキュメント: http://xorm.topgoer.com/

2 基本操作 CRUD

2.1 チェック

2.1.1 IDクエリ

  • ID: パラメータは主キーフィールドの値を受け取ります
var user User
engine.Id(1).Get(&user)
  • SQL ステートメント:select * from user where id = 1

2.1.2 Where クエリ

  • ここで: SQL に似たステートメント
engine.Where('user_name = ? and pwd = ?', 'davie', '123').Get(&admin)
// 或
engine.Where('user_name = ?','davie').Where('pwd = ?','123').Get(&admin)
  • SQL ステートメント:select * from user where user_name = 'davie' and pwd = '123'

2.1.3 チェックリストの取得

result := User
err := engine.Where("student_name = ?", OrgName).Get(&result)

2.1.4 複数のエントリの検索

results := make([]User, 0)
err := engine.Where("student_name = ?", OrgName).Find(&results)

2.1.5 カウント

engine.Count(&user)

2.2増加

2.1.1 単一増加

var user
engine.Insert(&user)

2.1.2 バッチの増加

// user为切片
user := []User{user1,user2}
engine.Insert(&user)

2.3 変更

user:= students.table1{
		age: 12,
	}
engine.Where("name = ?","new").Update(&user)

2.4 削除

engine.Where("name = ?","new").Delete(&user)

3件

データを一括操作する必要がある場合、トランザクションが必要になります。xorm では、トランザクション操作はセッションに関連付けられます。合計 3 つのステップがあります。つまり、セッション オブジェクトの作成、Begin トランザクションの実行の開始、トランザクションのコミットです。真ん中は具体的なデータベース操作です。

  • トランザクションコード:
// 创建事务
session := engine.NewSession()
defer session.Close()

// 事务开始
err := session.Begin()
if err != nil {
    
    
    return err
}

// 事务相关操作
_, err := dao.Students.DeleteStudents(session, Name)
if err != nil {
    
    
// 事务回滚
    session.Rollback()
    return err
}

事务提交
err = session.Commit()
if err != nil{
    
    
    return err
}
  • 関数をテストし、指定した名前でデータを削除します:
func (*dStudents) DeleteStudents(session *xorm.Session, Name string) (int64, error) {
    
    
	result := students.table1{
    
    
		DeletedAt: time.Now().UnixMilli(),
	}
	return session.Table("table1").Where("student_name = ?", OrgName).Where("deleted_at = ?", 0).Update(&result)
}

4 参考資料

Go 言語学習チュートリアル: xorm テーブルの基本操作と高度な操作:
http://www.taodudu.cc/news/show-732070.html?action=onClick

Go-MySQL(四)XORM:
https://blog.csdn.net/weixin_41922289/article/details/116282272

おすすめ

転載: blog.csdn.net/qq_45859826/article/details/131400456