Hibernate核心API的详解

来源:互联网 发布:单词带读软件 编辑:程序博客网 时间:2024/05/20 02:50

Configuration

Configuration cfg = new Configuration();cfg.configure();1. 到src下面找到名称hibernate.cfg.xml配置文件,创建对象,把配置文件放到对象里面(加载配置文件)

SessionFactory(重点)

  1. 使用configuration对象创建sessionFactory对象
    – 自动创建表时需配置的项目
    update

  2. 创建sessionFactory过程中,特别消耗资源

    • 在hibernate操作的过程中,建议一个项目一般创建一个sessionFactory对象
  3. 具体实现(创建一个sessionFactory对象)

    • 写工具类,写静态代码块实现
      静态代码块在类中加载时,只执行一次
     package com.jeff.util;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;public class HibernateUtil {    private final static Configuration cfg;    private final static SessionFactory sessionFactory;    //静态代码块实现sessionFactory对象创建    static{        cfg = new Configuration();        cfg.configure();        sessionFactory = cfg.buildSessionFactory();    }    public static SessionFactory getSessionFactory(){        return sessionFactory;    }}  

Session

  1. 类似于jdbc中connection

  2. 调用session里面不同的方法实现crud操作

    • 添加save()
    • 更新update()
    • 删除delete()
    • 根据id查询get方法
  3. session对象为单线程对象

    • session对象不能共用

Transaction

事务对象

  1. 提交和回滚
    commit();
    rollback();

  2. 概念
    原子性、一致性、隔离性、持久性

实现查询的对象

  1. Query 对象

    • 使用此对象,不需要写sql语句,但需写HQL语句

    • SQL与HQL的区别

      SQL HQL SQL操作的是表和字段 HQL操作实体类和属性
    • HQL查询语句

      • 查询所有记录

        from 实体类名称
    • Query对象的使用

      1. 创建Query对象
      2. 方法里写HQL语句
      3. 调用Query方法得到获取结果集
        //1. 创建Query对象//   方法里面写HQL语句Query query = session.createQuery("from User");//2. 调用query方法得到结果List<User> userList = query.list();for (User user : userList) {    System.out.println(user.toString());}/*    -- 运行结果    Hibernate:         select            user0_.uid as uid1_0_,            user0_.username as username2_0_,            user0_.password as password3_0_,            user0_.address as address4_0_         from            t_user user0_    User [uid=1, username=Jeff, password=123456, address=广东茂名]    User [uid=2, username=李白, password=123456, address=广东广州]    User [uid=3, username=小马, password=123456, address=China]*/
  2. Criteria(标准)对象

    • 不需要使用语句
    • 实现过程

    • 创建Criteria对象

    • 调用对象相应的查询方法
    //1. 创建Criteria对象Criteria criteria = session.createCriteria(User.class);//2. 调用对象方法得到结果List<User> userList = criteria.list();
  3. SQLQuery 对象

    • 实现原始SQL查询
//1. 创建SQLQuery对象SQLQuery sqlQuery = session.createSQLQuery("select * from t_user");//2. 调用对象方法得到结果List<Object[]> list = sqlQuery.list();for (Object[] obj : list) {    //将数组转为字符串形式    String arrayToStr = Arrays.toString(obj);    System.out.println(arrayToStr);}/*    -- 运行结果 --    Hibernate:         select            *         from            t_user    [1, Jeff, 123456, 广东茂名]    [2, 李白, 123456, 广东广州]    [3, 小马, 123456, China]*/- SQLQuery对象的查询方法未作处理时返回的是对象数组集
  • 实现返回结果集是对象的方法
//1. 创建SQLQuery对象SQLQuery sqlQuery = session.createSQLQuery("select * from t_user");//得到返回对象的方法sqlQuery.addEntity(User.class);//2. 调用对象方法得到结果List<User> list = sqlQuery.list();
0 0
原创粉丝点击