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();
 }

Hibernate是一个开源的对象关系映射框架,它简化了Java应用程序与数据库之间的交互。它提供了一种简单的方式来映射Java对象和关系数据库表,使得开发人员能够通过面向对象的方式来操作数据库。 要使用Hibernate操作SQLite数据库,首先需要引入相应的依赖和配置。在项目中增加SQLite的驱动,然后配置Hibernate的数据源和持久化单元。接着通过Hibernate的API来创建数据库表和操作数据,例如增加、删除、更新和查询。 在配置Hibernate时,需要指定SQLite的数据库连接URL、用户名、密码等信息。同时,需要定义实体类与数据库表的映射关系,包括字段名、类型、主键等信息。 在实际操作中,可以使用Hibernate提供的Session来进行数据库操作。通过Session可以进行数据库的增删改查操作,同时还可以使用Hibernate的HQL(Hibernate Query Language)来进行复杂的查询,并且能够实现事务管理。 在与SQLite数据库交互时,需要注意SQLite的一些特性,例如它是一个轻量级的数据库,不支持多用户并发访问,需要注意事务的使用和性能的优化。 总的来说,使用Hibernate操作SQLite数据库可以简化开发人员的工作,提高开发效率,同时还能够利用Hibernate强大的功能来实现对数据库的操作和管理。通过合理的配置和使用,可以使得Java应用程序与SQLite数据库的交互更加简洁和高效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值