Hibernate中Hql操作
2015-08-14 21:28
399 查看
在我们需要处理数据量比较大的时候,如果依旧单个修改则会造成效率低下
所以,在这个时候,我们需要用到的就是批量修改,也就是Hql
同昨天的是同一个例子,使用user表,因为hibernate中已经将sql语句封装好,所以,我们使用它的createQuery
不多废话,直接上源码
package dao;
import java.util.List;
import javax.management.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
/**
* 测试Hql
* @author Administrator
*
*/
public class TestHql {
private static SessionFactory sessionFactory=null;
private Session session=null;
Transaction transaction=null;
static {
try {
sessionFactory=new Configuration().configure().buildSessionFactory();
} catch (Exception e) {
// TODO: handle exception
}
}
/**
* 遍历
* @return
*/
public List queryUserList(){
List list=null;
session=sessionFactory.openSession();
String qsl="from User ";
try {
org.hibernate.Query query=session.createQuery(qsl);
list=query.list();
System.out.println(list);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
session.close();
}
return list;
}
/**
* 模糊查询
* @param keyName
* @return
*/
public List queryByName(String keyName){
List list=null;
session=sessionFactory.openSession();
String qsl="from User as user where user.name like:keyName";
try {
org.hibernate.Query query=session.createQuery(qsl);
query.setString("keyName","%"+keyName+"%");
list=query.list();
System.out.println(list);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
session.close();
}
return list;
}
/*
根据姓名,批量删除用户
public void delectUserByName(String name){
session=sessionFactory.openSession();
session.beginTransaction();
String sql="delete from User as user where user.name=?";
session.createQuery(sql).setString(0, name).executeUpdate();
//session.createQuery(sql).executeUpdate();
session.getTransaction().commit();
session.close();
}
public static void main(String[] args) {
TestHql t=new TestHql();
//t.queryByName("zh");
//t.queryUserList();
t.delectUserByName("");
}
}
所以,在这个时候,我们需要用到的就是批量修改,也就是Hql
同昨天的是同一个例子,使用user表,因为hibernate中已经将sql语句封装好,所以,我们使用它的createQuery
不多废话,直接上源码
package dao;
import java.util.List;
import javax.management.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
/**
* 测试Hql
* @author Administrator
*
*/
public class TestHql {
private static SessionFactory sessionFactory=null;
private Session session=null;
Transaction transaction=null;
static {
try {
sessionFactory=new Configuration().configure().buildSessionFactory();
} catch (Exception e) {
// TODO: handle exception
}
}
/**
* 遍历
* @return
*/
public List queryUserList(){
List list=null;
session=sessionFactory.openSession();
String qsl="from User ";
try {
org.hibernate.Query query=session.createQuery(qsl);
list=query.list();
System.out.println(list);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
session.close();
}
return list;
}
/**
* 模糊查询
* @param keyName
* @return
*/
public List queryByName(String keyName){
List list=null;
session=sessionFactory.openSession();
String qsl="from User as user where user.name like:keyName";
try {
org.hibernate.Query query=session.createQuery(qsl);
query.setString("keyName","%"+keyName+"%");
list=query.list();
System.out.println(list);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
session.close();
}
return list;
}
/*
根据姓名,批量删除用户
public void delectUserByName(String name){
session=sessionFactory.openSession();
session.beginTransaction();
String sql="delete from User as user where user.name=?";
session.createQuery(sql).setString(0, name).executeUpdate();
//session.createQuery(sql).executeUpdate();
session.getTransaction().commit();
session.close();
}
public static void main(String[] args) {
TestHql t=new TestHql();
//t.queryByName("zh");
//t.queryUserList();
t.delectUserByName("");
}
}
相关文章推荐
- Java集群优化——dubbo+zookeeper构建高可用分布式集群
- Java设计模式之——装饰模式(待续)
- NEUQ 1419: Hanoi双塔问题
- parted 与 fdisk 分区方式
- AxureRP——动态面板
- STM32学习笔记——系统定时器SysTick
- C# DataSet 的使用
- hdu 5389 Zero Escape dp
- C++对象模型——对象复制语意学 (Object Copy Semantics)(第五章)
- 一步操作配置Word环境
- smartctl的使用
- hdu3306
- 总结python对csv文件的操作
- JUnit4测试框架
- 将博客搬至CSDN
- hdu5384 AC自动机模板题,统计模式串在给定串中出现的个数
- 翻转单词+左旋字符串
- 编程实现全排列
- spring自定义标签
- 时隔一周继续学习