这是显示信息数据表的命令,我看到它重复的声明
代码1
public class DBTable {
public List<MdGmail> showGmail() {
Configuration conf = new Configuration().configure("hibernate.cfg.xml");
SessionFactory sf = conf.buildSessionFactory();
currentSession = sf.getCurrentSession();
currentSession.beginTransaction();
return currentSession.createCriteria(MdGmail.class).list();
}
public List<MdBlogger> showBlogger() {
Configuration conf = new Configuration().configure("hibernate.cfg.xml");
SessionFactory sf = conf.buildSessionFactory();
currentSession = sf.getCurrentSession();
currentSession.beginTransaction();
return currentSession.createCriteria(MdBlogger.class).list();
}
}
在我的DBTable类中,我创建了一个列表函数来将数据库中的数据表显示为表格gmail,命令... 第一个代码1需要重写每个函数的声明,所以我想要的是为所有代码2创建一个连接函数
但是这个声明不会更新的方式在数据库中改变了值
代码2
public class DBTable {
private static final Configuration conf = new Configuration().configure("hibernate.cfg.xml");
private static final SessionFactory sf = conf.buildSessionFactory();
private static Session currentSession;
public DBTable() {
currentSession = sf.getCurrentSession();
currentSession.beginTransaction();
}
private static DBTable instance = null;
public static DBTable getInstance() {
if (instance == null) {
instance = new DBTable();
}
return instance;
}
public List<MdGmail> showTableGmail() {
return currentSession.createCriteria(MdGmail.class).list();
}
public List<MdGmail> showTableOrder() {
return currentSession.createCriteria(MdGmail.class).list();
}
}
如果使用新的附加数据功能,连接将被关闭,命令数据显示我的表将停止工作。请帮助我
public boolean saveOrUpdateGmail(MdGmail table) {
try {
currentSession.saveOrUpdate(table);
currentSession.getTransaction().commit();
return true;
} catch (Exception e) {
currentSession.getTransaction().rollback();
e.printStackTrace();
return false;
}
}
答案 0 :(得分:1)
使用Hibernate的最简单策略是打开一个会话(或获取当前的一个),开始一个事务,为每个操作(showTableGmail, saveOrUpdateGmail
)执行请求,提交和关闭会话。因此,您需要删除DBTable()
构造函数中的所有代码,并执行this。