ORM dalam Beego - menggunakan Xorm untuk menjadikan operasi pangkalan data lebih mudah

PHPz
Lepaskan: 2023-06-22 13:16:35
asal
6030 orang telah melayarinya

Beego ialah rangka kerja web bahasa Go sumber terbuka yang menyediakan banyak alatan dan perpustakaan yang mudah untuk mempercepatkan pembangunan web. Antaranya, perpustakaan ORM (Object Relational Mapping) adalah komponen yang sangat penting, yang membolehkan pembangun melakukan operasi data dengan lebih mudah. Dalam Beego, Xorm ialah perpustakaan operasi pangkalan data berasaskan ORM, yang sangat mudah dan cekap untuk digunakan. Artikel ini akan memperkenalkan cara menggunakan Xorm untuk mengendalikan pangkalan data.

1. Pengenalan kepada Xorm

Xorm ialah perpustakaan ORM berdasarkan bahasa Go, serupa dengan Hibernate atau MyBatis Java. Ia menyokong pelbagai pangkalan data hubungan, termasuk MySQL, PostgreSQL, SQLite, dll. Tidak seperti perpustakaan ORM bahasa Go yang lain, Xorm menggunakan mekanisme pantulan untuk memetakan hubungan antara objek dan jadual, menjadikannya lebih fleksibel dan mudah.

2. Pasang Xorm

Sebelum menggunakan Xorm, kita perlu memasangnya terlebih dahulu. Anda boleh menggunakan alat baris arahan Go untuk memasang Xorm:

go get xorm.io/xorm
Salin selepas log masuk

3. Konfigurasikan Xorm

Menggunakan Xorm dalam Beego adalah sangat mudah Anda hanya perlu menentukan jenis pangkalan data, alamat pangkalan data, nama pengguna dan Kata laluan dan maklumat lain boleh:

# 配置数据库类型
db_driver = mysql
# 配置数据库地址
db_address = root:password@/testdb?charset=utf8
# 配置数据库最大闲置连接数
db_max_idle_conn = 10
# 配置数据库最大连接数
db_max_open_conn = 100
Salin selepas log masuk

4. Mengendalikan pangkalan data

  1. Tentukan struktur

Langkah pertama untuk menggunakan Xorm untuk mengendalikan pangkalan data adalah untuk menentukan struktur jadual pangkalan data dalam struktur, dan menggunakan tag tag untuk mengenal pasti hubungan pemetaan antara struktur dan jadual pangkalan data. Sebagai contoh, kami mempunyai jadual data bernama user dengan struktur berikut:

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `age` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Salin selepas log masuk

Kemudian struktur yang kami tentukan ialah:

type User struct {
    Id    int    `xorm:"pk autoincr"`
    Name  string `xorm:"varchar(255) notnull"`
    Email string `xorm:"varchar(255) notnull"`
    Age   int    `xorm:"int(11) notnull"`
}
Salin selepas log masuk
  1. Buat enjin

Sebelum mengendalikan pangkalan data, kita perlu mencipta enjin Xorm terlebih dahulu. Enjin adalah jambatan antara Xorm dan pangkalan data Kami menggunakannya untuk melaksanakan pelbagai operasi pangkalan data, seperti sisipan, pertanyaan, kemas kini dan pemadaman. Cara untuk mencipta enjin adalah seperti berikut:

import (
    "xorm.io/xorm"
    "github.com/astaxie/beego"
)

var (
    engine *xorm.Engine
)

func init() {
    dbDriver := beego.AppConfig.String("db_driver")
    dbAddress := beego.AppConfig.String("db_address")
    engine, err = xorm.NewEngine(dbDriver, dbAddress)
    if err != nil {
        beego.Error(err)
    }

    // 配置连接池
    maxIdleConn := beego.AppConfig.DefaultInt("db_max_idle_conn", 10)
    maxOpenConn := beego.AppConfig.DefaultInt("db_max_open_conn", 100)
    engine.SetMaxIdleConns(maxIdleConn)
    engine.SetMaxOpenConns(maxOpenConn)
}
Salin selepas log masuk
  1. Masukkan data

Memasukkan data menggunakan Xorm adalah sangat mudah, cuma buat objek struktur dan tetapkan nilai, kemudian gunakan fungsi engine.Insert() Itu sahaja:

func insertUser(user *User) error {
    _, err := engine.Insert(user)
    if err != nil {
        beego.Error(err)
        return err
    }
    return nil
}
Salin selepas log masuk
  1. Data pertanyaan

Ia juga sangat mudah untuk menggunakan Xorm untuk membuat pertanyaan data. Anda boleh menggunakan fungsi seperti engine.Where() dan engine.And() untuk menentukan syarat pertanyaan, dan anda juga boleh menggunakan engine.OrderBy() untuk menentukan kaedah pengisihan. Hasil pertanyaan boleh diproses menggunakan fungsi seperti Find(), Get() dan Iterate():

func getUserByName(name string) (*User, error) {
    user := &User{}
    _, err := engine.Where("name = ?", name).Get(user)
    if err != nil {
        beego.Error(err)
        return nil, err
    }
    return user, nil
}

func getAllUsers() ([]*User, error) {
    users := make([]*User, 0)
    err := engine.Find(&users)
    if err != nil {
        beego.Error(err)
        return nil, err
    }
    return users, nil
}
Salin selepas log masuk
  1. Kemas kini data

Mengemas kini data menggunakan Xorm juga sangat mudah , cuma Anda perlu mencipta objek struktur dan tetapkan nilai, kemudian gunakan fungsi engine.Id() dan engine.Update():

func updateUser(user *User) error {
    _, err := engine.Id(user.Id).Update(user)
    if err != nil {
        beego.Error(err)
        return err
    }
    return nil
}
Salin selepas log masuk
  1. Padam data

Ia juga mudah untuk memadam data menggunakan Xorm . Anda boleh menggunakan fungsi engine.Id() dan engine.Delete() untuk menentukan data yang akan dipadamkan:

func deleteUser(id int) error {
    _, err := engine.Id(id).Delete(&User{})
    if err != nil {
        beego.Error(err)
        return err
    }
    return nil
}
Salin selepas log masuk

5. Ringkasan

Xorm ialah ORM bahasa Go yang sangat mudah dan mudah digunakan perpustakaan. Ia menggunakan mekanisme pantulan untuk memetakan hubungan antara objek dan jadual pangkalan data, supaya pembangun tidak perlu menulis pernyataan SQL secara manual, menjadikan operasi pangkalan data lebih mudah dan lebih cekap. Menggunakan Xorm dalam Beego adalah sangat mudah. ​​Hanya konfigurasikan maklumat pangkalan data dan ikuti proses di atas.

Atas ialah kandungan terperinci ORM dalam Beego - menggunakan Xorm untuk menjadikan operasi pangkalan data lebih mudah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!