Gormとデータベース(単一複素数)テーブル構造間のマッピング
8384 ワード
Gorm接続MySQL:
データベースには複数のテーブル構造があります.
データベースには複数のテーブル構造usersがあり、コードにはuserまたはusers構造体が定義され、いずれも操作できます.
データベースには単一テーブル構造があります.
データベースには単数テーブル構造userがあり、コードにはuserまたはusers構造体が定義されており、操作できません.
データベースの単一テーブル構造の問題を解決するには、次の手順に従います.
データベース接続を取得するときに、次の構成を追加します.
この場合、コード構造体の単複数とデータベース表リストの複数は対応しなければならない.単対単、複対複:
コードによるデータベース表構造の作成:
SingularTableの構成を加えず、コードによってテーブルを作成し、構造体が単数で複数であるにもかかわらず、生成されたテーブルは複数である.
SingularTableの構成を加えて、コードによって表を作成して、構造体の単数は単数表を生成して、構造体の複素数は複素表を生成します:
公衆番号:李田交差点
import (
_ "github.com/go-sql-driver/mysql"
"github.com/jinzhu/gorm"
)
type User struct {
Id int `json:"id"`
Name string `json:"name"`
Age int `json:"age"`
}
func GormTest() {
dsn := username + ":" + password + "@tcp(" + addr + ")/" + datebase + "?charset=utf8&parseTime=true&loc=Local"
var err error
DB, err := gorm.Open("mysql", dsn)
if err != nil {
panic("MySQL conn failed:" + err.Error())
}
//DB.SingularTable(true)
}
データベースには複数のテーブル構造があります.
データベースには複数のテーブル構造usersがあり、コードにはuserまたはusers構造体が定義され、いずれも操作できます.
DB.Create(&User{Name: "Li", Age: 5}) //
DB.Create(&Users{Name: "Li", Age: 5}) //
データベースには単一テーブル構造があります.
データベースには単数テーブル構造userがあり、コードにはuserまたはusers構造体が定義されており、操作できません.
DB.Create(&User{Name: "Li", Age: 5}) //Table 'test.users' doesn't exist
DB.Create(&Users{Name: "Li", Age: 5}) //Table 'test.users' doesn't exist
データベースの単一テーブル構造の問題を解決するには、次の手順に従います.
データベース接続を取得するときに、次の構成を追加します.
DB.SingularTable(true)
この場合、コード構造体の単複数とデータベース表リストの複数は対応しなければならない.単対単、複対複:
DB.Create(&User{Name: "Li", Age: 5}) //
DB.Create(&Users{Name: "Li", Age: 5}) //Table 'test.users' doesn't exist
コードによるデータベース表構造の作成:
SingularTableの構成を加えず、コードによってテーブルを作成し、構造体が単数で複数であるにもかかわらず、生成されたテーブルは複数である.
DB.AutoMigrate(&User{}) // users
DB.AutoMigrate(&Students{}) // students
SingularTableの構成を加えて、コードによって表を作成して、構造体の単数は単数表を生成して、構造体の複素数は複素表を生成します:
DB.AutoMigrate(&User{}) // user
DB.AutoMigrate(&Students{}) // students
公衆番号:李田交差点