个位大虾 看看小弟写的 使用Hibernate有没有什么问题 或是需要规范的 谢谢。
先声明个Session
private static Session session;
这个是获得数据库中某个表的所有数据
public List getByAll(String hql){
try{
session = HibernateSessionFactory.getSession();
Query query = session.createQuery(hql);
List list = query.list();
return list;
}catch(Exception e){
e.printStackTrace();
}
return null;
}
这个是获得数据库中单个列的数据
public Object getById(Object o,int id) {
session = HibernateSessionFactory.getSession();
Object obj;
try{
obj = session.get(o.getClass(),new Integer(id));
}catch(Exception e){
obj = new Object();
e.printStackTrace();
}finally{
}
return obj;
}
这个是存入数据库中的方法
public void saveExecuteQuery(Object o) {
session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
try{
session.save(o);
tx.commit();
}catch(Exception e){
tx.rollback();
e.printStackTrace();
}finally{
}
}
这个是修改数据库中某个列的值
public void updateExcuteUpdate(String hql) {
session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
try{
Query query = session.createQuery(hql);
query.executeUpdate();
tx.commit();
}catch(Exception e){
tx.rollback();
e.printStackTrace();
}finally{
}
}
删除某条数据
public void deleteExcuteUpdate(String hql) {
session = HibernateSessionFactory.getSession();
Query query = session.createQuery(hql);
Transaction tx = session.beginTransaction();
try{
query.executeUpdate();
tx.commit();
}catch(Exception e){
e.printStackTrace();
tx.rollback();
}finally{
}
}
手动关闭Session
public void closeSession(){
session.close();
}
[b]问题补充:[/b]
哦,我已经跑起来了。我给了10分吖
还逮也给说说如何改进。
[b]问题补充:[/b]
我对于静态的理解不是很透彻
在这里我写的private static Session session;
开始的时候写的是 private Session session。 但想想了 怕出错
就用static。能不能给我详解一下 为什么不用static 我想的就是用个单列
最好是一个用户一个session 不必每次都实例化一个session
最好能给举例说明一下好处。
[b]问题补充:[/b]
呵呵,我昨天买了本设计模式方面的书,正在努力的研究中... ...
[b]问题补充:[/b]
再弱弱的问一句
session这个时候应该用什么关闭
是session.colse还是HibernateSessionFactory.closeSession()
我准备在所有的方法的
try{
..
..
代码中
..
..
}catch(Exception e){
HibernateSessionFactory.closeSession()
e.printStackTrace();
}
有没有问题
还是这两种关闭的不同