美文网首页
hibernate常用的API

hibernate常用的API

作者: exmexm | 来源:发表于2017-07-14 19:22 被阅读0次

    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();
        }
    

    相关文章

      网友评论

          本文标题:hibernate常用的API

          本文链接:https://www.haomeiwen.com/subject/deanhxtx.html