hibernate-2014-02-01

1. 完善HibernateUtil.

对于普通的增删改以及根据id进行查询,我们可以将这些操作放在一个公共类中HibernateUtil.以减小代码重复。

eg:

public final class HibernateUtil {
private static SessionFactory sessionFactory = null;
private HibernateUtil(){ }
static{
Configuration cfg = new Configuration();
cfg.configure();
sessionFactory = cfg.buildSessionFactory();
}
public  static  SessionFactory getSessionFactory(){
return sessionFactory;
}
public static Session getSession(){
return sessionFactory.openSession();
}
public static void add(Object entity){
Session sess = null;
Transaction tx = null;
try {
sess = HibernateUtil.getSession();
tx = sess.beginTransaction();
sess.save(entity);
tx.commit();
} finally{
if(sess != null){
sess.close();
}
}
}
public static void delete(Object entity){
Session sess = null;
Transaction tx = null;
try {
sess = HibernateUtil.getSession();
tx = sess.beginTransaction();
sess.delete(entity);
tx.commit();
} finally{
if(sess != null){
sess.close();
}
}
}
public static void update(Object entity){
Session sess = null;
Transaction tx = null;
try {
sess = HibernateUtil.getSession();
tx = sess.beginTransaction();
sess.update(entity);
tx.commit();
} finally{
if(sess != null){
sess.close();
}
}
}
@SuppressWarnings("unchecked")
public static Object get(Class clazz,Serializable id){
Session sess = null;
try {
sess = HibernateUtil.getSession();
Object obj = sess.get(clazz, id);
return obj;
} finally{
if(sess != null){
sess.close();
}
}
}
}

2.查询语句(hql).

HQL 是Hibernate Query Language的简写,即 hibernate 查询语言:HQL采用面向对象的查询方式。HQL查询提供了更加丰富的和灵活的查询特性,因此Hibernate将HQL查询方式立为官方推荐的标准查询方式,HQL查询在涵盖Criteria查询的所有功能的前提下,提供了类似标准SQL语句的查询方式,同时也提供了更加面向对象的封装。

eg:

static  void query(){
Session sess = null;
try {
sess = HibernateUtil.getSession();
String hql = " from  User as user where user.name = ? ";
Query query = sess.createQuery(hql);
query.setParameter(0, "name");
List<User> list = query.list();//query.uniqueResult();
for (User user : list) {
System.out.println(user.getName());
}
} finally{
if(sess != null){
sess.close();
}
}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值