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