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: ...
随机推荐
- 结合源码看nginx-1.4.0之nginx全局变量ngx_cycle初始化详解
目录 0. 摘要 1. ngx_cycle_t结构设计 2. ngx_cycle_t数据结构 3. nginx全局变量ngx_cycle初始化 4. 小结 5. 参考资料 0. 摘要 Nginx核心的 ...
- 在MVC中要实现Ajax
在MVC中要实现Ajax有很多的方式,有微软自己的MicrosoftAjax,也可以用JQuery的AJax来实现,如果对其他的JavaScript框架熟悉,还可以采用其他的实现方案,比如说Proto ...
- 单线程模型中Message、Handler、Message Queue、Looper之间的关系
1. Android进程 在了解Android线程之前得先了解一下Android的进程.当一个程序第一次启动的时候,Android会启动一个LINUX进程和一个主线程.默认的情况下,所有该程序的组件都 ...
- 新手教程之使用Xib自定义UITableViewCell
新手教程之使用Xib自定义UITableViewCell 前言 首先:什么是UITableView?看图 其次:什么是cell? 然后:为什么要自定cell,UITableView不是自带的有cell ...
- [课程相关]homework-06
一.c++11 lambda /* * File: main.cpp * Author: liangjie * * Created on 2013年11月23日, 下午12:02 */ #includ ...
- Oracle数据库SQL优化
SQL优化的最终目的是用户体验-在最短时间内让用户在页面数据.因此,执行时间是SQL优化的重要指标.在SQL查询中,I/O操作最占系统性能的.I/O操作量越大,时间越久.减少I/O操作量是优化SQL的 ...
- hdu 4719 动态规划
思路:dp[i]表示到第i个点为结尾能获得的最大值,那么dp[i]=h[i]*h[i]+dp[i-x]-h[i-x];(i-l<=x<=i);那么我们可以转换下,以dp[i]-h[i]为新 ...
- VB.NET 小程序 3
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ...
- 十四、Android学习笔记_Android回调函数触发的几种方式 广播 静态对象
一.通过广播方式: 1.比如登录.假如下面这个方法是外界调用的,那么怎样在LoginActivity里面执行登录操作,成功之后在回调listener接口呢?如果是平常的类,可以通过构造函数将监听类对象 ...
- js中关于原型的几个方法
一.isPrototypeOf()方法,判断一个对象是否是另一个对象的原型 function Student(name,age){ this.name=name; this.age=age; } va ...