您好,登錄后才能下訂單哦!
這篇文章主要介紹“Hibernate有哪些用法”,在日常操作中,相信很多人在Hibernate有哪些用法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Hibernate有哪些用法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
Hibernate示例
創建一個訂單。在該Hibernate示例中,我們創建并持久化一個訂單。反復運行這個示例,查看產品數量在每次成功創建訂單后如何變化。
/ ...
Configuration cfg = new Configuration().addClass(Product.class).
addClass(Order.class).addClass(OrderItem.class);
// ...
Order order = new Order();
order.addProduct(milk, 3);
order.addProduct(coffee, 5);
// ...
sess = sf.openSession();
Transaction t = sess.beginTransaction();
sess.save(order);
t.commit();
sess.close();
System.out.println(order);
// ...
按照價格范圍查找訂單。在該示例中,我們將展示如何使用一個帶有兩個參數的查詢。Hibernate正確地加載具有適當訂單項和產品的訂單。
// ...
String query = "select o from o "+ "in class test.hibernate.Order "+
"where o.priceTotal > :priceTotalLower "+ "and o.priceTotal
< :priceTotalUpper";
// ...
Query q = sess.createQuery(query);
q.setDouble("priceTotalLower",Double.parseDouble(args[0]));
q.setDouble("priceTotalUpper",Double.parseDouble(args[1]));
List list = q.list();
// ...
sess.close();
// ...
刪除一定價格范圍內的訂單。這是一個重要的Hibernate示例。這里我們會看到Hibernate是一個多么智能的工具。正如前面所提到的,當刪除一個訂單時,其訂單項也需要被刪除,但不能改變產品。在運行該示例后,檢查數據庫,確認產品沒有變化。
// ...
String query = "select o from o "+ "in class test.hibernate.Order "+
"where o.priceTotal > :priceTotalLower "+ "and o.priceTotal
< :priceTotalUpper";
Transaction tx = sess.beginTransaction();
sess.delete(query,new Object[]{new Double(args[0]),new Double(args[1])},
new Type[]{Hibernate.DOUBLE,Hibernate.DOUBLE});tx.commit();
sess.close();
到此,關于“Hibernate有哪些用法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。