当前位置: 代码迷 >> 综合 >> Hibernate工具类使用学习
  详细解决方案

Hibernate工具类使用学习

热度:39   发布时间:2023-09-18 15:38:08.0

Session,Query,Criteria,SQLQuery四种工具类的使用,套路都类似,具体的使用方法的差别看代码。有注释:

/*** 测试session会话的update,delete,insert方法*/@Testpublic void testSession(){Configuration configuration = new Configuration();configuration.configure();SessionFactory sessionFactory = configuration.buildSessionFactory();//获得全新的session会话Session session = sessionFactory.openSession();//开启事务Transaction transaction = session.beginTransaction();
//        User user = (User)session.load(User.class,2);User user = new User(0,"leiheng","1234",Date.valueOf("1997-05-13"));session.save(user);System.out.println(user);//提交事务transaction.commit();//手动关闭session会话session.close();sessionFactory.close();return;}/*** 测试Query查询*/@Testpublic void testQuery(){//获取用户核心配置对象Configuration configuration = new Configuration();//加载核心配置文件,默认加载hibernate.cfg.xmlconfiguration.configure();//构建SessionFactorySessionFactory sessionFactory = configuration.buildSessionFactory();//生产Session会话对象Session session = sessionFactory.openSession();Transaction transaction = session.beginTransaction();//获取Query查询对象,Hibernate通过类来映射表Query query = session.createQuery("from User where username = ?");query.setParameter(0,"liqiaoyu");
//        //分页查询limit ?,?
//        query.setFirstResult(0);
//        query.setMaxResults(3);//从0数据开始一次3个Object o = query.uniqueResult();System.out.println(o);//返回多行数据/*** list()多行* uniqueResult()单行*/
//        List list = query.list();
//        for(Object o:list){
//            System.out.println(o);
//        }//手动关闭session会话session.close();sessionFactory.close();return;}/*** 测试Criteria* 已经废弃*/@Testpublic void testCriteria(){//获取用户核心配置对象Configuration configuration = new Configuration();//加载核心配置文件,默认加载hibernate.cfg.xmlconfiguration.configure();//构建SessionFactorySessionFactory sessionFactory = configuration.buildSessionFactory();//生产Session会话对象Session session = sessionFactory.openSession();Transaction transaction = session.beginTransaction();//创建Criteria对象Criteria criteria = session.createCriteria(User.class);User user = new User(5,"leiheng","1234",Date.valueOf("1997-07-08"));//根据属性来取对象,在Restrictions静态方法中提供条件,查询由critearia对象处理//gt是大于,ge是大于等于criteria.add(Restrictions.gt("id",2));System.out.println(criteria.list());//模糊查询criteria.add(Restrictions.like("username","%li%"));//其余建议百度,套路类似,反正都是一个接口System.out.println(criteria.list());//手动关闭session会话transaction.commit();;session.close();sessionFactory.close();return;}/*** SQLQuery* 使用原生sql来进行查询,因为并不是所有sql都可以用hql表达*/@Testpublic void testSQLQuery(){//获取用户核心配置对象Configuration configuration = new Configuration();//加载核心配置文件,默认加载hibernate.cfg.xmlconfiguration.configure();//构建SessionFactorySessionFactory sessionFactory = configuration.buildSessionFactory();//生产Session会话对象Session session = sessionFactory.openSession();Transaction transaction = session.beginTransaction();//创建SQLQuery,注意要封装实体类需要addEntitySQLQuery sqlQuery = session.createSQLQuery("select * from user").addEntity(User.class);List<Object> list = sqlQuery.list();for(Object o:list){System.out.println(o.toString());}//手动关闭session会话transaction.commit();;session.close();sessionFactory.close();return;}

 

  相关解决方案