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: ...
随机推荐
- 沈逸老师PHP魔鬼特训笔记(5)
接上一节课,我们专门新建了一个godconfig类,设置了两个属性prj_name(项目名),prj_author(作者),然后我们获取标准输入(stdin)把结果保存在了类里面. 好吧,这节课的名字 ...
- java程序执行内存处理过程
我们学习知识,不仅要知其然,还要知其所以然,你的工资必定和你学习的深度成正比. 在以往.net的学习过程中,我们了解了怎么去开发一个程序,并有了一定的开发经验,但是一个程序具体是怎么在内存中运行的呢? ...
- Wonderful Sentense
1.Sorry if I might sound arrogant or offensive. 2.Any further question? 3.How dare you! 4.Try it if ...
- Asp.net的内置对象!!!
还记得自己第一次面试的时候,面试官问的问题就是.net内置对象的问题,当时就让尴尬的要死... 所以作为新手的我们还是要知道这些轮廓的东西的! 1.Response对象 2.Request对象 3.A ...
- Google Map Api 谷歌地图接口整理
一:基本知识: 1. 使用谷歌地图 API 的第一步就是要注册一个 API 密钥,需要注重一下两点: 1.假如使用 API 的页面还没有发布,只是在本地调试,可以不用密钥,随便用个字符串代替就可以了. ...
- html背景自动移动
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- JavaScript--匿名函数和闭包(16)
// 匿名函数:没有名字的函数; // 闭包:可访问一个函数作用域里的变量的函数; 一 匿名函数 // 普通函数 function box(){ // 函数名是box; return 'Lee'; } ...
- 代码研磨 Slim v3 (一)--app->get()&route->add()
index.php代码如下: $app->get('/forbase', function ($request, $response, $args){ Example\Module\Base:: ...
- 基础面试题——Javascript
1.介绍js的基本数据类型 Undefined.Null.Boolean.Number.String 2.js有哪些内置对象? 数据封装类对象:Object.Array.Boolean.Number ...
- MyContentProvider
package com.example.shad_fnst.mycontentprovider; import android.app.Activity; import android.content ...