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 ...
随机推荐
- Swift----安装,简单介绍
安装: 眼下最新的稳定版是 Swift 0.94.1 1.下载:wget http://swiftlang.org/packages/swift-0.94.1.tar.gz 2.解压:tar xfz ...
- nyoj-664-数字整除(水题)
数字整除 时间限制:1000 ms | 内存限制:65535 KB 难度: 描写叙述 定理:把一个至少两位的正整数的个位数字去掉,再从余下的数中减去个位数的5倍.当且仅当差是17的倍数时.原数也是 ...
- /proc/sysrq-trigger说明【转】
本文转载自:http://blog.csdn.net/silenttung/article/details/8084136 版权声明:本文为博主原创文章,未经博主允许不得转载. /proc/sysrq ...
- nyoj--105--九的余数(水题)
九的余数 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在给你一个自然数n,它的位数小于等于一百万,现在你要做的就是求出这个数整除九之后的余数. 输入 第一行有一个整 ...
- 【SDOI 2010】 计算器
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2242 [算法] 第一问用快速幂解决 第二问用exgcd解决 第三问用BSGS算法解决 ...
- 1-1restful简介及资源介绍
- Xcode7.3 使用NSURLSession发送HTTP请求报错
控制台打印:Application Transport Security has blocked a cleartext HTTP (http://) resource load since it i ...
- C#解除某类警告。。。。。。。。。。
C#预处理器指令取消不必要的警告 今天将自己写的一个类库生成一个DLL后,想把注释也加进去.... 方法:在属性->生成选项卡->XML文档文件(勾选)(生成的文件名不能修改,使用时必须跟 ...
- Css float 盒子模型 position
属性: float 浮动 浮动的内容用div包起来,给div设置宽高 clear 清除浮动. box-sizing 标准模式下的盒模型 content-box:(默认属性) padding和borde ...
- javascript实现双击网页自动滚动,单击滚动停止
当网页中有长篇文章时,浏览起来就比较吃劲了,想想一边忙着拖动滚动条,一边忙着浏览,确实挺累人的.为了客人能够轻松的浏览,我们可以使用script代码实现网页的自动滚屏,当双击网页的时候,网页将会自动向 ...