1.表User id主键,username,password,dept... 表Attendence id主键,uid外键,time... @ManyToOne @JoinColumn(name = "uid",referencedColumnName="id") private User user; public User getUser() { return user; } public void setUser(User user) { this.user =…
引用:http://blog.sina.com.cn/s/blog_53729e4601011wja.html MySql外键设置详解   (1) 外键的使用: 外键的作用,主要有两个:    一个是让数据库自己通过外键来保证数据的完整性和一致性    一个就是能够增加ER图的可读性    有些人认为外键的建立会给开发时操作数据库带来很大的麻烦.因为数据库有时候会由于没有通过外键的检测而使得开发人员删除,插入操作失败.他们觉得这样很麻烦其实这正式外键在强制你保证数据的完整性和一致性.这是好事儿.…
1.外键的作用,主要有两个:     一个是让数据库自己通过外键来保证数据的完整性和一致性     一个就是能够增加ER图的可读性 2.外键的配置 1)先创建一个主表,代码如下: #创建表student,并添加各种约束 create table student ( id int primary key , #主键约束 name varchar(20) , #唯一约束 age int NOT NULL, #非空约束 sex varchar(2) , address varchar(20) defa…
确切的说应该是对象的序列化,一般程序在运行时,产生对象,这些对象随着程序的停止运行而消失,但如果我们想把某些对象(因为是对象,所以有各自 不同的特性)保存下来,在程序终止运行后,这些对象仍然存在,可以在程序再次运行时读取这些对象的值,或者在其他程序中利用这些保存下来的对象.这种情况 下就要用到对象的序列化. 只有序列化的对象才可以存储在存储设备上.为了对象的序列化而需要继承的接口也只是一个象征性的接口而已,也就是说继承这个接口说明这个对象可以 被序列化了,没有其他的目的.之所以需要对象序列化,是…
选择Database—>Edit Current DBMS选择Scripts->Objects->Reference->ConstName可以发现右侧的Value为: FK_%.U8:CHILD%_%.U9:REFR%_%.U8:PARENT% 可见,该命名方法是:'FK_'+8位子表名+9位Reference名+8位父表名,你可以根据这中模式自定义为: FK_%.U7:CHILD%_RELATIONS_%.U7:PARENT% 但是注意:oracle中约束.表名.字段名都不能超过…
Hibernate的实体类中为什么要继承Serializable?   hibernate有二级缓存,缓存会将对象写进硬盘,就必须序列化,以及兼容对象在网络中的传输 等等. java中常见的几个类(如:Interger.String等),都实现了java.io.Serializable接口. 实现 java.io.Serializable 接口的类是可序列化的.没有实现此接口的类将不能使它们的任一状态被序列化或逆序列化.序列化类的所有子类本身都是可序列化的.这个序列化接口没有任何方法和域,仅用于…
在时间类型DATE 属性上添加一个 @Temporal(TemporalType.DATE)(精确到年月日)@Temporal(TemporalType.TIME)(精确到时分秒)@Temporal(TemporalType.TIMESTAMP)(默认年月日时分秒)示例: @Temporal(TemporalType.DATE)private Date updateDate;有了这个就不需要用java代码将时间戳,转换成需要的日期格式.直接在实体类中进行注解!…
启动报错如下图所示: 解决方案: 查看网上的资料,大部分都说在实体类中没有添加加主键的注解@Id,这个是必须的.但是我的实体类中明明已经添加了@Id,为什么还会报这个错误呢? 后来检查了很久,发现是我import的包出现了错误,正确的应该是import javax.persistence.Id 而我却导入了org.springframework.data.annotation.Id 这样虽然@Id 在IDE语法检查时不会报错,但并会使我编译错误起不来,因此运行时会报上面但错误. 参考文章:htt…
今天有个新项目中需要使用到hibernate,刚好数据库表已经创建完毕,就顺便来总结一下通过myEclipse创建hibernate的实体类. 1..在myEclipse中选择MyEclipse Database Explorer视图→右键单击→new Databaes Driver→选择Driver template→(这里我选择使用Oracle(Thin driver))→输入名字Driver name:test→输入Connection URL(根据模版填入IP及端口jdbc:oracle…
一.在application.yml配置中添加数据库根据实体类自动创建数据库表的配置(这里数据库采用MySQL数据库) jpa: database: MYSQL show-sql: true #Hibernate ddl auto (validate|create|create-drop|update) hibernate: ddl-auto: update naming: physical-strategy: org.hibernate.boot.model.naming.PhysicalNa…
php 5.4中的traits,是新引入的特性,中文还真不知道如何准确翻译好.其实际的目的, 是为了有的场合想用多继承,但PHP又没多继承 ,于是就发明了这样的一个东西. Traits可以理解为一组能被不同的类都能调用到的方法集合,但Traits不是类!不能被实例化.先来例子看下语法: trait myTrait{function traitMethod1(){}function traitMethod2(){}}//然后是调用这个traits,语法为:class myClass{use myT…
主要是在实体类中验证 using System; namespace Jone.Function.attribute{        /// <summary>        /// 附加在数据实体用于描述如何验证合法性        /// </summary>        [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false, Inherited =…
1.Maven文件 <!--读取Excel的架包--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.15</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.poi/p…
问题: MyBatis中当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 解决方案: 1.写sql语句时起别名 <!-- id属性:必须是接口中方法的方法名 resultType属性:必须是方法的返回值的全类名--> <select id="getEmployeeById" resultType="MyBatis中当实体类中的属性名和表中的字段名不一样怎么办.entities.Employee"> select id,last_name…
当实体类中entity/DTO/VO等类中,有枚举值,应该怎么输出? 问题: orderStatus 和 payStatus都是枚举类,并且枚举的个数达地10来个,我们不可能在模板页面(jsp/ftl/html)等页面进行多大10多项的if判断,去一个一个的判断值,假如以后随着业务的增多,枚举个数越来越多,改怎么办?   /**订单*/ @Data //get/set //将值是null的数据剔除 @JsonInclude(JsonInclude.Include.NON_NULL) public…
使用Code First模式实现给实体类添加复合主键,代码如下: using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Web; namespace MyFirstMvcApp.Models { //…
Hibernate配置实体类的属性既可以在页面显示关联实体类的所有属性,在插入该属性时又可以只插入单一属性 private String companyCode; private CompanyEntity company; @Column(name = "company_code", length = 32) public String getCompanyCode() { return companyCode; } public void setCompanyCode(String…
MyBatis系列二  之   数据库列名于程序实体类中字段名称不一致 情景:当数据库中的列名与我们程序实体类中的字段名称不一致         使用ResultMap节点配置信息  在映射文件中  mapper根节点下配置ResultMap节点信息 <resultMap type="Student" id="studentMapper"> <result column="sname" property="stunam…
首先:TMD,这个问题花了我两个多小时,居然是因为一个字母的大小写导致的,我瞬间就&Y^%^&%&()*%¥%¥¥&^#@%&; 事情是酱紫的: 我定义了一个变量,用来处理数据,但是变量的第一个字母随手写成了大写,结果在前台死活展示不出来,但是后台打log可以看到数据确实处理过了,哎呀,各种百度,谷歌,TMD,后台各种排除,看到前面的能显示出来的变量名的首字母都是小写,然后试着改成小写,结果就OK了! fuck,多么,操蛋的一个问题,细节决定成败,多么痛的领悟! 总…
django开发中关于外键设置 我们建模型的时候会用到ForeignKey 而由于外键的约数会导致一些保存 所有我们ctrl+左键进入源码 源码 def __init__(self, to, on_delete=None, related_name=None, related_query_name=None, limit_choices_to=None, parent_link=False, to_field=None, db_constraint=True, **kwargs): 我们要把源码…
在动态sql的使用where时,if标签判断中,如果实体类中的某一个属性是String类型,那么就可以这样来判断连接语句: 如果是String类型的字符串进行判空的时候: <if test="inspectOrg != null and inspectOrg != ''"> INSPECT_ORG = #{inspectOrg} </if> 但是如果是实体类中的Integer类型,就是去掉空字符串的判断: <if test="inspectTai…
1,实体类相同属性间赋值 /// <summary> /// 将实体2的值动态赋值给实体1(名称一样的属性进行赋值) /// </summary> /// <param name="model1">实体1</param> /// <param name="model2">实体2</param> /// <returns>赋值后的model1</returns> prote…
ON DELETE restrict(约束):当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除. no action:意思同restrict.即如果存在从数据,不允许删除主数据. cascade(级联):当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则也删除外键在子表(即包含外键的表)中的记录. set null:当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为nu…
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 5-13  过滤预先加载的实体集合 问题 你想过滤预先加载的实体集合,另外,你想使用Code-First来管理数据访问 解决方案 实体框架不支持直接使用Include()时过滤关联实体集合,但我们可以通过创建一个匿名类型来完成同样的事情,匿名类型包含实体和要过滤的关联实体集合. 假设你有如图5-28所示的概念模型 图5-28 一个包含movies(电影)和它的categories(目录)的模…
事实上,单向1-1与N-1的实质是相同的,1-1是N-1的特例,单向1-1与N-1的映射配置也非常相似.只需要将原来的many-to-one元素增加unique="true"属性,用于表示N的一端也必须是唯一的,在N的一端增加了唯一的约束,即成为单向1-1.基于外键的单向1-1的配置将与无连接表N-1关联的many-to-one增加unique="true"属性即可. 一.模型介绍 一个人(account)对应一个地址(address). 二.实体 account类…
本文参加博文大赛,如果您满意的话麻烦点击这里给我投票原,查看原文点击这里.最近自学数据库MySQL,然后有个疑问,一直不得其解,查询了相关资料,最后还是没有解决. 我的疑问是 "使用外键约束" ,然后我对 "外键" 这个词不是很理解,查询相关资料都是讲一些术语,说外键的主要作用是:保持数据的一致性.完整性.听得我是一头雾水. 关于外键,我有自己的一些理解,但是不晓得是否正确,举个例子来表达我的看法:假如现在需要建立一个表,一个什么样的表呢?一个班级的学生个人信息表:…
在Mysql中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因. 1.  两个字段的类型或者大小不严格匹配.例如,如果一个是int(10),那么外键也必须设置成int(10),而不是int(11),也不能是tinyint.另外,你还必须确定两个字段是否一个为 signed,而另一个又是unsigned(即:无符号),这两字段必须严格地一致匹配,更多关于signed和unsigned的信息,请参阅:http://www.…
一.本次数据库中有student,course,sc表,其设置情况 -- 创建course表 CREATE TABLE `course` ( `cno` ) NOT NULL, `cname` ) DEFAULT NULL, `lhour` ) DEFAULT NULL, `credit` ) DEFAULT NULL, `semester` ) DEFAULT NULL, PRIMARY KEY (`cno`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --…
一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性 外键:是另一表的主键, 外键可以有重复的, 可以是空值,用来和其他表建立联系用的.所以说,如果谈到了外键,一定是至少涉及到两张表.例如下面这两张表: 上面有两张表:部门表(dept).员工表(emp).Id=Dept_id,而Dept_id就是员工表中的外键:因为员工表中的员工需要知道自己属于哪个部门,就可以通过外键Dep…
  Mysql中如果表和表之间建立的外键约束,则无法删除表及修改表结构.   解决方法是在Mysql中取消外键约束:  SET FOREIGN_KEY_CHECKS=0;     然后将原来表的数据导出到sql语句,重新创建此表后,再把数据使用sql导入,   然后再设置外键约束: SET FOREIGN_KEY_CHECKS=1;  …