orm

[Beego模型] 一、ORM 使用方法

血红的双手。 提交于 2020-02-20 04:40:25
[Beego模型] 一、ORM 使用方法 [Beego模型] 二、CRUD 操作 [Beego模型] 三、高级查询 [Beego模型] 四、使用SQL语句进行查询 [Beego模型] 五、构造查询 [Beego模型] 六、事务处理 beego/orm 的使用例子 后文例子如无特殊说明都以这个为基础。 models.go: package main import ( "github.com/astaxie/beego/orm" ) type User struct { Id int Name string Profile *Profile `orm:"rel(one)"` // OneToOne relation Post []*Post `orm:"reverse(many)"` // 设置一对多的反向关系 } type Profile struct { Id int Age int16 User *User `orm:"reverse(one)"` // 设置一对一反向关系(可选) } type Post struct { Id int Title string User *User `orm:"rel(fk)"` //设置一对多关系 Tags []*Tag `orm:"rel(m2m)"` } type Tag struct { Id int Name string Posts

beego orm mysql

余生颓废 提交于 2020-02-20 04:37:05
beego框架中的rom支持mysql 项目中使用到mvc模式,总结下使用方式; models中 package models import ( //使用beego orm 必备 "github.com/astaxie/beego/orm" //使用的数据库 必备 _ "github.com/go-sql-driver/mysql" // import your used driver ) type BlogLogin struct { Id int64 Name string Pwd string WechatId string WechatInfo string CreateTime string LastLoginIp string LastLoginTime string } func RegisterDB() { //注册 model orm.RegisterModel(new(BlogLogin)) //注册默认数据库 orm.RegisterDataBase("default", "mysql", "username:password@/databasename?charset=utf8") //密码为空格式 当model创建了一个type ,在RegisterDB中调用该方法创建表 //orm.RunSyncdb("default", false, true)

Django中ORM系统多表数据操作

二次信任 提交于 2020-02-18 08:29:46
一,多表操作之增删改查 1.在seting.py文件中配置数据库连接信息 2.创建数据库关联关系models.py from django.db import models # Create your models here. class Book(models.Model): title = models.CharField( max_length=32) pub_date=models.DateField() price=models.DecimalField(max_digits=5,decimal_places=2)  #以book表为基本表创建与出版社表的关联关系关联字段publish_id Django会自动拼接_id publish=models.ForeignKey(to="Publish",to_field="id",on_delete=models.CASCADE,null=True)  #以book表为基本表创建通过与第三方表book2author与author表的多对多关联关系, authors=models.ManyToManyField("Author",db_table="book2authors") # 创建关系表 def __str__(self): return self.title class Publish(models.Model):

hibernate教程笔记1

谁都会走 提交于 2020-02-17 17:30:21
hibernate是什么? hibernate 是一个框架(framework) hibernate 是一个orm框架 orm (object relation mapping) 对象关系映射 框架 o object -> 业务层(只对对象操作) r relation-> 关系数据库 m mapping 对象关系映射文件 hibernate 处于我们项目的持久层位置(正因为如此,所以有人又把hibernate称为 持久层框架) hibernate 实际上就是对jdbc进行了轻量级的封装. hibernate 的基础还是我们java 反射机制 除了hiberante 这个orm框架,还有一些: apache ojb / toplink / ibatis / ejb cmp Apache OJB ()   Cayenne ()   Jaxor ()   Hibernate ()   iBatis ()   jRelationalFramework ()   mirage ()   SMYLE ()   TopLink () 把对象持久化 : 把对象的信息保存到数据库或者是文件. 总结: hibernate 是对jdbc进行轻量级封装的 orm 框架,充当项目的持久层. 为什么需要hibernate? 快如入门案例: hiberante 可以用在 j2se 项目,也可以用在 j2ee

django orm 多对多操作

一曲冷凌霜 提交于 2020-02-16 08:10:26
class Blog(models.Model): name = models.CharField(max_length=100) tagline = models.TextField() def __str__(self): return self.name class Author(models.Model): name = models.CharField(max_length=200) email = models.EmailField() def __str__(self): return self.name class Entry(models.Model): blog = models.ForeignKey(Blog, on_delete=models.CASCADE) headline = models.CharField(max_length=255) body_text = models.TextField() pub_date = models.DateField() mod_date = models.DateField() authors = models.ManyToManyField(Author) n_comments = models.IntegerField() n_pingbacks = models.IntegerField() rating

How to create indexes on multiple columns

谁说胖子不能爱 提交于 2020-02-15 13:48:11
问题 We have the following entity relationships where a User belongs to a particular Organization. My queries either look like "select * from User where org=:org" or "select * from User where org=:org and type=:type" I have separate indexes on the User class. The first query will be fine, because of the Index on the foreign key element. Does the second query mandate a multi columnindex on org and type columns. If so how should I annotate to create one such index. @Entity class User { ...

How to create indexes on multiple columns

丶灬走出姿态 提交于 2020-02-15 13:47:54
问题 We have the following entity relationships where a User belongs to a particular Organization. My queries either look like "select * from User where org=:org" or "select * from User where org=:org and type=:type" I have separate indexes on the User class. The first query will be fine, because of the Index on the foreign key element. Does the second query mandate a multi columnindex on org and type columns. If so how should I annotate to create one such index. @Entity class User { ...

ORM操作

柔情痞子 提交于 2020-02-15 12:33:17
必知必会13条 # 得到是queryset对象 all() # 查询所有结果 filter() # 过滤 exclude() # 排除 values() # 以字典的形式储存在对象列表里 values_list() # 以字典中的值的形式数据存放在元组里 order_by() # 排序 reverse() # 翻转 distinct() #从返回结果中剔除重复纪录 # 得到的是对象: get() # 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。 first() # 返回第一条记录 last() # 返回最后一条记录 # 其他: count() # 返回数据库中匹配查询(QuerySet)的对象数量。 exists() # 返回布尔值 基于字段的查询 models.Tb1.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值 models.Tb1.objects.filter(id__in=[11, 22, 33]) # 获取id等于11、22、33的数据 models.Tb1.objects.exclude(id__in=[11, 22, 33]) # not in models.Tb1.objects.filter(name__contains="ven") #

微软跨平台ORM框架之EFCore — 约定与属性映射

混江龙づ霸主 提交于 2020-02-13 18:58:09
EFCore中的约定简单来说就是规则,CodeFirst基于模型的约定来映射表结构。除此之外还有Fluent API、Data Annotations(数据注释) 可以帮助我们进一步配置模型。 按照这三者的优先级高低排序分别是:Fluent API、Data Annotations(数据注释)、约定。 1.约定 public class Person { public int ID { get; set; } public int Age { get; set; } public bool Status { get; set; } public string Name { get; set; } public DateTime CreateTime { get; set; } } 1.1 主键约定 我们有这样的一个Person类, 在实体中如果有名为ID的字段,或者实体名+ID的字段如:PersonID,那么EFCore生成的表会自动标识为主键。并且如果它的类型是int或Guid则会默认自增长。 映射之后的表结构: 我们可以看到C#中的int、bool、string、datetime,分别映射为 int,bit,navarchar(MAX),datetime2(7)。这是因为EFCore的默认约定是这么规定的。道友们可能会想自定义的映射,比如把string映射会varcher

orm和model表设计

纵饮孤独 提交于 2020-02-12 20:58:48
orm和model表设计 新建数据库,初始没有任何表 在pycharm中打开manage.py,运行makemigrations和migrate命令,自动创建表,映射在我们的数据库当中 查看setting文档,默认数据库为sqlite3,所以表是放在sqlite3中,此时修改默认数据库为我们的mysql引擎.name为数据库名称 再次运行makemigrations命令,没有问题(没有model,没有改变) 运行migrate命令,报错,原因是我们没有安装mysql数据库驱动 进入https://www.lfd.uci.edu/~gohlke/pythonlibs,ctrl+F搜索mysqlclient 查看自己的python版本(3.7 64位) 这里的位数是指python的位数,不是操作系统 下载完成之后,进入cmd安装. 首先进入文件所在的文件夹,然后进入自己的虚拟空间,输入命令,安装成功 回到pycharm,重新执行makemigrations和migrate命令,没有报错 再次查看数据库,刷新之后,基本表创建成功 django内置的基本的表创建成功,这些表我们可以不了解,但是必须要先创建好 接着,定义我们的modle,创建我们自己的表,根据需求,我们的表中需要包含姓名,邮箱,联系地址,留言 verbose_name相当于起注释,备注的作用 其中class