/*
*具体操作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. BZOJ 3083: 遥远的国度 dfs序,树链剖分,倍增

    今天再做一天树的题目,明天要开始专攻图论了.做图论十几天之后再把字符串搞搞,区域赛前再把计几看看. 3083: 遥远的国度 Time Limit: 10 Sec  Memory Limit: 128 ...

  2. 转:eclipse怎样修改包(package)的显示样式、格式 工具/原料

    转:http://blog.csdn.net/longyaxx258/article/details/50774128 eclipse 打开我们的项目,可以看到左侧的package看上去特别多,没有层 ...

  3. 微信小程序个人理解

    1:小程序不是用HTML5开发,它是由微信全新定义的规范,是基于XML+JS的,不支持也不兼容HTML,兼容受限的部分CSS写法.(wxml) weixin markup language 2:小程序 ...

  4. PKIX: unable to find valid certification path to requested target

    // Create a trust manager that does not validate certificate chains TrustManager[] trustAllCerts = n ...

  5. Github 访问时出现Permission denied (public key)

    一. 发现问题: 使用 git clone 命令时出现Permission denied (public key) . 二. 解决问题: 1.首先尝试重新添加以前生成的key,添加多次,仍然不起作用. ...

  6. 【Unity3D实战】摇摆直升机开发实战(一)

    [Unity3D实战]摇摆直升机开发实战(一) 1.点击[Assets],创建[Sprites]和[Resources]文件夹,然后将所需要的素材导入[Sprites]文件夹中. 2.找到[Sprit ...

  7. UI4_UIStepper与UIProgressView

    // // ViewController.m // UI4_UIStepper与UIProgressView // // Created by zhangxueming on 15/7/7. // C ...

  8. 使用Linux系统中的SSH服务

    使用Linux系统中的SSH服务 1.SSH服务应用场景 ① 可以实现对文件的上传与下载 ② 实现远程管理Linux 2.安装SSH服务器 服 务:sshd 位 置:光盘2 软 件:openssh-s ...

  9. hdu 1203 I NEED A OFFER (0-1背包)

    题意分析:0-1背包变形  递推公式:dp[i] = max(dp[i], 1-(1-dp[i-C])*(1-p)) /* I NEED A OFFER! Time Limit: 2000/1000 ...

  10. Java web的读取Excel简单Demo

    目录结构: Data.xls数据:   后台页面: GetExcelData.java       public void doGet(HttpServletRequest request, Http ...