hibernate 操作

 hibernate的各种操作:

hibernate各种操作:
package Test;

import java.util.Iterator;
import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.criterion.Expression;
import org.hibernate.metadata.ClassMetadata;

import Hibernate.HibernateSessionFactory;
import Hibernate.User;
import Hibernate.UserDAO;

public class TestHibernate {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  
  Session session=HibernateSessionFactory.getSession();
  Transaction trans=session.beginTransaction();
  UserDAO dao=new UserDAO();
  
//  //通过load方法查询出id指定的某个记录
//  User user=new User();
//  session.load(user, new Integer(1));
//  System.out.println(user.getUserName()+"---"+user.getPassword());
//  trans.commit();
//  session.close();
  
  //通过DAO查询出id指定的某个记录
//  User user=new User();
//  user=dao.findById(1);
//  System.out.println(user.getUserName()+"---"+user.getPassword());
  
  //通过DAO根据某个属性及值查询记录集合
//  User user=new User();
//  user=(User) dao.findByProperty("password", "root").get(0);
//  System.out.println(user.getUserName()+"---"+user.getPassword());
  
  //通过DAO根据某个实例来查询记录集合
//  User user=new User();
//  user.setId(1);
//  user=(User)dao.findByExample(user).get(0);
//  System.out.println(user.getUserName()+"---"+user.getPassword());
  
  //通过get方法来查询出id指定的某个记录
//  User user=new User();
//  user=(User)session.get(User.class, new Integer(1));
//  System.out.println(user.getUserName()+"---"+user.getPassword());
//  trans.commit();
//  session.close();
  
  //通过Query来查询所有记录:Query.list() 获得集合
//  User user=new User();
//  Query query=session.createQuery("from User as obj");
//  List list=query.list();
//  for(int i=0;i<list.size();i++){
//   user=(User)list.get(i);
//   System.out.println(user.getUserName()+"---"+user.getPassword());
//  }
//  trans.commit();
//  session.close();
  
  
  //通过Query来查询where条件记录:Query.iterator() 获得集合
//  User user=new User();
  Query query=session.createQuery("from User as obj where obj.password=?");
  query.setString(0, "root");
//  Query query=session.createQuery("from User as obj where obj.password=:pass");
//  query.setString("pass", "root");
//  for(Iterator it=query.iterate();it.hasNext();){
//   user=(User)it.next();
//   System.out.println(user.getUserName()+"---"+user.getPassword());
//  }
//  trans.commit();
//  session.close();
  
  //根据SQL语句查询(session.createSQLQuery("sql语句").addEntity("table别名","实体类")  )
  User user=new User();
  //query0,query1无限制条件查询所有但是效果相同 ,query2 附带条件查询,并且设置条件
  Query query0=session.createSQLQuery("select obj.* from User as obj").addEntity("obj", User.class); 
  Query query1=session.createSQLQuery("select * from User").addEntity(User.class); 
  Query query2 =session.createSQLQuery("select obj.* from User as obj where id=? and password=?").addEntity("obj", User.class);
  query2.setInteger(0, 1);
  query2.setString(1, "xdy");
  List list=query2.list();
  for(int i=0;i<list.size();i++){
   user=(User)list.get(i);
   System.out.println(user.getUserName()+"---"+user.getPassword());
  }
  trans.commit();
  session.close();
  
  //Criteria查询
//  User user=new User();
//  Criteria criteria=session.createCriteria(User.class);
//  criteria.add(Expression.eq("password","root"));
//  List list=criteria.list();
//  for(int i=0;i<list.size();i++){
//   user=(User)list.get(i);
//   System.out.println(user.getUserName()+"---"+user.getPassword());
//  }
//  trans.commit();
//  session.close();
  
  
  //持久化类的元数据
//  Configuration cfg=new Configuration();
//  cfg.configure();
//  SessionFactory sf=cfg.buildSessionFactory();
//  Session ss=sf.openSession();
//  ClassMetadata metadata=sf.getClassMetadata(User.class);
//  String[] names=metadata.getPropertyNames();
//  
//  User user=new User();
//  Query query=ss.createQuery("from User as obj");
//  List list=query.list();
//  for(int i=0;i<list.size();i++){
//   user=(User)list.get(i);
//   System.out.println(names[0]+":"+user.getUserName()+"---"+names[1]+":"+user.getPassword());
//  }
//  trans.commit();
//  session.close();
 }

}

--------------------------------------------------------------------

public class DbOperate {

 /**
  * 根据用户名得到Blog对象
  */
 public Blog getBlog(String userId) throws HibernateException {
  Session session = HibernateUtil.currentSession();
  Blog blog = null;
  Transaction tx = null;
  try {
   tx = session.beginTransaction();
//   创建查询对象
   Query query = session.createQuery("from Blog where username=:userId");
   query.setParameter("userId", userId);
   List list = query.list();
   if (!list.isEmpty())
    blog = (Blog) list.get(0);
   tx.commit();
  } catch (HibernateException e) {
   if (tx != null)
    tx.rollback();
   throw e;
  }
  session.close();
  return blog;
 }

 /**
  * 根据ID得到Blog对象
  */
 public Blog getBlog(int Id) throws HibernateException {
  Session session = HibernateUtil.currentSession();
  Blog blog = null;
  Transaction tx = null;
  try {
   tx = session.beginTransaction();
//   创建查询对象
   Query query = session.createQuery("from Blog where id=" + Id);
   List list = query.list();
   if (!list.isEmpty())
    blog = (Blog) list.get(0);
   tx.commit();
  } catch (HibernateException e) {
   if (tx != null)
    tx.rollback();
   throw e;
  }
  session.close();
  return blog;
 }


 /**
  * 得到热点Blog对象集
  */
 public List getBlogs(int showCount) throws HibernateException {
  Session session = HibernateUtil.currentSession();
  List list=null;
  Transaction tx = null;
  try {
   tx = session.beginTransaction();
//   创建查询对象
   Query query = session.createQuery("from Blog order by visitcount desc");
   if (showCount>0){
    query.setMaxResults(showCount);        //记录集最大个数
   }
   list = query.list(); //从数据库取出数据,并自动封装到List集合中
   tx.commit();
  } catch (HibernateException e) {
   if (tx != null)
    tx.rollback();
   throw e;
  }
  HibernateUtil.closeSession();
  return list;
 }

 /**
  * 得到匹配Blog对象集
  */
 public List getMatchBlogs(String key) throws HibernateException {
  Session session = HibernateUtil.currentSession();
  List list=null;
  Transaction tx = null;
  try {
   tx = session.beginTransaction();
//   创建查询对象
   Query query = session.createQuery("from Blog where subject like '%" + key + "%'");
   list = query.list(); //从数据库取出数据,并自动封装到List集合中
   tx.commit();
  } catch (HibernateException e) {
   if (tx != null)
    tx.rollback();
   throw e;
  }
  HibernateUtil.closeSession();
  return list;
 }

 /**
  * 根据ID得到Sort对象
  */
 public Sort getSort(int Id) throws HibernateException {
  Session session = HibernateUtil.currentSession();
  Sort sort = null;
  Transaction tx = null;
  try {
   tx = session.beginTransaction();
//   创建查询对象
   Query query = session.createQuery("from Sort where id=" + Id);
   List list = query.list();
   if (!list.isEmpty())
    sort = (Sort) list.get(0);
   tx.commit();
  } catch (HibernateException e) {
   if (tx != null)
    tx.rollback();
   throw e;
  }
  session.close();
  return sort;
 }

 /**
  * 根据ID得到Links对象
  */
 public Links getLink(int Id) throws HibernateException {
  Session session = HibernateUtil.currentSession();
  Links link = null;
  Transaction tx = null;
  try {
   tx = session.beginTransaction();
//   创建查询对象
   Query query = session.createQuery("from Links where id=" + Id);
   List list = query.list();
   if (!list.isEmpty())
    link = (Links) list.get(0);
   tx.commit();
  } catch (HibernateException e) {
   if (tx != null)
    tx.rollback();
   throw e;
  }
  session.close();
  return link;
 }

 /**
  * 得到指定文章对象
  */
 public Article getArticle(int articleid) throws HibernateException {
  Session session = HibernateUtil.currentSession();
  Article article = null;
  Transaction tx = null;
  try {
   tx = session.beginTransaction();
  // 创建查询对象
   Query query = session.createQuery("from Article where id=" + articleid);
   List list = query.list();
   if (!list.isEmpty())
    article = (Article) list.get(0);
   tx.commit();
  } catch (HibernateException e) {
   if (tx != null)
    tx.rollback();
   throw e;
  }
  session.close();
  return article;
 }

 /**
  * 得到匹配Article对象集
  */
 public List getMatchArticles(String key) throws HibernateException {
  Session session = HibernateUtil.currentSession();
  List list=null;
  Transaction tx = null;
  try {
   tx = session.beginTransaction();
//   创建查询对象
   Query query = session.createQuery("from Article where title like '%" + key + "%'");
   list = query.list(); //从数据库取出数据,并自动封装到List集合中
   tx.commit();
  } catch (HibernateException e) {
   if (tx != null)
    tx.rollback();
   throw e;
  }
  HibernateUtil.closeSession();
  return list;
 }

 /**
  * 得到最新文章对象集
  */
 public List getArticles(int showCount) throws HibernateException {
  Session session = HibernateUtil.currentSession();
  List list=null;
  Transaction tx = null;
  try {
   tx = session.beginTransaction();
//   创建查询对象
   Query query = session.createQuery("from Article order by pubtime desc");
   if (showCount>0){
    query.setMaxResults(showCount);        //记录集最大个数
   }
   list = query.list(); //从数据库取出数据,并自动封装到List集合中
   tx.commit();
  } catch (HibernateException e) {
   if (tx != null)
    tx.rollback();
   throw e;
  }
  HibernateUtil.closeSession();
  return list;
 }

 /**
  * 得到指定博客最新文章对象集
  */
 public List getBlogArticles(int blogid,int sortid) throws HibernateException {
  Session session = HibernateUtil.currentSession();
  List list=null;
  Transaction tx = null;
  try {
   tx = session.beginTransaction();
//   创建查询对象
   String strSql = "from Article  where blogid=" + blogid;//创建一个查询语句,查询指定类别产品;
   if (sortid>0){
    strSql = strSql + " and sortid=" + sortid ;        //记录集最大个数
   }
   strSql = strSql + " order by pubtime desc" ;        //记录集最大个数
   Query query = session.createQuery(strSql);
   list = query.list(); //从数据库取出数据,并自动封装到List集合中
   tx.commit();
  } catch (HibernateException e) {
   if (tx != null)
    tx.rollback();
   throw e;
  }
  HibernateUtil.closeSession();
  return list;
 }

 /**
  * 得到指定博客文章分类对象集
  */
 public List getBlogSorts(int blogid) throws HibernateException {
  Session session = HibernateUtil.currentSession();
  List list=null;
  Transaction tx = null;
  try {
   tx = session.beginTransaction();
//   创建查询对象
   String strSql = "from Sort where blogid=" + blogid;//创建一个查询语句,查询指定类别产品;
   Query query = session.createQuery(strSql);
   list = query.list(); //从数据库取出数据,并自动封装到List集合中
   tx.commit();
  } catch (HibernateException e) {
   if (tx != null)
    tx.rollback();
   throw e;
  }
  HibernateUtil.closeSession();
  return list;
 }

 /**
  * 得到指定博客超级链接对象集
  */
 public List getBlogLinks(int blogid) throws HibernateException {
  Session session = HibernateUtil.currentSession();
  List list=null;
  Transaction tx = null;
  try {
   tx = session.beginTransaction();
//   创建查询对象
   String strSql = "from Links where blogid=" + blogid;//创建一个查询语句,查询指定类别产品;
   Query query = session.createQuery(strSql);
   list = query.list(); //从数据库取出数据,并自动封装到List集合中
   tx.commit();
  } catch (HibernateException e) {
   if (tx != null)
    tx.rollback();
   throw e;
  }
  HibernateUtil.closeSession();
  return list;
 }

 /**
  * 得到指定文章回复对象集
  */
 public List getFeedBacks(int articleid) throws HibernateException {
  Session session = HibernateUtil.currentSession();
  List list=null;
  Transaction tx = null;
  try {
   tx = session.beginTransaction();
//   创建查询对象
   String strSql = "from FeedBack  where articleid=" + articleid
      + " order by pubtime desc" ;     //创建一个查询语句,查询指定类别产品;   
   Query query = session.createQuery(strSql);
   list = query.list(); //从数据库取出数据,并自动封装到List集合中
   tx.commit();
  } catch (HibernateException e) {
   if (tx != null)
    tx.rollback();
   throw e;
  }
  HibernateUtil.closeSession();
  return list;
 }

 /**
  * 插入实体对象所对应的记录
  */
 public void save(Object obj) throws HibernateException {
  Session session = HibernateUtil.currentSession();
  if (obj != null) {
   Transaction tx = null;
   try {
    tx = session.beginTransaction();
    session.save(obj);
    tx.commit();
   } catch (HibernateException e) {
    if (tx != null)
      tx.rollback();
    throw e;
   }
  }
  session.close();
 }

 /**
  * 修改实体对象所对应的记录
  */
 public void update(Object obj) throws HibernateException {
  Session session = HibernateUtil.currentSession();
  
  if (obj != null) {
   Transaction tx = null;
   try {
    tx = session.beginTransaction();
    session.update(obj);
    tx.commit();
   } catch (HibernateException e) {
    if (tx != null)
      tx.rollback();
    throw e;
   }
  }
  session.close();
 }
 
 /**
  * 删除对象所对应的记录
  */
 public void delete(Object obj) throws HibernateException {
  Session session = HibernateUtil.currentSession();
  if (obj != null) {
   Transaction tx = null;
   try {
    tx = session.beginTransaction();
    session.delete(obj);
    tx.commit();
   } catch (HibernateException e) {
    if (tx != null)
      tx.rollback();
    throw e;
   }
  }
  session.close();
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值