您好,登錄后才能下訂單哦!
本篇內容主要講解“如何在iBatis中調用存儲過程”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何在iBatis中調用存儲過程”吧!
通過iBatis我們可以在數據庫表中執行內嵌的insert , delete, update SQL命令。本文中你將看到如何在iBatis中調用存儲過程.
我們使用MySQL數據庫,并且使用和上一個例子中一樣的Contact表.
我們在數據庫"vin"中創建了一個叫showData()的存儲過程,它將顯示Contract表中的所有的contact信息.為了創建存儲過程,我們打開MySQL并創建如下定義的過程 :
DELIMITER $$ DROP PROCEDURE IF EXISTS `vin`.`showData`$$ CREATE PROCEDURE `vin`.`showData`()BEGINselect * from Contact;END$$ DELIMITER ;
"Contact.java"和"SqlMapConfig.xml"與上一個例子中的是一樣的 :
public class Contact { private String firstName; private String lastName; private String email; private int id; public Contact() {} public Contact( String firstName, String lastName, String email) { this.firstName = firstName; this.lastName = lastName; this.email = email; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } }
SqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sqlMapConfigPUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN""http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> <sqlMapConfig> <settings useStatementNamespaces="true"/> <transactionManager type="JDBC"> <dataSource type="SIMPLE"> <property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/> <property name="JDBC.ConnectionURL" value="jdbc:mysql://192.168.10.112:3306/vin"/> <property name="JDBC.Username" value="root"/> <property name="JDBC.Password" value="root"/> </dataSource> </transactionManager> <sqlMap resource="Contact.xml"/> </sqlMapConfig>
我們只需修改"Contact.xml"并使用
<procedure id="storedInfo" resultClass="Contact"> { call showData() } </procedure>
上面幾行代碼調用了存儲過程并集合了contract表.下面是Contact.xml的代碼 :
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sqlMapPUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN""http://ibatis.apache.org/dtd/sql-map-2.dtd"> <sqlMap namespace="Contact"> <!--- Calling stored procedure --> <procedure id="storedInfo" resultClass="Contact"> { call showData()} </procedure></sqlMap>
現在我們可以這樣在iBatis中調用存儲過程 :
sqlMap.queryForList("Contact.storedInfo",null); "sqlMap"是SqlMapClient類的一個對象. IbatisStoredProcedure.java的代碼如下 :
import com.ibatis.common.resources.Resources;import com.ibatis.sqlmap.client.SqlMapClient;import com.ibatis.sqlmap.client.SqlMapClientBuilder;import java.io.*;import java.sql.SQLException;import java.util.*; public class IbatisStoredProcedure{ public static void main(String[] args) throws IOException,SQLException{ Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml"); SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader); System.out.println("All Contacts"); List<Contact> contacts = (List<Contact>) sqlMap.queryForList("Contact.storedInfo",null); Contact contact = null; for (Contact c : contacts) { System.out.print(" " + c.getId()); System.out.print(" " + c.getFirstName()); System.out.print(" " + c.getLastName()); System.out.print(" " + c.getEmail()); contact = c; System.out.println(""); } }}
請依照如下步驟執行在iBatis中調用存儲過程 :
創建Contact.xml和SqlMapConfig.xml
創建Contact.java并將其編譯
創建IbatisStoredProcedure.java并將其編譯
執行IbatisStoredProcedure類文件,所有的Contract信息將在你的命令提示符下顯示 :
到此,相信大家對“如何在iBatis中調用存儲過程”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。