hibernate常用的API

2017-07-14  本文已影响0人  exmexm

1、Configuration

图片.png
Configuration cfg = new Configuration();
        cfg.configure();

2、sessionFactory

图片.png
public class HibernateUtils {
    private static final Configuration cfg;
    private static final SessionFactory sessionFactory;
    
    static {
        cfg = new Configuration();
        cfg.configure();
        sessionFactory = cfg.buildSessionFactory();
    }
    
    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }

}

3、session

图片.png

4、transaction

图片.png

5、再议实体类的编写规则

1、属性是私有的,并且都有相应的get和set方法。
2、(hibernate特有的)必须有一个属性是作为一个实体的唯一值。
3、实体类属性在hibernate里面建议不使用基本类型,而是建议使用基本类型的包装类。
int->Integer
char->Character
其他的都是首字母大写就OK了
之所以用包装类的原因是:比如有学生参加考试,缺考可以直接用null值表示。

6、主键选择策略

图片.png

7、实体类操作

添加操作:

User user = new User();
        user.setUsername("winney");
        user.setPassword("1256");
        user.setAddress("GZ");
        session.save(user);

查询操作:

图片.png

修改操作:

图片.png

删除操作:

图片.png

7、实体类状态

1、瞬时态
实体没有id值,与session没有关系
2、持久态
实体有id值,且通过session查询出来
3、托管态
有id值,但是和session没有关系

saveOrUpdate()方法会根据实体对象的状态来调用是添加还是更新。
实体类对象状态是瞬时态,方法做的是添加操作。
实体类对象状态是托管态,方法做的是更新操作。
实体类对象状态是持久态,方法做的是更新操作。

8、hibernate一级缓存

hibernate 图片.png

二级缓存已经被redis替代了:
二级缓存默认是不打开的,要配置,缓存范围是整个sessionFactory范围。

图片.png 图片.png

8、事务操作的规范写法

图片.png

9、绑定本地线程session

1、首先配置核心配置文件
<property name="hibernate.current_session_context_class">thread</property>
2、重写HibernateUtils类
添加getSession方法

    public static Session getSession() {
        return sessionFactory.getCurrentSession();
    }
上一篇下一篇

猜你喜欢

热点阅读