iBatis学习

tis学习小结
关键字: iBATIS       

sqlMap文件

代码
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE sqlMap         
  3.     PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"         
  4.     "http://ibatis.apache.org/dtd/sql-map-2.dtd">  
  5. <sqlMap namespace="Account">  
  6.   <typeAlias alias="Account" type="test.Account"/>  
  7.   <!--列表查询,返回Account Object的List-->    
  8.   <resultMap id="AccountResult" class="Account">  
  9.     <result property="id" column="ID"/>  
  10.     <result property="firstName" column="FIRST_NAME"/>  
  11.     <result property="lastName" column="LAST_NAME"/>  
  12.     <result property="emailAddress" column="EMAIL"/>  
  13.   </resultMap>     
  14.   <select id="selectAllAccounts" resultMap="AccountResult">  
  15.     select * from ACCOUNT   
  16.   </select>  
  17.      
  18.   <!--列表查询,返回HashMap的List-->       
  19.   <resultMap id="mapResult" class="java.util.HashMap">  
  20.     <result property="roleid" column="ROLEID"/>  
  21.     <result property="rolename" column="ROLENAME"/>  
  22.     <result property="id" column="ID"/>  
  23.     <result property="firstName" column="FIRST_NAME"/>  
  24.     <result property="lastName" column="LAST_NAME"/>  
  25.     <result property="emailAddress" column="EMAIL"/>  
  26.     <result property="dt" column="DT"/>  
  27.   </resultMap>  
  28.   <select id="selectAllAccountsWithMap" resultMap="mapResult">  
  29.         select B.ROLEID, B.ROLENAME, A.ID, A.FIRST_NAME,A.LAST_NAME,A.EMAIL,A.DT   
  30.         from ACCOUNT A left outer join ROLE B   on A.ROLEID = B.ROLEID   
  31.         ORDER BY A.ID DESC   
  32.   </select>  
  33.      
  34.   <!--关联查询,返回Account Object的List-->  
  35.   <resultMap id="AccountResultWithRole" class="Account" groupBy="id">  
  36.     <result property="id" column="ID"/>  
  37.     <result property="firstName" column="FIRST_NAME"/>  
  38.     <result property="lastName" column="LAST_NAME"/>  
  39.     <result property="emailAddress" column="EMAIL"/>       
  40.     <result property="role" resultMap="Account.roleResult"/>  
  41.   </resultMap>  
  42.   <resultMap id="roleResult" class="test.Role">  
  43.     <result property="roleid" column="ROLEID"/>  
  44.     <result property="rolename" column="ROLENAME"/>  
  45.   </resultMap>  
  46.   <select id="selectAccountByIdWithRole" parameterClass="int" resultMap="AccountResultWithRole">  
  47.         select B.ROLEID, B.ROLENAME, A.ID, A.FIRST_NAME,A.LAST_NAME,A.EMAIL   
  48.         from ACCOUNT A   
  49.         left outer join ROLE B   
  50.         on A.ROLEID = B.ROLEID   
  51.         where A.ID = #id#   
  52.   </select>  
  53.      
  54.   <!--查询-->    
  55.   <select id="selectAccountById" parameterClass="int" resultClass="Account">  
  56.     select   
  57.       ID as id,   
  58.       FIRST_NAME as firstName,   
  59.       LAST_NAME as lastName,   
  60.       EMAIL as emailAddress   
  61.     from ACCOUNT   
  62.     where ID = #id#   
  63.   </select>  
  64.      
  65.   <!--新增-->      
  66.   <insert id="insertAccount" parameterClass="Account">  
  67.     insert into ACCOUNT (   
  68.       FIRST_NAME,   
  69.       LAST_NAME,   
  70.       EMAIL,   
  71.       PID,   
  72.       DT   
  73.     )     
  74.     values (   
  75.       #firstName:VARCHAR#, #lastName:VARCHAR#, #emailAddress:VARCHAR#,#pid:INTEGER:0#,#dt:TIME#   
  76.     )   
  77.     <selectKey resultClass="int" type="post" keyProperty="id">  
  78.         SELECT @@IDENTITY AS ID   
  79.     </selectKey>       
  80.   </insert>  
  81.      
  82.   <!--更新-->    
  83.   <update id="updateAccount" parameterClass="Account">  
  84.     update ACCOUNT set   
  85.       FIRST_NAME = #firstName:VARCHAR#,   
  86.       LAST_NAME = #lastName:VARCHAR#,   
  87.       EMAIL = #emailAddress:VARCHAR#   
  88.     where   
  89.       ID = #id#   
  90.   </update>  
  91.   
  92.   <!--删除-->  
  93.   <delete id="deleteAccountById" parameterClass="int">  
  94.     delete from ACCOUNT where ID = #id#   
  95.   </delete>  
  96.      
  97.   <!--存储过程,如果没有返回列表,procTest的resultMap可以省略-->      
  98.   <parameterMap id="procParamMap" class="java.util.HashMap" >  
  99.     <parameter property="id" jdbcType="INTEGER" javaType="java.lang.Integer" mode="IN"/>  
  100.     <parameter property="outid" jdbcType="INTEGER" javaType="java.lang.Integer" mode="OUT"/>  
  101.     <parameter property="errMsg" jdbcType="VARCHAR" javaType="java.lang.String" mode="OUT"/>  
  102.   </parameterMap>  
  103.   <resultMap id="procResultMap" class="java.util.HashMap" >  
  104.     <result property="a" column="AAA"/>  
  105.     <result property="b" column="BBB"/>  
  106.     <result property="c" column="CCC"/>       
  107.   </resultMap>     
  108.   <procedure id="procTest" parameterMap="procParamMap" resultMap="procResultMap">  
  109.     {call test_sp_1 (?,?,?)}   
  110.   </procedure>  
  111. </sqlMap>  
<script>render_code();</script>

 

java 代码

代码
  1. public class TestDao extends SqlMapClientDaoSupport {   
  2.     public List selectAllAccounts() throws SQLException {   
  3.         return getSqlMapClientTemplate().queryForList("selectAllAccounts");   
  4.     }   
  5.   
  6.     public List selectAllAccountsWithMap() throws SQLException {   
  7.         return getSqlMapClientTemplate().queryForList(   
  8.                 "selectAllAccountsWithMap");   
  9.     }      
  10.        
  11.     public Account selectAccountById(int id) throws SQLException {   
  12.         return (Account) getSqlMapClientTemplate().queryForObject(   
  13.                 "selectAccountById"new Integer(id));   
  14.     }   
  15.     public List procTest(Map params) throws Exception {   
  16.         List ret = (List) getSqlMapClientTemplate().queryForList("procTest",params);   
  17.         return ret;   
  18.     }   
  19.     public Account selectAccountByIdWithRole(int id) throws SQLException {   
  20.         return (Account) getSqlMapClientTemplate().queryForObject(   
  21.                 "selectAccountByIdWithRole"new Integer(id));   
  22.     }      
  23.        
  24.     public void insertAccount(Account account) throws SQLException {   
  25.         getSqlMapClientTemplate().insert("insertAccount", account);   
  26.     }   
  27.   
  28.     public int updateAccount(Account account) throws SQLException {   
  29.         return getSqlMapClientTemplate().update("updateAccount", account);   
  30.     }   
  31.   
  32.     public int deleteAccount(int id) throws SQLException {   
  33.         return getSqlMapClientTemplate().delete("deleteAccountById"new Integer(id));   
  34.     }   
  35. }  
<script>render_code();</script>

 

SqlServer存储过程

代码
  1. CREATE procedure test_sp_1 @id int,@outid int output,@errMsg varchar(255) output   
  2.   
  3. AS   
  4.   
  5. update ACCOUNT set pid=@id  
  6. select @outid=isnull(@id,0)+1  
  7. select @errMsg='测试'   
  8. select AAA='AAAAAAA',BBB='BBBBBBB',CCC='CCCCCCC'   
  9. GO  
<script>render_code();</script>

 

你可能感兴趣的:(apache,sql,ibatis,Go)