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

厦门市建设局官方网站西安公司地址

厦门市建设局官方网站,西安公司地址,网站服务器租赁你的知识宝库,wordpress获取二级分类目录列表文章目录 1 CRUD1.1 创建1.1.1 单条创建1.1.2 批量创建 1.2 查找1.2.1 查询单条 / 条件准确查询1.2.2 查询单条 / 条件模糊查询1.2.3 查询单条 / In1.2.4 查询全部 1.3 更新1.4 删除 2 联表查询2.1 O2M#xff08;一对多查询#xff09;2.1.1 增加Edge2.1.2 查询方法2.1.2.1 … 文章目录 1 CRUD1.1 创建1.1.1 单条创建1.1.2 批量创建 1.2 查找1.2.1 查询单条 / 条件准确查询1.2.2 查询单条 / 条件模糊查询1.2.3 查询单条 / In1.2.4 查询全部 1.3 更新1.4 删除 2 联表查询2.1 O2M一对多查询2.1.1 增加Edge2.1.2 查询方法2.1.2.1 查询函数QueryOrder()与WithOrder()2.1.2.2 聚合函数 Aggregate求max \ min \ avg2.1.2.3 聚合函数 Aggregate根据用户身份做分类统计 3 Reference 1 CRUD 1.1 创建 1.1.1 单条创建 ctx : context.Background() user,err : db.User.Create().SetClass(classObj).SetName(小红).SetSex(false).SetAge(12).Save(ctx)// SaveX()不会返回error类型 user: db.User.Create().SetClass(classObj).SetName(小红).SetSex(false).SetAge(12).SaveX(ctx)1.1.2 批量创建 type studentData struct {Name stringAge intSex bool }data : make([]studentData, 3)data[0].Name 小明 data[1].Name 小刚 data[2].Name 小李data[0].Age 12 data[1].Age 13 data[2].Age 11data[0].Sex true data[1].Sex true data[2].Sex falsebulk : make([]*ent.User, len(data)) for i, d : range data{bulk[i] : db.User.Create().SetName(d.Name).SetSex(d.Sex).SetAge(d.Age) }users, err : db.User.CreateBulk(bulk...).Save(ctx)Create()的对象不立马保存而是储存在切片中之后再统一使用CreateBulk()的方法来批量创建数据 1.2 查找 1.2.1 查询单条 / 条件准确查询 user, err : db.User.Query().Where(user.Age(12)).First(ctx)1.2.2 查询单条 / 条件模糊查询 user, err : db.User.Query().Where(user.NameContains(明)).First(ctx)1.2.3 查询单条 / In names : []string{amy,mike} user, err : db.User.Query().Where(user.NameIn(names...)).First(ctx)1.2.4 查询全部 users, err : db.User.Query().Where(user.Age(12)).All(ctx)1.3 更新 err : db.User.Update().SetName(一班).SetLevel(2).Exec(ctx)1.4 删除 user, err : db.User.Delete().Where(user.Name(小红)).Exec(ctx)2 联表查询 2.1 O2M一对多查询 2.1.1 增加Edge 以User和Order举例一个用户可以有多个订单的场景下的模型定义 // spec/schema/user.go package schemaimport (entgo.io/ententgo.io/ent/dialect/entsqlentgo.io/ent/schema/edgeentgo.io/ent/schema/field )// User holds the schema definition for the User entity. type User struct {ent.Schema }// Fields of the User. func (User) Fields() []ent.Field {return []ent.Field{...field.String(id).MaxLen(50).Comment(id),field.String(name).MaxLen(50).Comment(名称),} }// Edges of the User. func (User) Edges() []ent.Edge {return []ent.Edge{edge.To(orders, Order.Type),} }// spec/schema/order.go package schemaimport (entgo.io/ententgo.io/ent/dialect/entsqlentgo.io/ent/schema/edgeentgo.io/ent/schema/field )// Order holds the schema definition for the Order entity. type Order struct {ent.Schema }// Fields of the Order. func (Order) Fields() []ent.Field {return []ent.Field{...field.String(product).MaxLen(50).Comment(产品),field.Int(user_id).Comment(用户ID),} }// Edges of the Order. func (Order) Edges() []ent.Edge {return []ent.Edge{edge.From(user, User.Type).Ref(orders).Unique().Field(user_id).Required(),} }2.1.2 查询方法 2.1.2.1 查询函数QueryOrder()与WithOrder() ctx : context.Background()// 查询user下的所有orders userID : 1 orders, _ : db.User.Query().Where(user.ID(userID)).QueryOrder().All(ctx)// 查询user同时获取到user下的orders列表 user, _ : db.User.Query().Where(user.ID(userID)).WithOrder().Only(ctx) orders : user.Edges.Orders// 查询user同时获取到user下符合条件的orders列表 user, _ : db.User.Query().Where(user.ID(userID)).WithOrder().Where(order.Product(xxx)).Only(ctx) orders : user.Edges.Orders// 查询order对应的user orderID : 1 user, _ : db.Order.Query().Where(order.ID(orderID)).QueryUser().Only(ctx)// 查询order同时获取order对应的user信息 order, _ : db.Order.Query().Where(order.ID(orderID)).WithUser().Only(ctx) user : order.Edges.User2.1.2.2 聚合函数 Aggregate求max \ min \ avg type UserTest struct {CompanyId string json:company_id,omitemptyMax int json:max,omitemptyMin int json:minAvg float32 json:avg,omitempty }res : []UserTest {} err : db.User.Query().Where(user.CompanyIDIn(companyIds...)).GroupBy(user.FieldCompanyID).Aggregate(func(s *sql.Selector) string {t : sql.Table(order.Table)s.Join(t).On(s.C(user.FieldID), t.C(order.FieldUserID))return sql.As(sql.Max(t.C(order.FieldBandwidth)), max)},func(s *sql.Selector) string {t : sql.Table(order.Table)s.Join(t).On(s.C(user.FieldID), t.C(order.FieldUserID))return sql.As(sql.Min(t.C(order.FieldBandwidth)), min)},func(s *sql.Selector) string {t : sql.Table(order.Table)s.Join(t).On(s.C(user.FieldID), t.C(order.FieldUserID))return sql.As(sql.Avg(t.C(order.FieldBandwidth)), avg)},).Scan(c, res)输出 [{company_id: 123,max: 100,min: 10,avg: 55,},{company_id: 456,max: 100,min: 10,avg: 55,} ]2.1.2.3 聚合函数 Aggregate根据用户身份做分类统计 type UserTest struct {Count int json:count,omitemptyType string json:type,omitempty }res : []UserTest {} err : db.User.Query().Where(user.CompanyIDIn(companyIds...)).Aggregate(ent.Count(),func(s *sql.Selector) string {s.GroupBy(user.FieldJob)return sql.As(user.FieldJob, type)},).Scan(c, res) 输出 [{type: teacher,count: 24},{type: student,count: 65,} ]3 Reference ent官方文档https://entgo.io/docs/getting-started go语言ORM框架ent使用教程 https://blog.csdn.net/a914541185/article/details/121274321 在线SQL转Schemahttps://old.printlove.cn/tools/sql2ent
http://www.zqtcl.cn/news/140758/

相关文章:

  • discuz仿搜索网站做网站开发用哪种语言好
  • 企业网站服务网络设备维护是做什么的
  • 罗湖网站公司网站服务器建设合同
  • 公司网站设计注意什么免费名字设计成图案
  • python3 网站建设济南网站建设(选 聚搜网络)
  • 建网站在哪里做广告上海 网站撤销备案
  • 个人可以备案几个网站做网站和网站页面设计
  • 拉丝机东莞网站建设下载安装百度一下
  • 河北建设厅官方网站山西手动网站建设推广
  • 连云港网站建设开发网络营销顾问服务
  • 怎么做网站免有什么网站可以免费建站
  • 安全的营销型网站建设深圳网站建设哪家
  • wordpress能开发商城网站吗seo软件
  • 广东网站建设制作价格低网页升级访问中每天正常更新中
  • 北京市门头沟有没有做网站的小水库运行管理培训教材久久建筑网
  • 免费手机网站app软文推广发稿
  • 安徽网站制作公司建设银行校招网站入口
  • 专业的网站公司到哪里找会员网站模板
  • 山西城乡和建设厅网站首页应用公园下载
  • 自动优化网站建设电话wordpress 后端
  • 淘客网站怎么做啊做网站是什么工作
  • 新媒体 网站建设 管理规范专门卖医疗器械的网站
  • 高水平建设专业网站微商城网站建设平台合同
  • 策划的网站在哪个网站做一照一码
  • wordpress页面如何排序网站优化推广软件
  • 网站描述和关键词怎么写智慧团建网站pc端
  • 苏州营销型网站建设推广医院做网站备案需要哪些资料
  • 怎么看是哪家做的网站呼市浩特网站建设
  • 如何建设淘宝客网站全网营销包括什么
  • 网站建设服务市场广州市几个区