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操作的更多相关文章

  1. Use Spring transaction to simplify Hibernate session management

    Spring对Hibernate有很好的支持    DataSource ->SessionFactory-> HibernateTranscationManagerHibernate中通 ...

  2. [转]Hibernate Session各种状态转换方法分析

    摘自http://spiritfrog.iteye.com/blog/221177 我的印象里, Hibernate session中常用的保存操作只有:save, update, saveOrUpd ...

  3. [原理][源代码解析]spring中@Transactional,Propagation.SUPPORTS,以及 Hibernate Session,以及jdbc Connection关系---转载

    问题: 一. 1. Spring 如何处理propagation=Propagation.SUPPORTS? 2. Spring 何时生成HibernateSession ? 3. propagati ...

  4. Hibernate Session 获取connection

    Hibernate Session 获取connection 由于最近一个项目要用到一条辅助的SQL ,hibernate里面的SQLQuery API 总的SQL语句不能包含 : 冒号, 固放弃Hi ...

  5. hibernate.Session简介

    ★→→SessionFactory (org.hibernate.SessionFactory) 包含已经编译的映射(mappings),是制造session的工厂,可能含有一些可以在各个事务(tra ...

  6. [原理][来源解析]spring于@Transactional,Propagation.SUPPORTS,以及 Hibernate Session,以及jdbc Connection关联

    Spring 捆绑Hibernate. 夹: 一.  1. Spring 怎样处理propagation=Propagation.SUPPORTS? 2. Spring 何时生成HibernateSe ...

  7. Hibernate Session & Transaction详解

    Hibernate Session & Transaction详解 HIbernate中的Session Session是JAVA应用程序和Hibernate进行交互时使用的主要接口,它也是持 ...

  8. 第八章 Hibernate数据操作技巧

    第八章   Hibernate数据操作技巧8.1 分组统计数据    语法:[select]... from ...[where] [group by...[having...]] [order by ...

  9. spring管理hibernate session的问题探究

    我们再用spring管理hibernate的时候, 我们会继承HibernateDaoSupport 或者HibernateTemplate类. 我们不知道这两个类之间有什么关系. 也没有去关闭ses ...

随机推荐

  1. Swift----安装,简单介绍

    安装: 眼下最新的稳定版是 Swift 0.94.1 1.下载:wget http://swiftlang.org/packages/swift-0.94.1.tar.gz 2.解压:tar xfz ...

  2. nyoj-664-数字整除(水题)

    数字整除 时间限制:1000 ms  |  内存限制:65535 KB 难度: 描写叙述 定理:把一个至少两位的正整数的个位数字去掉,再从余下的数中减去个位数的5倍.当且仅当差是17的倍数时.原数也是 ...

  3. /proc/sysrq-trigger说明【转】

    本文转载自:http://blog.csdn.net/silenttung/article/details/8084136 版权声明:本文为博主原创文章,未经博主允许不得转载. /proc/sysrq ...

  4. nyoj--105--九的余数(水题)

    九的余数 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 现在给你一个自然数n,它的位数小于等于一百万,现在你要做的就是求出这个数整除九之后的余数. 输入 第一行有一个整 ...

  5. 【SDOI 2010】 计算器

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2242 [算法] 第一问用快速幂解决 第二问用exgcd解决 第三问用BSGS算法解决 ...

  6. 1-1restful简介及资源介绍

  7. Xcode7.3 使用NSURLSession发送HTTP请求报错

    控制台打印:Application Transport Security has blocked a cleartext HTTP (http://) resource load since it i ...

  8. C#解除某类警告。。。。。。。。。。

    C#预处理器指令取消不必要的警告 今天将自己写的一个类库生成一个DLL后,想把注释也加进去.... 方法:在属性->生成选项卡->XML文档文件(勾选)(生成的文件名不能修改,使用时必须跟 ...

  9. Css float 盒子模型 position

    属性: float 浮动 浮动的内容用div包起来,给div设置宽高 clear 清除浮动. box-sizing 标准模式下的盒模型 content-box:(默认属性) padding和borde ...

  10. javascript实现双击网页自动滚动,单击滚动停止

    当网页中有长篇文章时,浏览起来就比较吃劲了,想想一边忙着拖动滚动条,一边忙着浏览,确实挺累人的.为了客人能够轻松的浏览,我们可以使用script代码实现网页的自动滚屏,当双击网页的时候,网页将会自动向 ...