使用Hibernate编写通用数据库操作代码

来源: 作者:佚名 2007-11-20 出处:pcdog.com

数据库  数据库操作  

insert方法

public void insert(Object o){

Session session = HibernateSessionFactory.currentSession();

Transaction t = session.beginTransaction();

session.save(o);

t.commit();

HibernateSessionFactory.clossSession();

}

delete方法

public void delete(Object o,Serializable id){

Session session = HibernateSessionFactory.currentSession():

Transaction t = session.beginTransaction();

Object o = session.get(o.class,id);

if(o!=null){

session.delete(o);

}

t.commit();

HibernateSessionFactory.clossSession();

}

update方法

public void update(Object o,Serializable id){

Session session = HibernateSessionFactory.currentSession();

Transaction t = session.beginTransaction();

session.update(o,id);

t.commit();

HibernateSessionFactory.clossSession();

}

基于HQL的通用select方法

public ArrayList select(String sql){

Session session = HibernateSessionFactory.currentSession();

Query query = createQuery(sql);

List list = query.list();

HibernateSessionFactory.clossSession();

return (ArrayList)list;

}

基于SQL的通用select方法

public ArrayList select(String sql) throws Exception{

Session session = HibernateSessionFactory.currentSession();

Connection con = session.connection();

PreparedStatement pstmt = con.preparedStatement(sql);

ResultSet rs = pstmt.executeQuery();

ResultSetMetaData rsmd = rs.getMetaData();

Hashtable ht = null;

ArrayList array = new ArrayList();

while(rs.next()){

ht = new Hashtable();

for(int i=0;i<rsmd.getColumnCount();i++){

ht.put(rsmd.getColumnName(i+1),rs.getObject(i+1));

}

array.add(ht);

}

HibernateSessionFactory.clossSession();

return array;

}


更多内容请看PCdog.com--Hibernate相关文章  数据库相关文章专题
上一篇:在多种数据库环境下管理业务需求(上)
下一篇:在JRuby中构建Apache Derby数据库应用程序的两种方法