07---持久化配置

13人阅读 评论(0) 收藏 举报
分类:

持久化配置

1.持久化对象 Persistent Object 
PO = POJO + hbm映射配置
    编写规则
必须提供无参数 public 构造器
所有属性 private 提供 publicgettersetter方法
必须提供标识属性,与数据表中主键对应 ,例如 Customer id属性 
PO类属性应尽量使用基本数据类型的包装类型(区分空值)  例如 int --- Integer  long--- Long 
不要用final修饰(将无法生成代理对象进行优化)为什么?

    面试题:理解Session的get方法与load方法区别
@Test
// 测试session对象 get 和 load的区别
public void testGetAndLoad() {
Session session = HibernateUtils.openSession();
Transaction transaction = session.beginTransaction();
 
// 根据id 查询
Customer customer = (Customer) session.load(Customer.class, 1);
System.out.println(customer);
 
transaction.commit();
session.close();
}
    我们可以进行Debug查看cutomer对象,(断点设置在打印语句)
    session.get 方法, 查询立即执行 , 返回Customer类对象 
    session.load 方法,默认采用延迟加载数据方式,不会立即查询,返回 Customer类子类对象 (动态生成代理对象)
* 如果 PO类使用final修饰,load无法创建代理对象,返回目标对象本身 (load效果和 get效果 相同 )

2.理解OID 
    OID 指与数据表中主键对应 PO类中属性,例如 Customer类 id属性 
    Hibernate框架使用OID来区分不同PO对象 
        * 例如 内存中有两个PO对象,只要具有相同 OID, Hibernate认为同一个对象 
* Hibernate 不允许缓存同样OID的两个不同对象 

3.区分自然主键和代理主键 
    使用具有业务含义字段作为主键 ----- 自然主键 ,例如:身份证号, 用户名(难维护)
    随机生成,不具备业务含义的字段 ----代理主键 , 例如 流水号 ,UUID 
*** 现在企业系统,大多使用代理主键

4.使用基本数据类型还是包装类型 ?    使用基本类型,无法区分 0 和 null , 使用int类型分数,如果学生分数为0 可以没有考试, 也可能考试得了0分 
    使用包装类型,如果不设置数据,数据表存放null ,而不是默认值 0
* 以后开发中,PO类属性都使用包装类型
查看评论

Redis实战总结-配置、持久化、复制

Redis的配置主要放置在redis.conf,可以通过修改配置文件实现Redis许多特性,比如复制,持久化,集群等。 redis.conf部分配置详解 # 启动redis,显示加载配置red...
  • guweiyu_thinker
  • guweiyu_thinker
  • 2017-12-19 18:34:05
  • 1458

ActiveMQ持久化配置

ActiveMQ持久化配置 1  概述 ActiveMQ是一种开源的,实现了JMS1.1规范的,面向消息(MOM)的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信。ActiveM...
  • vtopqx
  • vtopqx
  • 2016-06-12 22:58:23
  • 4961

Redis持久化配置

对于Redis来说是存储在缓存之中的,因此缓存数据丢失问题一直是程序员们相当关注的话题,因此对缓存中的数据定时进行持久化的必要性就相当突出了,以下是Redis持久化的相关配置: 1  第一种: RD...
  • vtopqx
  • vtopqx
  • 2015-07-10 17:40:26
  • 40638

ActiveMQ(三)———spring消息持久化配置

一、Topic与Queue比较1、Topic Publish Subscribe messaging 发布订阅消息。 topic数据默认不落地,是无状态的。 并不保证publisher发布的每条数据,...
  • u013755987
  • u013755987
  • 2017-01-10 00:04:16
  • 1412

关于ActiveMQ中Topic持久化配置问题

说明:记录一下在ActiveMQ中踩过的坑。 关键字:jms:listener-container,topic订阅持久化。 Demo的目录结构(说明中有各个文件的作用) 不懂ActiveMQ...
  • qq_34934864
  • qq_34934864
  • 2017-12-06 09:38:11
  • 247

Hibernate持久化映射文件配置说明

在Hibernate项目中,需要对pojo实体对象与对应的数据库表做持久化映射。如下:数据库表的定义:CREATE TABLE `experience` (  `id` INT(11) NOT NUL...
  • rj042
  • rj042
  • 2011-03-10 18:58:00
  • 1755

Quartz存储与持久化-基于Spring的配置

在上文【Quartz】Quartz存储与持久化-基于quartz.properties的配置 ,是通过配置quartz.properties文件的方式来实现持久化的。本文将通过spring配置的方式来...
  • github_36429631
  • github_36429631
  • 2017-03-18 14:44:01
  • 594

【Quartz】Quartz存储与持久化-基于Spring的配置

在上文【Quartz】Quartz存储与持久化-基于quartz.properties的配置 ,是通过配置quartz.properties文件的方式来实现持久化的。本文将通过Spring配置的方式来...
  • Evankaka
  • Evankaka
  • 2015-05-07 09:40:48
  • 9788

Quzrtz.net-sqlite 数据库持久化配置

Quzrtz.net-sqlite 数据库持久化配置 官方配置持久化资料:http://www.quartz-scheduler.net/documentation/quartz-2.x/tut...
  • xxj_jing
  • xxj_jing
  • 2016-12-22 16:23:18
  • 726
    个人资料
    等级:
    访问量: 5825
    积分: 741
    排名: 7万+
    文章存档