首页 > 学院 > 开发设计 > 正文

Hibernate核心API的详解

2019-11-08 02:23:12
字体:
来源:转载
供稿:网友

Configuration

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

sessionFactory(重点)

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

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

在hibernate操作的过程中,建议一个项目一般创建一个sessionFactory对象

具体实现(创建一个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

类似于jdbc中connection

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

添加save()更新update()删除delete()根据id查询get方法

session对象为单线程对象

session对象不能共用

Transaction

事务对象

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

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

实现查询的对象

Query 对象

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

SQL与HQL的区别

SQL HQL
SQL操作的是表和字段 HQL操作实体类和属性

HQL查询语句

查询所有记录

from 实体类名称

Query对象的使用

创建Query对象方法里写HQL语句调用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]*/

Criteria(标准)对象

不需要使用语句

实现过程

创建Criteria对象

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

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();
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表