This package provides a simple way to use gorm in your project.
go get -u github.com/WebXense/sql
There are four packages of this project:
sql
- The main package, which provides the statement builder, read and write operations.sql/stm
- The statement builder object. The statement builder insql
package is based on this package.sql/conn
- Provides the connection methods for MySQL and SQLite.sql/aes
- Provides the AES encryption and decryption methods.
db, err := conn.MySQL("127.0.0.1", "3306", "username", "password", "database", false)
File-path database:
db, err := conn.SQLite("database.db", false)
In-memory database:
db, err := conn.SQLiteInMemory(false)
user, err := sql.FindOne[User](db, sql.Eq("id", 1))
users, err := sql.FindAll[User](db, sql.Gt("id", 1), &sql.Pagination{
Page: 1, // start from 1
Size: 10,
}, &sql.Sort{
SortBy: "id",
Asc: false,
})
count, err := sql.Count[User](db, sql.Gt("id", 1))
user := User{
Name: "John",
Age: 18,
}
created, err := sql.Create(db, &user)
user := User{
ID: 1,
Name: "John",
Age: 18,
}
updated, err := sql.Update(db, &user)
user := User{
ID: 1,
}
deleted, err := sql.Delete(db, &user)
err := sql.DeleteBy[User](db, sql.Eq("id", 1))
type User struct {
ID int64 `gorm:"primaryKey"`
Name string
Age int64
Phone []byte
}
encryptKey := "1234567890123456"
user := User{
ID: 1,
Name: "John",
Age: 18,
Phone: aes.Encrypt("51234567", encryptKey),
}
var phone string = aes.Decrypt(user.Phone, encryptKey)