Hibernate 插入,修改,删除,查询语句
/*
*具体操作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 插入,修改,删除,查询语句的更多相关文章
- Hibernate学习之hql查询语句
* 页面上数据的字段和数据库中字段差不多,这个时候,采用迫切连接 结构比较好,如果页面上的字段很少,要按照需求加载数据,采用带构造函数的select查询 实例讲解:转自:http://www.cn ...
- ado.net c#基本的增加,修改,删除,查询
自己初次学习用的,各种不规范,注释没写 class AdoDemo { static string strConn = @"Data Source=server1;Initial Catal ...
- spring-data-jpa 新增 修改 删除 查询 分页
1.查询所有数据 findAll() 2.分页查询 findAll(new PageRequest(0, 2)) 3.根据id查询 findOne() 4.根据实体类属性查询: findByPro ...
- 图文并解Word插入修改删除批注
.插入批注 首先选择对象,比如部分文字[hd1] ,之后执行这样的操作:"插入"→"批注":插入的批注处于编辑状态,可以直接输入批注的文字即可;图解如下: .修 ...
- jdom 插入 修改 删除
创建XML文档 XML文件是一种典型的树形文件,每个文档元素都是一个document元素的子节点.而每个子元素都是一个Element对象,对象可以向下包含. 1 因此我们可以通过先创建元素再将元素添加 ...
- Xamarin.Android 入门实例(4)之实现对 SQLLite 进行添加/修改/删除/查询操作
1.Main.axml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns: ...
- JPA查询语句(转载)
JPQL就是一种查询语言,具有与SQL 相类似的特征,JPQL是完全面向对象的,具备继承.多态和关联等特性,和hibernate HQL很相似. 查询语句的参数 JPQL语句支持两种方式的参数定义 ...
- 13.hibernate的native sql查询(转自xiaoluo501395377)
hibernate的native sql查询 在我们的hibernate中,除了我们常用的HQL查询以外,还非常好的支持了原生的SQL查询,那么我们既然使用了hibernate,为什么不都采用hi ...
- 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: ...
随机推荐
- jQuery formValidator表单验证插件
什么是jQuery formValidator? jQuery formValidator表单验证插件是客户端表单验证插件. 在做B/S开发的时候,我们经常涉及到很多表单验证,例如新用户注册,填写个人 ...
- localStorage的跨与实现方案
实现原理: HTML5 的 postMessage 为解决跨域页面通信提供了一套可控的机制, 而 localStorage 则提供了易用简洁的本地存储方案? 这两者结合起来,能否实现跨域的本地存储呢 ...
- img 元素无法获取高度的问题
项目里有这么一个功能,需要 ajax 从服务器端获取数据,然后本地生成 DOM 结构再 append 到页面上. 其中的图片是直接拿到的图像数据,而不是 url,所以据此生成 dataURI 赋值给 ...
- log4net保存到数据库系列三、代码中xml配置log4net
园子里面有很多关于log4net保存到数据库的帖子,但是要动手操作还是比较不易,从头开始学习log4net数据库日志一.WebConfig中配置log4net 一.WebConfig中配置log4ne ...
- Stimulsoft Reports筛选数据来绑定显示2个报表
今天用Stimulsoft Reports做报表的时候,遇到一个问题,需要一个报表中显示2个报表视图,我在百度和博客园中搜索了一下,发现这方面的资料很少,我自己最后把问题解决了之后,整理了一下给大家分 ...
- Part 59 to 60 Difference between Convert ToString and ToString,String and StringBuilder
Part 59 Difference between Convert ToString and ToString Part 60 Difference between String and Strin ...
- 行列转换 pivot
select * from ( select isnull(c.type,'其他') type,d from ( select ID,Record_code,code,day(thedate) d f ...
- SQL Server高级内容之子查询和表链接
1.子查询概念 (1)就是在查询的where子句中的判断依据是另一个查询的结果,如此就构成了一个外部的查询和一个内部的查询,这个内部的查询就是自查询. (2)自查询的分类 1)独立子查询 ->独 ...
- 在window 下安装Memcache详解
有时候我们需要在本地测试的时候就用到memcahce,如果本地没有安装memcache,就会有下面的错误提示: 1234567 系统发生错误 您可以选择 [ 重试 ] [ 返回 ] 或者 [ 回到首页 ...
- php如何判断当前的操作系统是linux还是windows
php_uname()这个函数的意义在于返回当前PHP所运行的系统的信息,下面对这个函数详细说明一下: /** * 功能:返回当前PHP所运行的系统的信息 * @param string $mode ...