Hibernate 菜鸟教程我爱编程走进Hibernate

Hibernate第二天

2018-05-27  本文已影响12人  小小程序员Eric

实体类编写规则

  1. 实体类的属性是私有的
  2. 私有属性使用公开的get和set方法进行操作
  3. 要求实体类里的有一个属性作为唯一值(一般使用id值)
  4. 实体类的属性的数据类型,在hibernate中建议使用基本数据类型的包装类。是为了避免空对象。

Hibernate主键生成策略

<generator class="native"></generator>
  1. increment:
  2. identity:
  3. sequence:
  4. native:根据使用的数据库,自动选择适合的值
  5. uuid:会自动生成一个32位的16进制的唯一字符串
  6. assigned:

实体类的crud操作

  1. session.save(object):添加记录
  2. session.get(Class,value):根据id查询
  3. session.update(object):修改
  4. saveOrUpdate(object):实现添加和修改

Hibernate的缓存

  1. 数据存到数据库中,数据库本身是文件系统。
  2. 把数据存到内存中,可以提高读取效率

Hibernate事务操作

Hibernate事务代码规范写法

SessionFactory sessionFactory = null;
Transaction tx = null;
Session session = null;
try{
    // 开启事务
    sessionFactory = HibernateUtils.getSessionFactory();
    session = sessionFactory.openSession();
    tx = session.beginTransaction();
    // 添加
    User user = new User();
    user.setUsername("Eric");
    user.setPassword("password");
    user.setAddress("Chendu China");
    // 提交事务
    tx.commit();
} catch(Exception e) {
    // 回滚事务
    e.printStackTrace();
    tx.rollback();
} finally {
    // 关闭
    session.close();
    sessionFactory.close();
}

Hibernate绑定session

  1. session类似于jdbc中的connection
  2. hibernate帮我们实现了本地线程绑定session
  3. 获取与本地线程绑定的session
    1. 在hibernate核心配置文件中配置
    <property name="hibernate.current_session_context_class">thread</property>
    
    1. 使用SessionFactory中的方法可以得到
    // 提供返回与本地线程绑定的session的方法
    public static Session getSessionObject(){
        return sessionFactory.getCurrentSession();
    }
    // 在代码中调用(操作结束后不需要手动关闭)
    Session session = HibernateUtils.getSessionObject();
    

Hibernate中的api使用

上一篇 下一篇

猜你喜欢

热点阅读