• 1-5 hibernate学习笔记(11-14章)


    一,概念详解

    1.持久化persistent 是指将内存中的数据保存到磁盘、数据库等存储设备中。

    2.持久化对象:已经储存到磁盘或者数据库中的业务对象。

    3.在java中对对象的持久化有三种方法:

      1)序列化对象,将对象存放到格式化的文本文件中

       2)将对象持久化到XML文档中

       3)将对象持久化到数据库中,一般为关系数据库

    关系数据库遵循的一条重要原则就是数据独立性,即数据可以独立于应用程序而存在

    4.应用程序的三层结构

    数据库层:存储需要持久化的数据。数据库对立与应用程序,提供了系统状态的一种持久化表现形式。

    表示层:提供了与用户交互的接口。实现用户操作界面,展现用户需要的数据。

    业务逻辑层:完成业务流程,处理表示层提交的数据请求,并将要保存的数据交给数据库。

    由于业务逻辑层还要操作数据库,所以又分离出持久层单独进行数据的增删改查。

    5.常见的持久层框架:hibernate、iBatis、JDO等。

    6.对象-关系映射 (Object/Relation Mapping)简称ORM

    7. hibernate是一个开源的ORM框架,它对JDBC进行了轻量级的封装。

    8.2001年发布了hibernate的第一个正式版本,

    2003年六月,hibernate2

    2005年三月,hibernate3

    9.可以用hibernate.properties或者hibernate.cfg.xml来配置和底层数据库的连接信息。更多的使用XML形式的配置文件。

    10. hibernate 5个核心接口:configuration,sessionFactory,session,transaction,query

    11.编写POJO(plain old java object)映射类User.java

    所有的持久类中必须拥有一个默认的构造方法,访问权限至少为包访问权限控制

    各个属性都要有getters和setters方法

    要有一个标识属性

    建议不要将持久化类声明为final.

    12.编写映射文件User.hbm.xml和hibernate.cfg.xml配置文件。

    如果同时存在xml和properties配置,xml会覆盖properties

    hibernate.connection.pool_size:配置连接池中所拥有的最大连接数。

    初始化时先创建一定数量的数据库连接放入到连接池中,需要时取走,用完后放回,可以再次被别的使用。无论数据库的连接是否被请求使用,连接池都将一直保证其所拥有的连接数。

    13.编写辅助工具类,HibernateUtil.Java

    1)Configuration cf=new Configuration().configure();

    当执行new时,先在classPath的跟目录下找properties,如果有则把配置加载进去。

    当执行.c当执行.configure()时,在根目录下找xml,如果配置了xml,则加载xml,如果配置重复,则xml会覆盖properties中设置的属性。

    configure()可传去path参数

    2) sessionFactory是线程安全的,可以被多个线程共享是sessionFactory实例重量级的,其创建过程耗时切占用资源多,因此在应用中只创建一次。只有应用中存在多个数据源时才为每个数据源创建一个sessionFactory

    3) hibernate session使用了延时加载机制,只有在真正访问数据库时才从连接池中获取数据库连接。

    session不是线程安全的,ThreadLocal模式可以解决此问题。

     14.DAO指的是数据库访问对象,J2EE开发人员常常使用DAO设计模式将底层的的数据访问逻辑和上层的业务逻辑分离。

    DAO模式是标准的J2EE设计模式之一,一个典型的DAO实现需要以下几个组件,

    一个DAO接口,

    一个DAO接口的具体类

    一个DAO工厂类

    数据传递对象或称值对象POJO

    可以不创建DAO工厂类,使用工厂类的好处是当需要替换DAO的实现类时,只需要修改DAO工厂中的方法代码,而不需要修改所有数据库操作的代码。

  • 相关阅读:
    【转】nginx(一) nginx详解
    美好生活需要全方位的保障
    Oracle私网mtu滚动修改实施方案
    小知识:后台执行Oracle创建索引免受会话中断影响
    小知识:Oracle RAC添加服务名实现单节点访问
    Windows平台安装Oracle11.2.0.4客户端报错INS-30131
    小知识:如何赋予用户查看所有存储过程和触发器的权限
    小知识:如何判定crontab任务的执行频度
    小知识:解决EXP-00003的报错
    Oracle删除索引规范
  • 原文地址:https://www.cnblogs.com/lukelook/p/7988016.html
Copyright © 2020-2023  润新知