Hibernate核心API的详解
2017-02-19 16:51
429 查看
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操作实体类和属性 |
查询所有记录
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();
相关文章推荐
- Hibernate框架(一)文件配置、核心API、对象状态详解
- Hibernate核心API详解
- JAVAWEB开发之Hibernate详解(一)——Hibernate的框架概述、开发流程、CURD操作和核心配置与API以及Hibernate日志的使用
- hibernate教程--常用配置和核心API详解
- JAVAWEB开发之Hibernate详解(一)——Hibernate的框架概述、开发流程、CURD操作和核心配置与API以及Hibernate日志的使用
- 框架 day31 Hibernate入门(log4j简介,核心配置,映射配置,核心api,OID映射)
- EXT核心API详解(一)-Ext
- Hibernate入门-----Hiberna核心文件详解
- EXT核心API详解(四)-Ext.DomQuery/DomHelper/Template
- JPA核心API-基于Hibernate实现
- EXT核心API详解(三)-Ext.Element
- EXT核心API详解Ext.data(十二)-GroupingStore/JsonStore/SimpleStore javascript
- EXT核心API详解Ext.widgets(二十)-grid(2)
- Hibernate的五个核心API
- Hibernate框架(6) —— API详解之SessionFactory类
- Hibernate框架(7) —— API详解之Session类
- EXT核心API详解(四)Ext.DomQuery/DomHelper/Template
- EXT核心API详解(十三)--Tree/Node
- Ext核心API详解-Ext.tree.TreePanel
- (02)Hibernate核心API