/*
*具体操作hibernate的类
*增加,删除,修改,按ID查询,模糊查询,查询全部
**/
public class PersonOperate {
//在hibernate中所有操作都是由Session完成
public Session session = null; //在构造方法中实例化Session对象
public PersonOperate(){
//找出hibernate的配置
Configuration config = new Configuration().configure();
//从配置中取出SessionFactory
SessionFactory sf = config.buildSessionFactory();
//从SessionFactory中取出Session
this.session = sf.openSession();
} //操作Hibernate类的所有操作都是通过Session完成的 //增加数据库中数据
public void insert(Person person){
//开始事务
Transaction tran = session.beginTransaction();
//执行语句
session.save(person);
//提交事务
tran.commit();
session.close();
} //操作Hibernate类更改数据库中的数据
public void update(Person person){
//开始事务
Transaction tran = session.beginTransaction();
//执行语句
session.update(person);
//提交事务
tran.commit();
} /*操作Hibernate类:按ID查询
*我们插入,修改都是对对象进行操作
*那么我们查询的时候也应该是返回一个对象
**/
public Person queryById(String id){
System.out.println(id);
Person person = null;
//hibernate查询语句
String hql = "FROM Person as p WHERE p.id = ?";
Query q = session.createQuery(hql);
q.setString(0, id);
List list = q.list();
Iterator iteator = list.iterator();
if(iteator.hasNext()){
person = (Person)iteator.next();
}
return person;
} /*操作Hibernate类:删除数据库中数据
*hiberante2,hibernate3中通用的删除方法
*缺点:删除数据之前要先查询一次数据,找出删除的数据对象
*性能低下
**/
public void delete(Person person){
//开始事务
Transaction tran = session.beginTransaction();
//执行语句
session.delete(person);
//提交事务
tran.commit();
} //hibernate3的用法
public void delete(String id){
//开始事务
Transaction tran = session.beginTransaction();
String hql = "DELETE Person WHERE id = ?"; Query q = session.createQuery(hql);
q.setString(0, id);
//执行更新语句
q.executeUpdate();
//提交事务
tran.commit();
} //操作Hibernate类:查询全部数据
public List queryAll(){
List list = null;
String hql = "FROM Person as p ";
Query q = session.createQuery(hql);
list = q.list();
return list;
} //操作Hibernate类:模糊查询
public List queryByLike(String colnum,String value){
List list = null;
String hql = "FROM Person as p WHERE p."+ colnum +" like ?";
Query q = session.createQuery(hql);
q.setString(0, "%"+ value +"%");
list = q.list();
Criteria criteria = session.createCriteria(Customer.class);
Criterion c1 = Expression.like("name", "T%");
Criterion c2 = Exception.eq("age", new Long(21));
criteria.add(c1);
criteria.add(c2);
List list = criteria.list();
以上语句相当于:
List list = session..createCriteria(Customer.class)
.add(Expression.like("name", "T%"))
.add(Exception.eq("age", new Long(21)))
.list(); 查询
List <User> user = session.createCriteria(User.class)
//必需创建一个别名,roles为user中包 含的role 的list.
.createAlias("roles","roles")
//roleId为传进来进行查询的角色ID
.add(Restrictions.eq("roles.id",roleId))
.list();

转载地址:http://blog.csdn.net/hxmcGu/article/details/2581986

Hibernate 插入,修改,删除,查询语句的更多相关文章

  1. Hibernate学习之hql查询语句

    *  页面上数据的字段和数据库中字段差不多,这个时候,采用迫切连接  结构比较好,如果页面上的字段很少,要按照需求加载数据,采用带构造函数的select查询 实例讲解:转自:http://www.cn ...

  2. ado.net c#基本的增加,修改,删除,查询

    自己初次学习用的,各种不规范,注释没写 class AdoDemo { static string strConn = @"Data Source=server1;Initial Catal ...

  3. spring-data-jpa 新增 修改 删除 查询 分页

      1.查询所有数据 findAll() 2.分页查询 findAll(new PageRequest(0, 2)) 3.根据id查询 findOne() 4.根据实体类属性查询: findByPro ...

  4. 图文并解Word插入修改删除批注

    .插入批注 首先选择对象,比如部分文字[hd1] ,之后执行这样的操作:"插入"→"批注":插入的批注处于编辑状态,可以直接输入批注的文字即可;图解如下: .修 ...

  5. jdom 插入 修改 删除

    创建XML文档 XML文件是一种典型的树形文件,每个文档元素都是一个document元素的子节点.而每个子元素都是一个Element对象,对象可以向下包含. 1 因此我们可以通过先创建元素再将元素添加 ...

  6. Xamarin.Android 入门实例(4)之实现对 SQLLite 进行添加/修改/删除/查询操作

    1.Main.axml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns: ...

  7. JPA查询语句(转载)

    JPQL就是一种查询语言,具有与SQL 相类似的特征,JPQL是完全面向对象的,具备继承.多态和关联等特性,和hibernate HQL很相似.   查询语句的参数 JPQL语句支持两种方式的参数定义 ...

  8. 13.hibernate的native sql查询(转自xiaoluo501395377)

    hibernate的native sql查询   在我们的hibernate中,除了我们常用的HQL查询以外,还非常好的支持了原生的SQL查询,那么我们既然使用了hibernate,为什么不都采用hi ...

  9. NumberFormatException: Invalid int类型不匹配异常——使用SQL数据库查询语句select * from blacknumber order by _id desc limit ?,20;出现

    异常:类型不匹配 05-06 08:12:38.151: E/AndroidRuntime(14904): java.lang.NumberFormatException: Invalid int: ...

随机推荐

  1. java笔记 chapter1 java是什么,能干什么,有什么,特点,开发环境

    一,java是什么 二,java能干什么 三,java有什么 四,java的特点 五,java的三大特性:虚拟机,垃圾回收和代码安全 六,构建JSE开发环境:下载安装jdk和配置环境变量 七,编写并运 ...

  2. setsockopt

    1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO ...

  3. 结合源码看nginx-1.4.0之nginx模块组织结构详解

    目录 0. 摘要 1. nginx模块组织结构 2. nginx模块数据结构 3. nginx模块初始化 4. 一个简单的http模块 5. 小结 6. 参考资料 0. 摘要 nginx有五大优点:模 ...

  4. C#之面向对象初步

    1.构造函数定义一个类时,C#默认会实现一个隐式的构造函数,默认的构造函数不接受参数,负责把新对象分配到内存中并确保所有字段数据都设置为正确的默认值.然而,一旦自定义了构造函数,默认构造函数就被自动从 ...

  5. ArcEngine实现捕捉节点

    来自:http://blog.sina.com.cn/s/blog_4d0b75870100o960.html //获取最近的结点,然后在  OnMouseMove中显示 //pnt:鼠标移动点 // ...

  6. 【安卓面试题】简述一下Android系统的架构?

    安卓系统的架构分为四层:应用程序层,应用框架层,系统框架层和内核层. 应用程序层:开发者编写的供用户使用的应用 应用框架层:开发者构建应用程序可能用到的API, 例如ActivityManager 系 ...

  7. Gvim 在进行文件对比时报cannot read or write temp files

    本机环境为win7 64位旗舰版,gvim安装的是GVim7.4.解决办法如下: 在安装目录下有个"_vimrc"文件.修改19行.将 if &sh =~ '\<cm ...

  8. 教您如何检查oracle死锁,决解死锁

    oracle死锁问题一直困扰着我们,下面就教您一个oracle死锁的检查方法,如果您之前遇到过oracle死锁方面的问题,不妨一看…… oracle死锁问题一直困扰着我们,下面就教您一个oracle死 ...

  9. CF 208E - Blood Cousins dfs序+倍增

    208E - Blood Cousins 题目:给出一棵树,问与节点v的第k个祖先相同的节点数有多少个. 分析: 寻找节点v的第k个祖先,这不就是qtree2简化版吗,但是怎么统计该祖先拥有多少个深度 ...

  10. Android布局技巧

    postInvalidate();                            界面刷新 一个list元素可能默认为48pxandroid:visibility="invisibl ...