Hibernate核心API的详解
来源:互联网 发布:单词带读软件 编辑:程序博客网 时间:2024/05/20 02:50
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();
0 0
- Hibernate核心API的详解
- Hibernate核心API详解
- Hibernate 核心的API
- Hibernate的核心API
- Hibernate的五个核心API
- 5.Hibernate核心的API
- Hibernate核心API(理解)
- Hibernate核心API
- Hibernate:核心API
- Hibernate核心API
- Hibernate核心API
- hibernate核心API简介
- hibernate核心api
- Hibernate入门----核心API
- hibernate核心API介绍
- Hibernate 核心 api
- hibernate核心API
- Hibernate核心API
- Android-开源框架之XUtils的基本使用
- Java集合系列(10)--TreeSet
- poj Babelfish(二分||map)
- Java Fundamental day03
- 40、Linux初步(CentOS 7下安装配置FTP)
- Hibernate核心API的详解
- Android 官方示例:android-architecture 学习笔记(五)之todo-mvp-clean
- 面试感悟----一名3年工作经验的程序员应该具备的技能
- 如何高效学习
- 【SPOJ 375】Query on a tree&树链剖分详解
- Spring注解@Component、@Repository、@Service、@Controller区别
- Android 视频播放器I
- arm-none-linux-gnueabi-gcc command not found[Solved]
- 基本数据类型包装类