session

映射一对多双向关联关系 cascade、inverse、属性

允我心安 提交于 2020-03-23 13:02:26
当类与类之间建立了关联,就可以方便的从一个对象导航到另一个对象。或者通过集合导航到一组对象。例如: 对于给定的Emp对象,如果想获得与它关联的Dept对象,只要调用如下方法 Dept dept=emp.getDept(); //从Emp对象导航到关联的Dept对象 以Dept(部门)类和Emp(员工)类为例: 一、配置双向一对多关联 需在Dept类中增加一个集合类型的emps属性 private Set<Emp> emps=new HashSet<Emp>(); public Set<Emp> getEmps() { return emps; } public void setEmps(Set<Emp> emps) { this.emps = emps; 如何在映射文件中映射集合类型的emps属性。由于在Dept表中没有直接与emps属性对应的字段。因此不能用<property>元素来映射emps属性,而要使用<set>元素: <set name="emps"> <key column="deptNo"></key> <!-- 多的一方 emp外键 --> <one-to-many class="Emp" /> </set> 解析: <set>元素的name属性:设定持久化类的属性名。此处为Dept类的emps属性。 <set>元素还包含两个子元素: ①<key>元素

Hibernate映射一对多双向关联关系及部门关联属性

元气小坏坏 提交于 2020-03-23 13:02:15
一对多双向关联关系:(Dept/Emp的案例)        既可以根据在查找部门时根据部门去找该部门下的所有员工,又能在检索员工时获取某个员工所属的部门。 步骤如下:   1.构建实体类(部门实体类加set员工集合)   2. 准备持久化类的映射文件 ( 部门配置中,植入一对多配置 )   3.构建大配置,关联小配置   4.构建测试类 1.构建实体类(部门类)   使用Set集合可以使保存的内容不重复。 员工类: 2. 准备持久化类的映射文件  Dept小配置: <set> 元素的 name 属性: 设定持久化类的属性名。此处为 Dept 类的 emps 属性。 <set> 元素还包含两个子元素: 《1》.<key> 元素: column 属性设定与所关联的持久化类对应的表的外键。 《2》.<one-to-many> 元素: class 属性设定与所关联的持久化类。 Emp小配置: 3.构建大配置,关联小配置(关键代码) 4.构建测试类: cascade 属性 none:当Session操纵当前对象时,忽略其他关联的对象。它是cascade属性的默认值. Save-update:当通过Session的save()、update()及saveOrUpdate()方法来保存或更新当前对象时,级联保存所有关联的新建的瞬时状态的对象,并且级联更新所有关联的游离状态的对象。 Delete

06章 映射一对多双向关联关系、以及cascade、inverse属性

倾然丶 夕夏残阳落幕 提交于 2020-03-23 13:02:02
当类与类之间建立了关联,就可以方便的从一个对象导航到另一个对象。或者通过集合导航到一组对象。例如: 对于给定的Emp对象,如果想获得与它关联的Dept对象,只要调用如下方法 Dept dept=emp.getDept(); //从Emp对象导航到关联的Dept对象 以Dept(部门)类和Emp(员工)类为例: 一、配置双向一对多关联 需在Dept类中增加一个集合类型的emps属性 private Set<Emp> emps=new HashSet<Emp>(); public Set<Emp> getEmps() { return emps; } public void setEmps(Set<Emp> emps) { this.emps = emps; 如何在映射文件中映射集合类型的emps属性。由于在Dept表中没有直接与emps属性对应的字段。因此不能用<property>元素来映射emps属性,而要使用<set>元素: <set name="emps"> <key column="deptNo"></key> <!-- 多的一方 emp外键 --> <one-to-many class="Emp" /> </set> 解析: <set>元素的name属性:设定持久化类的属性名。此处为Dept类的emps属性。 <set>元素还包含两个子元素: ①<key>元素

Hibernate关联关系配置(多对一,一对多)

半城伤御伤魂 提交于 2020-03-23 13:01:13
第一种关联关系:一对多(多对一) "一对多"是最普遍的映射关系,简单来讲就如员工与部门的关系。 一对多 :从部门的角度来说一个部门有多个员工,即为一对多。 多对一 :从员工的角度来说多个员工对应一个部门,即多对一。 多对一关系单向在hbm文件中的配置信息: Emp.hbm.xml中: <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <!-- package:要映射的对象所在的包(可选,如果不指定,此文件下所有的类都要指定全路径) auto-import 默认为true,在写HQL的时候自动导入包名 如果指定为false,在写HQL的时候必须要写上类的全名-- > <hibernate-mapping package="cn.xsy.entity.day_manytoone"> <class name="Emp" table="Emp"> <id name="empno" column="empno"> <generator class="native"></generator> </id> <many-to-one

Hibernate组件映射

北慕城南 提交于 2020-03-23 12:54:18
组件的映射 建立关系数据模型的一个重要原则是在不会导致数据冗余的前提下,尽可能减少数据库表中的数目及表之间的外键参照关系。以员工信息为例,员工信息中有员工的家庭地址信息,如果把地址信息单独放在一张表中,然后建立员工信息表和地址信息表之间的外键关系,当每次查询员工信息时,都需要建立这两个表的连接。建立表的连接是很耗时的操作,为了提高数据库运行性能,可以把这两张表的信息整合在一张员工信息表Empinfo中 提示: HibernateUtil工具类(用于获取session和关闭session) package cn.util; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateUtil { //初始化一个ThreadLocal对象,有get和set方法 private static final ThreadLocal<Session> sessionTL=new ThreadLocal<Session>(); private static Configuration configuration; private final static SessionFactory

06章 映射一对多双向关联关系、以及cascade、inverse属性

半世苍凉 提交于 2020-03-23 12:53:48
当类与类之间建立了关联,就可以方便的从一个对象导航到另一个对象。或者通过集合导航到一组对象。例如: 对于给定的Emp对象,如果想获得与它关联的Dept对象,只要调用如下方法 Dept dept=emp.getDept(); //从Emp对象导航到关联的Dept对象 以Dept(部门)类和Emp(员工)类为例: 一、配置双向一对多关联 需在Dept类中增加一个集合类型的emps属性 private Set<Emp> emps=new HashSet<Emp>(); public Set<Emp> getEmps() { return emps; } public void setEmps(Set<Emp> emps) { this.emps = emps; 如何在映射文件中映射集合类型的emps属性。由于在Dept表中没有直接与emps属性对应的字段。因此不能用<property>元素来映射emps属性,而要使用<set>元素: <set name="emps"> <key column="deptNo"></key> <!-- 多的一方 emp外键 --> <one-to-many class="Emp" /> </set> 解析: <set>元素的name属性:设定持久化类的属性名。此处为Dept类的emps属性。 <set>元素还包含两个子元素: ①<key>元素

hibernate的映射关系之一对多

╄→尐↘猪︶ㄣ 提交于 2020-03-23 12:52:27
关系 :事物之间相互作用、相互联系的状态。范围最大。 联系 :在关系数据库中表示实体与实体之间的联系,1:1,1:n,m:n。 关联 :表示对象之间的关系,既有数量性,又有方向性;动词:将对象之间通过某种方式联系起来。 映射 :这里指java对象和数据库表的一种对应关系。动词:形成这种对应关系。 级联 :有关系的双方中操作一方,另一方也将采取一些动作。 关联的联系种类 在不考虑关联的方向前提下,联系就是关系数据库中表示实体与实体之间的联系,1:1,1:n,m:n。 一对一联系(1:1):如用户和身份证、一夫一妻 一对多联系(1:n):如班级和学生 多对多联系(m:n):如学生和选课 关联的方向 关联关系的方向可分为单向关联和双向关联。 双向关联的方向其实就不重要了,因为通过任一一方都可以维护彼此的关系。也就是说:在双向关联中一对多和多对一都是一样的。 利用Java Project项目演示试用Hibernate技术添加数据到数据库 1 建立项目之后首先呢肯定是需要导入相关的JAR包的 2 然后是创建实体类 package cn.itcast.hiberate.sh.domain; public class Student { private Long sid; private String sname; private String description; public Long

cookie与session的区别

我是研究僧i 提交于 2020-03-23 12:16:24
1.概述 cookie   位于用户的计算机上,用来维护用户计算机中的信息,直到用户删除。比如我们在网页上登录某个软件时输入用户名及密码时如果保存为cookie,则每次我们访问的时候就不需要登录网站了。我们可以在浏览器上保存任何文本,而且我们还可以随时随地的去阻止它或者删除。我们同样也可以禁用或者编辑cookie,但是有一点需要注意不要使用cookie来存储一些隐私数据,以防隐私泄露 session   session称为会话信息,位于web服务器上,主要负责访问者与网站之间的交互,当访问浏览器请求http地址时,将传递到web服务器上并与访问信息进行匹配, 当关闭网站时就表示会话已经结束,网站无法访问该信息了,所以它无法保存永久数据,我们无法访问以及禁用网站        2.区别: cookie的存储限制了数据量,只允许4KB,而session是无限量的; 我们可以轻松访问cookie值但是我们无法轻松访问会话值,因为它更安全; 设置cookie时间可以使cookie过期。而使用session-destory(),可以将会话销毁。 3.总结:   如果我们需要经常登录一个站点时,最好用cookie来保存信息,要不然每次登陆都特别麻烦,如果对于需要安全性高的站点以及控制数据的能力时需要用会话效果更佳,当然我们也可以结合两者,使网站按照我们的想法进行运行 来源: https:/

Shiro的 rememberMe 功能使用指导(为什么rememberMe设置了没作用?)

戏子无情 提交于 2020-03-23 12:07:49
UsernamePasswordToken token = new UsernamePasswordToken(loginForm.getUsername(),loginForm.getPassword()); if(loginForm.getRememberMe() != null && "Y".equals(loginForm.getRememberMe())){ token.setRememberMe(true); } 你可以自己设置一个标志位,然后根据这个标志位判断一下用户是否勾选了记住我,如果勾选了就使用 token.setRememberMe(true) 设置为记住我。 相信很多人跟我一开始想的一样,觉得这样设置完了,然后不退出直接关浏览器再打开浏览器,进入我们的网站就会自动登陆。但是结果是:当你重开了浏览器后,进入网站依然让你输入用户名和密码! 那么,究竟这个功能要怎么使用呢? 原理解释 shiro对cookie做了什么? 其实你设置了这个rememberMe之后shiro还是有做一点事情的,它会生成一个cookie值叫 rememberMe 并保存在你的浏览器里面,而且这个参数会随着你调用 subject.logout() 会被自动清除。这个参数的值是一串很长的Base64加密过的字符串,大概长这样 名称: rememberMe 内容:

Hibernate系列之基本配置

荒凉一梦 提交于 2020-03-23 11:37:36
一、概述   Hibernate是一个开放源码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使我们可以使用对象的编程思维来操作数据库。 二、配置准备   IDE:Eclipse   下载Jar包:    三、配置步骤   1、创建新的Java项目      2、建立用户库-hibernate,引入相应的jar包 项目右键-build path->configue build path->add library 选择user library,在其中新建library,命名为Hibernate 在该library中加入Hibernate所需要的jar包      3、引入mysql的驱动包   4、在mysql中建立相应的数据库以及表   5、建立Hibernate配置文件hibernate.cfg.xml   这部分可以从参考文档中拷贝,然后修改对应的数据库连接。eg: <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">