当前位置: 首页 > news >正文

广州10大网站服务品牌自己做的网站如何包装

广州10大网站服务品牌,自己做的网站如何包装,怎么查询网站名注册,精彩 网站xorm xorm是一个简单而强大的Go语言ORM库通过它可以使数据库操作非常简便。 官网: https://xorm.io/ 中文文档: https://gitea.com/xorm/xorm/src/branch/master/README_CN.md 特性 支持 Struct 和数据库表之间的灵活映射,并支持自动同步事务支持同时支持原始SQL…

xorm

xorm是一个简单而强大的Go语言ORM库通过它可以使数据库操作非常简便。
官网: https://xorm.io/
中文文档: https://gitea.com/xorm/xorm/src/branch/master/README_CN.md

特性

  • 支持 Struct 和数据库表之间的灵活映射,并支持自动同步
  • 事务支持
  • 同时支持原始SQL语句和ORM操作的混合执行
  • 使用连写来简化调用。
  • 支持使用ID,In,Where, Limit,Join,Having,Table, SQL,Cols等函数和结构体等方式作为条件

安装

go get xorm.io/xorm

同步结构体到数据库

package mainimport ("fmt"_ "github.com/go-sql-driver/mysql""time""xorm.io/xorm"
)func main() {//初始化数据库连接信息var (userName  = "root"passWord  = "xxxxx"ipAddress = "127.0.0.1"port      = 3306dbName    = "poem_noun"charset   = "utf8mb4")dataSourceName := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=%s", userName, passWord, ipAddress, port, dbName, charset)//创建引擎,driverName, dataSourceName 和 database/sql 接口相同engine, err := xorm.NewEngine("mysql", dataSourceName)if err != nil {fmt.Println("数据库连接失败")}//定义一个和表同步的结构体,并且自动同步结构体到数据库type User struct {Id      int64Name    stringAge     intPasswd  string    `xorm:"varchar(200)"`Created time.Time `xorm:"created"`Updated time.Time `xorm:"updated"`}err = engine.Sync(new(User))if err != nil {println("表结构同步失败")}}

注:后续需要增加表的字段只需要在结构体中新增对应字段,然后执行改代码,即可把字段同步至数据库。

数据插入

package mainimport ("fmt"_ "github.com/go-sql-driver/mysql""time""xorm.io/xorm"
)func main() {//初始化数据库连接信息var (userName  = "root"passWord  = "xxxxx"ipAddress = "127.0.0.1"port      = 3306dbName    = "poem_noun"charset   = "utf8mb4")dataSourceName := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=%s", userName, passWord, ipAddress, port, dbName, charset)//创建引擎,driverName, dataSourceName 和 database/sql 接口相同engine, err := xorm.NewEngine("mysql", dataSourceName)if err != nil {fmt.Println("数据库连接失败")}type User struct {Id      int64Name    stringAge     intPasswd  string    `xorm:"varchar(200)"`Created time.Time `xorm:"created"`Updated time.Time `xorm:"updated"`}user := User{Id:     1,Name:   "wk",Age:    18,Passwd: "wwwwwwww",}//插入单挑affected, err := engine.Insert(&user)if affected >= 1 {println("数据插入成功")}//定义切片var users []Userusers = append(users, User{Id:     2,Name:   "wk",Age:    18,Passwd: "wwwwwwww",})users = append(users, User{Id:     3,Name:   "wk",Age:    18,Passwd: "wwwwwwww",})//插入切片affected, err = engine.Insert(&users)
}

更新和删除

  • Update更新数据,默认只更新非空和非0的字段 。
  • Delete 删除记录,需要注意,删除必须至少有一个条件,否则会报错。
  • Exec 执行一个SQL语句
package mainimport ("fmt"_ "github.com/go-sql-driver/mysql""time""xorm.io/xorm"
)func main() {//初始化数据库连接信息var (userName  = "root"passWord  = "xxxxx"ipAddress = "127.0.0.1"port      = 3306dbName    = "poem_noun"charset   = "utf8mb4")dataSourceName := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=%s", userName, passWord, ipAddress, port, dbName, charset)//创建引擎,driverName, dataSourceName 和 database/sql 接口相同engine, err := xorm.NewEngine("mysql", dataSourceName)if err != nil {fmt.Println("数据库连接失败")}type User struct {Id      int64Name    stringAge     intPasswd  string    `xorm:"varchar(200)"`Created time.Time `xorm:"created"`Updated time.Time `xorm:"updated"`}user := User{Name: "cs",}//更新一条数据_, err = engine.ID(1).Update(&user)user = User{Name: "wk",}//删除一条数据_, err = engine.ID(3).Delete(&user)//直接执行sqlengine.Exec("update user set name = ? where id = ?", "ddddddd", 2)}

数据查询

  • Query 最原始的也支持SQL语句查询,返回的结果类型为 []map[string] []byte。Querystring 返回 []map[string]string
  • QueryInterface 返回 []map[string]interface{}
  • Get 查询单条记录
  • Find 查询多条记录
  • Count 获取记录条数
  • Iterate 和 Rows 根据条件遍历数据
package mainimport ("fmt"_ "github.com/go-sql-driver/mysql""time""xorm.io/xorm"
)func main() {//初始化数据库连接信息var (userName  = "root"passWord  = "xxxxxx"ipAddress = "127.0.0.1"port      = 3306dbName    = "poem_noun"charset   = "utf8mb4")dataSourceName := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=%s", userName, passWord, ipAddress, port, dbName, charset)//创建引擎,driverName, dataSourceName 和 database/sql 接口相同engine, err := xorm.NewEngine("mysql", dataSourceName)if err != nil {fmt.Println("数据库连接失败")}type User struct {Id      int64Name    stringAge     intPasswd  string    `xorm:"varchar(200)"`Created time.Time `xorm:"created"`Updated time.Time `xorm:"updated"`}//查询result, err := engine.Query("select * from user")fmt.Println(result)result2, err := engine.QueryString("select * from user")fmt.Println(result2)result3, err := engine.QueryInterface("select * from user")fmt.Println(result3)//Get查询方法user := User{}engine.Get(&user)fmt.Println(user)//指定条件来查询用户user1 := User{Name: "cs"}engine.Where("name=?", user1.Name).Asc("id").Get(&user1)fmt.Println(user1)//获取指定字段的值var name stringengine.Table(&user).Where("id=1").Cols("name").Get(&name)fmt.Println(name)//Find查询多条记录var users []Userengine.Where("passwd='wwwwwwww'").Limit(10, 0).Find(&users)fmt.Println(users)//根据条件查询总条数userCount := User{}total, err := engine.Count(&userCount)fmt.Println(total)//Iterate 和 Rows 根据条件遍历数据engine.Iterate(&userCount, func(idx int, bean interface{}) error {user := bean.(*User)fmt.Println(user)return nil})rows, err := engine.Rows(&user)defer rows.Close()for rows.Next() {rows.Scan(user)fmt.Println(user)}
}

事务

package mainimport ("fmt"_ "github.com/go-sql-driver/mysql""time""xorm.io/xorm"
)func main() {//初始化数据库连接信息var (userName  = "root"passWord  = "xxxxxx"ipAddress = "127.0.0.1"port      = 3306dbName    = "poem_noun"charset   = "utf8mb4")dataSourceName := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=%s", userName, passWord, ipAddress, port, dbName, charset)//创建引擎,driverName, dataSourceName 和 database/sql 接口相同engine, err := xorm.NewEngine("mysql", dataSourceName)if err != nil {fmt.Println("数据库连接失败")}type User struct {Id      int64Name    stringAge     intPasswd  string    `xorm:"varchar(200)"`Created time.Time `xorm:"created"`Updated time.Time `xorm:"updated"`}//创建事务并开启session := engine.NewSession()defer session.Close()session.Begin()defer func() {err := recover()if err != nil {session.Rollback()} else {session.Commit()}}()user := User{Id: 3, Name: "RRRR", Age: 20, Passwd: "54644"}if _, err := session.Insert(&user); err != nil {panic(err)}
}

具体官方文档地址:https://gitea.com/xorm/xorm/src/branch/master/README_CN.md

http://www.yayakq.cn/news/284018/

相关文章:

  • 怎么选择手机网站建设广告设计服务
  • 网站备案负责人 更换网站邮箱配置
  • 网页设计与网站建设期末考试做视频采集网站犯法
  • 中国最大的网站建设公司中国建设银行官企业网站
  • 广州做网站星珀郑州网站制作服务
  • 广西网站建设哪家强浙江外发加工网
  • 织梦(dedecms)怎么修改后台网站默认"织梦内容管理系统"标题好的app设计网站
  • 深圳企业网站seo小程序源码提取工具
  • 科技园区建设网站的意义建一个网站需要多少费用
  • 福永网站建设多少钱漳州专业网站建设价格
  • 响应式网站模版下载wordpress文本插件
  • 马鞍山钢铁建设集团有限公司网站鸿扬家装网站建设
  • 哈尔滨开发网站wordpress固定链接文章别名
  • 网站部兼容ie6移动互联网技术学什么
  • 台州网站制作公司内蒙古网站建设电话
  • 商丘做网站优化门户资源分享网站模板
  • 网站的建设特色券多多是谁做的网站
  • 自建网站过程站长工具seo综合查询排名
  • cvm可以做网站服务器吗wordpress设置icon
  • 如何利用个人nas做网站一帘幽梦紫菱做的网站
  • 网站结构分析具体分析内容十大接单推广平台
  • 代做论文网站一个虚拟主机可以做两个网站吧
  • 网站域名续费沈阳搜索排名公司
  • 天津个人做网站中山网站建设文化信息
  • 网络营销推广主要做什么?有哪些方法和技巧?怎么把做的网站优化到百度
  • 自己做的网站怎么上传文章平面设计到底要学什么
  • 网站建设介绍文字网站制作建设模板
  • 网站建设交流网站建设错误代码50019
  • 台州千寻网站建设公司漳州市网站建设价格
  • 大圣网站建设下载免费ppt模板