在信用办时.做失信.守信.黑名单这一块的时候.先把原来的需求看了看.紧接着就開始设计实体,这一块大部分都是同样的信息,所以就设计了一个实体,而且用一个状态标识出来是失信.守信还是黑名单. 在之后的改动中,特别不方便.每次改动这一块,这都要出问题.也就是说每一次都须要自己的实体去维护自己的状态. 可是假设我们把这个状态抽出来,就变成了我们公共的去维护这些"状态",这样就大大简化了我们的工作,我们仅仅须要对基本表的信息进行维护就能够了.这就是单表继承. 代码: 父类: @Entity(na…
一.持久化类 1.1 什么是持久化类? Hibernate是持久层的ORM映射框架,专注于数据的持久化工作.所谓的持久化,就是将内存中的数据永久存储到关系型数据库中.那么知道了什么是持久化,什么又是持久化类呢?其实所谓的持久化类知道是一个Java类与数据库表建立了映射关系,那么这个类称为是持久化类.其实你可以简单的理解为持久化类就是一个Java类有了一个映射文件与数据库的表建立了关系.那么我们编写持久化类的时候有哪些要求呢? 1.2 持久化类的编写规则 我们在编写持久化类的时候需要有一下几点需要…
一.小疑问的解答 问题一:到这里,有很多学习者会感到困惑,因为他不知道使用hibernate是不是需要自己去创建表,还是hibernate全自动,如果需要自己创建表,那么主外键这种设置也是自己设置吗?这让人感到很困惑,现在就来解决一下这个小疑问(如果知道了的可以直接跳过看下面的多对多映射关系讲解) 解答:从实际开发的角度说:肯定是先创建表,并且表中自己会导入初始数据,然后在逆向生成实体类,并且各种映射关系看自己需要什么就生成什么. 在我们测试和学习阶段也可以如此,先创建好数据库和表还有一些初始化…
一.Session概述 1.Session 接口是 Hibernate 向应用程序提供的操纵对数据库的最主要的接口, 它提供了基本的保存, 更新, 删除和加载Java 对象的方法. 2.理解Session的缓存 使用缓存的目的:尽量减少访问数据库的频率 (1)在 Session 接口的实现中包含一系列的 Java 集合, 这些 Java 集合构成了 Session 缓存. 只要 Session 实例没有结束生命周期, 存放在它缓存中的对象也不会结束生命周期 (2)当session的save()方…
下面示例在mybatis学习笔记(二)-- 使用mybatisUtil工具类体验基于xml和注解实现 Demo的基础上进行优化 以新增一个用户为例子,原UserMapper.xml配置如下: <insert id="addUser" parameterType="main.User"> insert into tb_user(name,age) values(#{name},#{age}) </insert> 注:parameterType=…
HQL语法 1.基本语法 String hql = " from com.yyb.domain.Customer ";//完整写法 String hql2 = " from Customer "; //简单写法 String hql3 = " from java.lang.Object ";//查询所有表 2.排序 //排序,和sql一样 String hql1 = " from Customer order by cust_id as…
一对多测试案例 1.类图 2.创建表 drop table if exists t_student ; drop table if exists t_class ; create table t_class ( id int(5) primary key , name varchar(150) ) ; create table t_student ( id int(10) primary key , name varchar(150) , class_id int(5) , foreign ke…
package cn.lonecloud.test.crud; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.junit.Before; import org.…
缓存:提高效率 硬件的 CPU缓存   硬盘缓存   内存 软件的  io流缓存 hibernate  的一级缓存   也是为了操作数据库的效率. 证明一级缓存在  : Person p=session .get(Person.class, 1); Person p1=session.get(Person.class,2); Person  p2=session.get(Person.class,3); System.out.println(p=p1); 控制台输出为: select   * …
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6768298.html  一:需要事务的Session操作 Session操作中,查询类操作是不需要事务就能生效的,如get.query等. 而save.update.delete等操作,则需要提交事务才能生效. 二:DAO层事务管理的缺点 DAO层主要负责数据的持久化操作,因此,也是session操作的主要位置.我们一般在DAO层针对一个表定义增删查改操作的方法,一个方法一个功能.因此,如果在DAO进行事务…