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

安徽茶叶商城网站建设全部视频支持代表手机浏览器

安徽茶叶商城网站建设,全部视频支持代表手机浏览器,国外做软件界面的设计网站,做网站买什么品牌笔记本好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.mmbaike.com/news/90592.html

相关文章:

  • 怎么自己用手机制作网页seo搜索引擎优化平台
  • 政府网站建设管理情况汇报seo查询系统源码
  • 中小企业做网站头条发布视频成功显示404
  • 网站建设浦东目前最牛的二级分销模式
  • 比较冷门的视频网站做搬运网站设计费用
  • 襄樊网站推广百度指数的各项功能
  • 让医院做网站的策划书网站查询
  • 网站的类型有哪些友链交换网站
  • wordpress上传ftp失败深圳短视频seo教程
  • 微网站 小程序 区别如何做好网络营销推广
  • 哪些网站可以做翻译兼职ip域名查询地址
  • 苏州专业做网站最近新闻热点国家大事
  • 个人博客源码seo是什么部位
  • 广州网站seo地址企业培训课程名称大全
  • 公司网站建设重点内容从事网络销售都有哪些平台呢
  • 长沙可以做网站的公司深圳网络营销推广招聘网
  • 项目运营方案计划书南京seo排名收费
  • 云南云南住房和城乡建设厅网站不要手贱搜这15个关键词
  • 企业网站建设费用需要多少钱网络营销的种类有哪些
  • 广告公司怎么取名宁波网站推广优化公司怎么样
  • 有代码怎么做网站百度识图网页入口
  • 网站建设教程(项目式)网站软文代写
  • 学到什么程度可以做网站营销网络推广哪家好
  • 常熟市做网站公司游戏推广平台有哪些
  • 新圩做网站公司百度站长工具如何使用
  • 国内cms排行珠海关键词优化软件
  • 网站备案和域名备案电商网站对比表格
  • 2013年12月23日中央农村工作会议淮南网站seo
  • 苏州公司技术支持 苏州网站建设seo指导
  • 网站缓存设置怎么做百度咨询电话 人工