Hibernate Session操作
1.增加
@Test
public void add(){
Configuration cfg=new Configuration().configure();
SessionFactory factory=cfg.buildSessionFactory();
Session session=factory.openSession();
Emps emp=new Emps("cat","女",15,30,2000);
session.save(emp);
session.close();
factory.close();
}
2.查询
@Test
public void query1(){
Configuration cfg=new Configuration().configure();
SessionFactory factory=cfg.buildSessionFactory();
Session session=factory.openSession();
Emps emp=(Emps) session.get(Emps.class, 1005);
System.out.println(emp.toString());
session.close();
factory.close();
}
延迟加载:
get方法:调用立刻发出sql查询
load方法:调用不发出sql,当我们需要使用该对象时才查询
Query:
当查询结果只有一个的时候可以使用uniqueResult()方法。
Emps emp=(Emps) query.uniqueResult();
分页:
Query query = session.createQuery("from Emps");
//分页
//从第几个开始取结果
query.setFirstResult(0);
//每页最多有几个结果
query.setMaxResults(3);
List<Emps> list = query.list();
3.修改表-需要创建事务
@Test
public void update(){
Configuration cfg=new Configuration().configure();
SessionFactory factory=cfg.buildSessionFactory();
Session session=factory.openSession();
Transaction ts=session.beginTransaction();
Emps emp=(Emps) session.get(Emps.class, 1005);
emp.setAge(30);
session.update(emp);
ts.commit();
System.out.println(emp.toString());
session.close();
factory.close();
}
4.删除
@Test
public void delete(){
Configuration cfg=new Configuration().configure();
SessionFactory factory=cfg.buildSessionFactory();
Session session=factory.openSession();
Transaction ts=session.beginTransaction();
//根据ID删除;
Emps emp=new Emps();
emp.setId(1019);
session.delete(emp);
ts.commit();
session.close();
factory.close();
}
5.查询所有对象(HQL)
HQL:Hibernate Query Language
@Test
public void query2(){
Configuration cfg=new Configuration().configure();
SessionFactory factory=cfg.buildSessionFactory();
Session session=factory.openSession();
Query query = session.createQuery("from Emps");//Emps是一个类名
List<Emps> list = query.list();
for(Emps e:list){
System.out.println(e);
}
session.close();
factory.close();
}
6. Criteria查询
@Test
public void query3(){
Configuration cfg=new Configuration().configure();
SessionFactory factory=cfg.buildSessionFactory();
Session session=factory.openSession();
//Criteria 查询:Hibernate面向对象的查询(无语句)
Criteria criteria=session.createCriteria(Emps.class);
List<Emps> list = criteria.list();
for(Emps e:list){
System.out.println(e);
}
session.close();
factory.close();
}
7.Sql查询
@Test
public void query4(){
Configuration cfg=new Configuration().configure();
SessionFactory factory=cfg.buildSessionFactory();
Session session=factory.openSession();
SQLQuery createSQLQuery = session.createSQLQuery("select * from emps");
createSQLQuery.addEntity(Emps.class);
List<Emps> list = createSQLQuery.list();
for(Emps e:list){
System.out.println(e);
}
session.close();
factory.close();
}
Hibernate Session操作的更多相关文章
- Use Spring transaction to simplify Hibernate session management
Spring对Hibernate有很好的支持 DataSource ->SessionFactory-> HibernateTranscationManagerHibernate中通 ...
- [转]Hibernate Session各种状态转换方法分析
摘自http://spiritfrog.iteye.com/blog/221177 我的印象里, Hibernate session中常用的保存操作只有:save, update, saveOrUpd ...
- [原理][源代码解析]spring中@Transactional,Propagation.SUPPORTS,以及 Hibernate Session,以及jdbc Connection关系---转载
问题: 一. 1. Spring 如何处理propagation=Propagation.SUPPORTS? 2. Spring 何时生成HibernateSession ? 3. propagati ...
- Hibernate Session 获取connection
Hibernate Session 获取connection 由于最近一个项目要用到一条辅助的SQL ,hibernate里面的SQLQuery API 总的SQL语句不能包含 : 冒号, 固放弃Hi ...
- hibernate.Session简介
★→→SessionFactory (org.hibernate.SessionFactory) 包含已经编译的映射(mappings),是制造session的工厂,可能含有一些可以在各个事务(tra ...
- [原理][来源解析]spring于@Transactional,Propagation.SUPPORTS,以及 Hibernate Session,以及jdbc Connection关联
Spring 捆绑Hibernate. 夹: 一. 1. Spring 怎样处理propagation=Propagation.SUPPORTS? 2. Spring 何时生成HibernateSe ...
- Hibernate Session & Transaction详解
Hibernate Session & Transaction详解 HIbernate中的Session Session是JAVA应用程序和Hibernate进行交互时使用的主要接口,它也是持 ...
- 第八章 Hibernate数据操作技巧
第八章 Hibernate数据操作技巧8.1 分组统计数据 语法:[select]... from ...[where] [group by...[having...]] [order by ...
- spring管理hibernate session的问题探究
我们再用spring管理hibernate的时候, 我们会继承HibernateDaoSupport 或者HibernateTemplate类. 我们不知道这两个类之间有什么关系. 也没有去关闭ses ...
随机推荐
- Kafka的存储机制以及可靠性
一.kafka的存储机制 kafka通过topic来分主题存放数据,主题内有分区,分区可以有多个副本,分区的内部还细分为若干个segment. 所谓的分区其实就是在kafka对应存储目录下创建的文件夹 ...
- PHP之实现双向链表(代码篇)
<?php/** * PHP之实现双向链表 */class Hero{ public $pre=null; public $no; public $name; public $next=null ...
- 0x58 数据结构优化DP
补写一下 poj3171 设f[i]表示覆盖L~i的最小花费,把区间按左端点排序,枚举区间,f[a[i].r]=min{f[a[i].l~(a[top].r-1)]}+a[i].c (当然还要和原值比 ...
- 国外物联网平台初探(六) ——Electric Imp
公司背景 Electric Imp成立于2011年,公司设立在美国加利福尼亚州洛斯阿尔托斯和英国剑桥 公司投资者包括:富士康技术集团.PTI创投.Rampart资本.Redpoint创投 定位 Ele ...
- hdoj--3488--Tour(KM)
Tour Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) Total Submi ...
- 第8章 MyBatis简介
# 创建一个名称为mybatis的数据库 CREATE DATABASE mybatis; # 使用名称为mybatis的数据库 USE mybatis; # 创建一个tb_user表,有id.nam ...
- 学习英语的小习惯(IT版) 不断补充中~~~~~~
对于一些英文单词的读音,包含各种类似于Linux,Maven,Python……这些单词,尽量第一时间去找到他们的标准或者地道的发音,不要随便读,以免后面发音很难纠正. 有道词典的屏幕取词和划词很好用, ...
- tinyxml使用
1.下载地址 http://sourceforge.net/projects/tinyxml/ 2.tinyxml不仅支持Linux编译,同时也支持windows下编译,由于tinyxml仅有6个文件 ...
- 字符串比较——compareTo函数
package com.day03.ifelse; import java.math.BigInteger; /** * @author 王恒 * @datetime 2017年4月7日 下午3:13 ...
- 本地sql文件导入mysql数据库
mysql中配置my.ini interactive_timeout = 120 wait_timeout = 120 max_allowed_packet = 32M 导入sql运行命令 sourc ...