[英]How update the data from my database in my application java with Hibernate?
我是使用Hibernate的新手。 我的問題是:我正在開發桌面應用程序。 此應用程序用於不同的計算機。 當一台計算機將一個新用戶添加到我的數據庫中時,另一台計算機將無法看到該新用戶,除非他沒有關閉並再次打開該應用程序。
我不明白這是因為sessionFactory是不同的。
我使用Hibernate讀取用戶。
session = Settings.sessionFactory.openSession();
String selectSql = "select c.idClient, c.name FROM Clients c WHERE c.active=1 ORDER BY c.name";
Query query = session.createQuery(selectSql);
List<Object[]> listUsers = query.list();
for (Object[] data : listUsers)
{
cmbClient.addItem(new ItemCombobox(data[0].toString(), data[1].toString()));
}
每次操作完成后,嘗試打開和關閉交易
// Non-managed environment idiom Session sess = factory.openSession(); Transaction tx = null; try {
tx = sess.beginTransaction();
// do some work
...
tx.commit(); } catch (RuntimeException e) {
if (tx != null) tx.rollback();
throw e; // or display error message } finally {
sess.close(); }
參見: https : //docs.jboss.org/hibernate/orm/3.3/reference/en/html/transactions.html
首先是:
我不明白這是因為sessionFactory是不同的。
完全不正確。 我希望您能閱讀一些有關Java應用程序如何與數據庫通信的信息。
如果進行查詢,則會從數據庫中獲取數據,並將本地副本存儲在jvm(Java虛擬機)內存中。 因此,如果要從數據庫中獲取新的數據副本,則只需簡單地再次對數據庫進行查詢(在第二台計算機上完成添加用戶操作之后),而不用重置應用程序。
編輯:注意:SessionFactory在整個應用程序中僅使用一次。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.