hibernate笔记

一. hibernate数据持久化组件
对象持久化(Object Persistence):把数据保存在永久存储介质中(数据库)
        1.为什么要持久化:
                 a.内存是暂时存储设备,断电后数据易丢失
                 b.网络传输无法传输内存中的对象,需要将对象外化
                 c.内存中数据查询,组织不方便
                 d.内存只能存储少量数据
        2.怎样持久化
                 a.对象序列化 --> 二进制流
                         合并存储,粒度大,无规律
                         不支持检索
                         只适合少数个别对象的序列化
                 b.用JDBC/EJB/ORM 将数据存入数据库
                      用JDBC:(Java DB Connection)
                  优点:底层开发,控制力强(细); 效率最高; 标准的(SQL)JDBC,有可移植性
                  缺点:过于复杂; 代码量大; 可维护性差(代码重用性低); 
                      用EJB:(Entity Java Bean)
                 优点:直接自动生成JDBC代码; 持久对象(PO)的状态由服务器管理; 声明式的事务
                  缺点:功能不全(特殊的组件,不能做继承关系); EJB容器是侵入性容器,失去OO的优点; 调试更复杂
                    用ORM:(object relation mapping)对象关系映射
                  优点:自动生成JDBC(代码量下降); 使用(plain oldest java object---pojo),非侵入型; 提供状态管理; 难度下降,不需要容器
                  缺点:由于开源, 文档少; bug多; 技术支持差

 结论: 用java开发-->必须将数据持久化-->用数据库持久化-->须用ORM-->需要用Hibernate


 hibernate.cfg.xml的写法
       <?xml version="1.0"?>
       <!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
   "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
   <!-- 与数据库建立连接 -->
   <hibernate-configuration>
         <session-factory>
             <property name="show_sql">true</property><!--显示sql语句-->
              <property name="format_sql">true</property><!--使显示的sql语句格式化-->
             <property name="hbm2ddl.auto">create</property><!--如果原表存在则先删原表再创建新表-->
             <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <property name="connection.url">jdbc:oracle:thin:@10.10.3.237:1521:tarena</property>
                                          <property name="connection.username">openlab</property>
                                          <property name="connection.password">open123</property>
                                          <property name="connection.isolation">2</property><!-- 设置事务隔离级别(2表示避免脏读) -->
                                          <property name="dialect">org.hibernate.dialect.MySQLDialect</property><!-- 使用的数据库方言信息 -->
<mapping resource="com/tarena/biz/entity/Account.hbn.xml"/><!-- 映射文件的位置,和实体类放在同一目录 -->
       </session-factory>
</hibernate-configuration>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值