แพ็คเกจ com.rxtc.bi.app.crm.rep.dao.impl;
นำเข้า java.sql.CallableStatement;
นำเข้า java.sql.Connection;
นำเข้า java.sql.ResultSet;
นำเข้า java.sql.SQLException;
นำเข้า javax.sql.DataSource;
นำเข้า org.springframework.orm.hibernate3.SessionFactoryUtils;
นำเข้า org.springframework.orm.hibernate3.support.HibernateDaoSupport;
-
-
* <ก่อน>
* หัวข้อ: การใช้ขั้นตอนการจัดเก็บในโหมดไฮเบอร์เนต
* เพียงแค่ต้องข้ามไฮเบอร์เนตและเรียก jdbc API แน่นอนว่าธุรกรรมยังคงได้รับการจัดการโดยไฮเบอร์เนต:
สมมติว่าเราสร้างขั้นตอนการจัดเก็บดังต่อไปนี้:
สร้างหรือแทนที่ขั้นตอนแบตช์UpdateCustomer (ตัวเลข p_age) เป็น
เริ่ม
อัปเดตลูกค้าตั้งค่า AGE=AGE+1 โดยที่ AGE> p_age;
จบ;
มีพารามิเตอร์ p_age ใน Stored Procedure ซึ่งแสดงถึงอายุของลูกค้า แอปพลิเคชันสามารถเรียก Stored Procedure ได้ดังนี้:
* คำอธิบาย: คำอธิบายฟังก์ชันของโปรแกรม
* </pre>
* @ผู้เขียน lichunmei [email protected]
* @เวอร์ชั่น 1.00.00
* <ก่อน>
* แก้ไขบันทึก
* เวอร์ชันที่แก้ไข: ตัวแก้ไข: วันที่แก้ไข: เนื้อหาการแก้ไข:
* </pre>
-
ข้อความคลาสสาธารณะขยาย HibernateDaoSupport {
ขั้นตอนโมฆะสาธารณะ () {
พยายาม {
แหล่งข้อมูล ds= SessionFactoryUtils.getDataSource(getSessionFactory());
การเชื่อมต่อ conn=ds.getConnection();
สตริง sql = "{เรียกชุดปรับปรุงลูกค้า(?)}";
CallableStatement cstmt = conn.prepareCall(sql);
cstmt.setInt(1, 0);//ตั้งค่าพารามิเตอร์อายุเป็น 0;
cstmt.executeUpdate();
//ResultSet rs = cstmt.executeQuery(sql); หากทำการสอบถาม
conn.commit();
//rs.ปิด();
conn.ปิด();
} จับ (SQLException e) {
e.printStackTrace();
-
-
-
บทความนี้มาจากบล็อก CSDN โปรดระบุแหล่งที่มาเมื่อพิมพ์ซ้ำ: http://blog.csdn.net/xixi_666/archive/2009/12/18/5029768.aspx
-