分享

ibatis调用mysql存储过程示例

 hh3755 2015-05-29

配置文件:

sqlMapConfig.xml

 

Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2.   
  3. <!DOCTYPE sqlMapConfig        
  4.     PUBLIC "-//ibatis.//DTD SQL Map Config 2.0//EN"        
  5.     "http://ibatis./dtd/sql-map-config-2.dtd">  
  6.   
  7. <sqlMapConfig>  
  8.   
  9.     <settings cacheModelsEnabled="true"  
  10.               enhancementEnabled="true"  
  11.               lazyLoadingEnabled="true"  
  12.               maxRequests="32"  
  13.               maxSessions="10"  
  14.               maxTransactions="5"  
  15.               useStatementNamespaces="true"  
  16.             />  
  17.   
  18.   <!-- Configure a built-in transaction manager.  If you're using an   
  19.        app server, you probably want to use its transaction manager   
  20.        and a managed datasource -->  
  21.   <transactionManager type="JDBC" commitRequired="false">  
  22.     <dataSource type="proxool.ProxoolDataSourceFactory">  
  23.       <property name="driver" value="com.mysql.jdbc.Driver"/>  
  24.       <property name="driverUrl" value="jdbc:mysql://localhost:3306/test"/>  
  25.       <property name="user" value="root"/>  
  26.       <property name="password" value="root"/>  
  27.       <property name="alias" value="default"/>  
  28.       <property name="maximum-connection-count" value="40"/>  
  29.       <property name="overload-without-refusal-lifetime" value="60"/>  
  30.       <property name="house-keeping-test-sql" value="select 1"/>    
  31.     </dataSource>  
  32.   </transactionManager>  
  33.   
  34.   
  35.   <sqlMap resource="proxool/User.xml"/>  
  36.   
  37. </sqlMapConfig>  

 

User.xml

Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE sqlMap  
  3. PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"  
  4. "http://ibatis./dtd/sql-map-2.dtd">  
  5.   
  6. <sqlMap namespace="user">  
  7.   
  8.     <!-- 返回结果集 -->  
  9.     <parameterMap id="ParameterMap" class="map">  
  10.         <parameter property="userNo" jdbcType="INTEGER" javaType="java.lang.Integer" mode="IN"/>  
  11.     </parameterMap>  
  12.   
  13.     <procedure id="call_SearchUser" parameterMap="ParameterMap" resultClass="proxool.User">  
  14.         {call selectuser(?)}   
  15.     </procedure>  
  16.   
  17. </sqlMap>  

 

数据库脚本:

Sql代码  收藏代码
  1. create procedure selectuser(in userno int)   
  2. begin     
  3.  select * from user where uid = userno;     
  4. end   

 

 pojo类:

Java代码  收藏代码
  1. package proxool;  
  2.   
  3. public class User {  
  4.   
  5.     private String uid;  
  6.   
  7.     private String usercd;  
  8.   
  9.     private String password;  
  10.   
  11.     private String addymd;  
  12.   
  13.     public String getAddymd() {  
  14.         return addymd;  
  15.     }  
  16.   
  17.     public void setAddymd(String addymd) {  
  18.         this.addymd = addymd;  
  19.     }  
  20.   
  21.     public String getPassword() {  
  22.         return password;  
  23.     }  
  24.   
  25.     public void setPassword(String password) {  
  26.         this.password = password;  
  27.     }  
  28.   
  29.     public String getUid() {  
  30.         return uid;  
  31.     }  
  32.   
  33.     public void setUid(String uid) {  
  34.         this.uid = uid;  
  35.     }  
  36.   
  37.     public String getUsercd() {  
  38.         return usercd;  
  39.     }  
  40.   
  41.     public void setUsercd(String usercd) {  
  42.         this.usercd = usercd;  
  43.     }  
  44.   
  45. }  

 

测试代码: 

Java代码  收藏代码
  1. List list = null;  
  2.         String resource = "proxool/sqlMapConfig.xml";  
  3.         Reader reader;  
  4.         SqlMapClient sqlMap = null;  
  5.         try {  
  6.             reader = Resources.getResourceAsReader(resource);  
  7.             sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);  
  8.             sqlMap.startTransaction();  
  9.             HashMap<String, Object> map = new HashMap<String, Object>();  
  10.             map.put("userNo", 1);  
  11.             list = sqlMap.queryForList("user.call_SearchUser", map);  
  12.             for (int i = 0; i < list.size(); i++) {  
  13.                 User user = (User) list.get(i);  
  14.                 System.out.print(user.getUid());  
  15.                 System.out.print('\t');  
  16.                 System.out.print(user.getUsercd());  
  17.                 System.out.print('\t');  
  18.                 System.out.println(user.getPassword());  
  19.             }  
  20.             sqlMap.commitTransaction();  
  21.         } catch (Exception e) {  
  22.             e.printStackTrace();  
  23.         } finally {  
  24.             sqlMap.endTransaction();  
  25.         }         

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多