You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

43 lines
801 B

package persist
import (
"gorm.io/gorm"
)
// RDB gorm关系型数据
type RDB struct {
db *gorm.DB
}
func NewRDB(db *gorm.DB) *RDB {
return &RDB{
db: db,
}
}
func (m *RDB) Init() (err error) {
return
}
func (m *RDB) Insert(data any) (err error) {
return m.db.Create(data).Error
}
// sql查询数据
func (m *RDB) Select(ret any, sql string, args ...any) (err error) {
return m.db.Raw(sql, args...).Scan(ret).Error
}
// sql更新数据
func (m *RDB) Update(sql string, args ...any) (rowsAffected int64, err error) {
tx := m.db.Exec(sql, args...)
rowsAffected, err = tx.RowsAffected, tx.Error
return
}
// sql更新数据
func (m *RDB) UpdateBy(data any) (rowsAffected int64, err error) {
tx := m.db.Model(data).Updates(data)
rowsAffected, err = tx.RowsAffected, tx.Error
return
}