总结ibatis与mybatis区别

xiaoxiao2021-02-28  102

1. ibatis3.*版本以后正式改名为mybaits,它也从apache转到了google code下;也就是说ibatis2.*,mybatis3.*。

2. 映射文件的不同

ibatis的配置文件如下

[html]  view plain  copy <?xml version="1.0" encoding="UTF-8" ?>      <!DOCTYPE sqlMapConfig             PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"             "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">      <sqlMapConfig>       <!-- 公共配置 -->       <settings useStatementNamespaces="true" maxRequests="3000"           maxSessions="1000" maxTransactions="3000" />                  <!-- 配置文件        begin -->           <sqlMap resource="com/test/biz/dao/sql/AA_SqlMap.xml" />   [html]  view plain  copy <pre name="code" class="html">    <sqlMap resource="com/test/biz/dao/sql/BB_SqlMap.xml" />   </sqlMapConfig>

mybatis的配置文件如下

[html]  view plain  copy <?xml version="1.0" encoding="UTF-8"?>   <!DOCTYPE configuration       PUBLIC "-//mybatis.org//DTD Config 3.0//EN"       "http://mybatis.org/dtd/mybatis-3-config.dtd">   <configuration>          <settings>           <!-- changes from the defaults for testing -->           <setting name="cacheEnabled" value="false" />           <setting name="useGeneratedKeys" value="true" />           <setting name="defaultExecutorType" value="REUSE" />           <!-- 延迟加载 -->           <setting name="lazyLoadingEnabled" value="true" />           <setting name="aggressiveLazyLoading" value="false" />       </settings>       <mappers>           <mapper resource="com/test/biz/dao/sql/AAMapper.xml"/>       </mappers>   </configuration>  

从以上两个配置文件,大致分析有哪些不同点:

2.1 dtd约束文件不同

2.2 ibatis中根元素是sqlMapConfig,mybatis中是configuration;

2.3 settings属性的不同配置

ibatis中是

<settings 属性1="属性值1" 属性2="属性值2"  属性x="属性值x"/>

mybatis中是

<settings>

<setting name="属性1" value="属性值1"/>

<setting name="属性2" value="属性值2"/>

<setting name="属性x" value="属性值x"/>

</settings> 2.4 ibatis中是使用sqlMap元素,mybatis中是使用mappers元素;

2.5 数据库表的映射区别

ibatis中某表的映射文件

[html]  view plain  copy <?xml version="1.0" encoding="UTF-8" ?>   <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" >   <sqlMap namespace="PP_CLASS_PROPERTY">       <resultMap id="BaseResultMap" class="com.test.biz.dto.PpClassProperty">           <result column="ID" property="id" jdbcType="VARCHAR" />           <result column="CLASS_ID" property="classId" jdbcType="VARCHAR" />           <result column="PROPERTY_ID" property="propertyId" jdbcType="VARCHAR" />           <result column="INPUT_TYPE" property="inputType" jdbcType="VARCHAR" />           <result column="SORT_NUM" property="sortNum" jdbcType="DECIMAL" />           <result column="DESCRIPTION" property="description" jdbcType="VARCHAR" />           <result column="CREATED_DATE" property="createdDate" jdbcType="TIMESTAMP" />           <result column="CREATED_BY" property="createdBy" jdbcType="VARCHAR" />           <result column="UPDATED_DATE" property="updatedDate" jdbcType="TIMESTAMP" />           <result column="UPDATED_BY" property="updatedBy" jdbcType="VARCHAR" />           <result column="STATUS" property="status" jdbcType="DECIMAL" />           <result column="IS_KEY" property="isKey" jdbcType="DECIMAL" />           <result column="IS_SPU" property="isSpu" jdbcType="DECIMAL" />           <result column="IS_SALE" property="isSale" jdbcType="DECIMAL" />           <result column="IS_PRODUCT" property="isProduct" jdbcType="DECIMAL" />           <result column="CHANNEL_ID" property="channelId" jdbcType="VARCHAR" />           <result column="COMPANY_ID" property="companyId" jdbcType="VARCHAR" />       </resultMap>          <resultMap id="ResultMapWithClassName" class="com.test.biz.dto.PpClassProperty"           extends="PP_CLASS_PROPERTY.BaseResultMap">           <result property="propertyName" jdbcType="VARCHAR" />           <result property="className" jdbcType="VARCHAR" />       </resultMap>          <resultMap id="ResultMapWithClassNameForPage" class="com.test.biz.dto.PpClassProperty"           extends="PP_CLASS_PROPERTY.BaseResultMap">           <result property="propertyName" jdbcType="VARCHAR" />           <result property="className" jdbcType="VARCHAR" />           <result column="rnum" property="rnum" jdbcType="VARCHAR" />       </resultMap>          <sql id="Base_Column_List">           ID, CLASS_ID, PROPERTY_ID, INPUT_TYPE, SORT_NUM,           DESCRIPTION,           CREATED_DATE, CREATED_BY,           UPDATED_DATE, UPDATED_BY, STATUS,           IS_KEY, IS_SPU, IS_SALE, IS_PRODUCT,CHANNEL_ID,COMPANY_ID       </sql>          <sql id="p_Base_Column_List">           P.ID, P.CLASS_ID, P.PROPERTY_ID, P.INPUT_TYPE, P.SORT_NUM,           P.DESCRIPTION,           P.CREATED_DATE,           P.CREATED_BY, P.UPDATED_DATE,           P.UPDATED_BY, P.STATUS, P.IS_KEY, P.IS_SPU,           P.IS_SALE,           P.IS_PRODUCT,P.CHANNEL_ID,P.COMPANY_ID       </sql>          <!-- 0:未删除 1:已删除 -->       <select id="selectByPrimaryKey" resultMap="BaseResultMap"           parameterClass="com.test.biz.dto.PpClassProperty">           SELECT           <include refid="PP_CLASS_PROPERTY.Base_Column_List" />           FROM PP_CLASS_PROPERTY           WHERE ID = #id:VARCHAR# AND           <include refid="COMMON_JUDGEMENT_RULE.Judge_Status_ChannelId_CompanyId" />       </select>          <!-- 删除执行的是修改状态为1,表示已删除 -->       <update id="deleteByPrimaryKey" parameterClass="com.test.biz.dto.PpClassProperty">           UPDATE           PP_CLASS_PROPERTY           SET STATUS = 1           where ID = #id:VARCHAR# AND           <include refid="COMMON_JUDGEMENT_RULE.Judge_Status_ChannelId_CompanyId" />       </update>          <!-- 全字段 添加 -->       <insert id="insert" parameterClass="com.test.biz.dto.PpClassProperty">           INSERT INTO PP_CLASS_PROPERTY           (           <include refid="PP_CLASS_PROPERTY.Base_Column_List" />           )           VALUES (#id:VARCHAR#, #classId:VARCHAR#,           #propertyId:VARCHAR#,           #inputType:VARCHAR#,           #sortNum:DECIMAL#,           #description:VARCHAR#,           #createdDate:TIMESTAMP#,           #createdBy:VARCHAR#,           #updatedDate:TIMESTAMP#,           #updatedBy:VARCHAR#, 0,#isKey:DECIMAL#,           #isSpu:DECIMAL#,           #isSale:DECIMAL#, #isProduct:DECIMAL#,           #channelId:VARCHAR#,           #companyId:VARCHAR#)       </insert>          <!-- 动态修改 -->       <update id="updateByPrimaryKeySelective" parameterClass="com.test.biz.dto.PpClassProperty">           UPDATE PP_CLASS_PROPERTY           <dynamic prepend="set">               <isNotNull prepend="," property="classId">                   CLASS_ID =                   #classId:VARCHAR#               </isNotNull>               <isNotNull prepend="," property="propertyId">                   PROPERTY_ID =                   #propertyId:VARCHAR#               </isNotNull>               <isNotNull prepend="," property="inputType">                   INPUT_TYPE =                   #inputType:VARCHAR#               </isNotNull>               <isNotNull prepend="," property="sortNum">                   SORT_NUM =                   #sortNum:DECIMAL#               </isNotNull>               <isNotNull prepend="," property="description">                   DESCRIPTION =                   #description:VARCHAR#               </isNotNull>               <isNotNull prepend="," property="createdDate">                   CREATED_DATE =                   #createdDate:TIMESTAMP#               </isNotNull>               <isNotNull prepend="," property="createdBy">                   CREATED_BY =                   #createdBy:VARCHAR#               </isNotNull>               <isNotNull prepend="," property="updatedDate">                   UPDATED_DATE =                   #updatedDate:TIMESTAMP#               </isNotNull>               <isNotNull prepend="," property="updatedBy">                   UPDATED_BY =                   #updatedBy:VARCHAR#               </isNotNull>               <isNotNull prepend="," property="status">                   STATUS = #status:DECIMAL#               </isNotNull>               <isNotNull prepend="," property="isKey">                   IS_KEY = #isKey:DECIMAL#               </isNotNull>               <isNotNull prepend="," property="isSpu">                   IS_SPU = #isSpu:DECIMAL#               </isNotNull>               <isNotNull prepend="," property="isSale">                   IS_SALE = #isSale:DECIMAL#               </isNotNull>               <isNotNull prepend="," property="isProduct">                   IS_PRODUCT =                   #isProduct:DECIMAL#               </isNotNull>           </dynamic>           WHERE ID = #id:VARCHAR# AND           <include refid="COMMON_JUDGEMENT_RULE.Judge_Status_ChannelId_CompanyId" />       </update>          <!--查询类目已经关联的属性 0:未删除 1:已删除 -->       <select id="selectByClassId" resultMap="BaseResultMap"           parameterClass="com.test.biz.dto.PpClassProperty">           SELECT           <include refid="PP_CLASS_PROPERTY.Base_Column_List" />           FROM PP_CLASS_PROPERTY           WHERE CLASS_ID = #classId:VARCHAR# AND           <include refid="COMMON_JUDGEMENT_RULE.Judge_Status_ChannelId_CompanyId" />       </select>          <!-- 统计 查询类目已经关联的属性的数量 0:未删除 1:已删除 -->       <select id="countByClassId" resultClass="integer"           parameterClass="com.test.biz.dto.PpClassProperty">           SELECT           COUNT(ID)           FROM PP_CLASS_PROPERTY           WHERE CLASS_ID =           #classId:VARCHAR# AND           <include refid="COMMON_JUDGEMENT_RULE.Judge_Status_ChannelId_CompanyId" />       </select>          <!--根据类目id查询类目属性(包含类目名称和属性名称) 0:未删除 1:已删除 -->       <select id="selectWithClassNameByClassId" resultMap="ResultMapWithClassName"           parameterClass="map">           SELECT           <include refid="p_Base_Column_List" />           ,PP.PROPERTY_NAME PROPERTYNAME,PC.CLASS_NAME CLASSNAME           FROM           PP_CLASS_PROPERTY P,PP_PROPERTY PP,PP_CLASS PC           WHERE P.CLASS_ID =           #classId# AND P.CHANNEL_ID = #channelId# AND P.COMPANY_ID =           #companyId#           <isNotNull property="likeName">               AND PP.PROPERTY_NAME LIKE '%'||#likeName#||'%'           </isNotNull>           AND P.CLASS_ID = PC.ID AND P.PROPERTY_ID = PP.ID           AND P.CHANNEL_ID =           PC.CHANNEL_ID AND P.CHANNEL_ID = PP.CHANNEL_ID           AND P.COMPANY_ID =           PC.COMPANY_ID AND P.COMPANY_ID = PP.COMPANY_ID           AND P.STATUS=0 AND           PP.STATUS=0 AND PC.STATUS=0       </select>             <!--根据类目id查询类目属性(包含类目名称和属性名称) 查询总数 -->       <select id="countPageFindPpClassPropertyByClassId" resultClass="integer"           parameterClass="map">           SELECT           COUNT(1)           FROM           PP_CLASS_PROPERTY P,PP_PROPERTY PP,PP_CLASS PC           WHERE P.CLASS_ID =           #classId# AND P.CHANNEL_ID = #channelId# AND P.COMPANY_ID =           #companyId#           <isNotNull property="likeName">               AND PP.PROPERTY_NAME LIKE '%'||#likeName#||'%'           </isNotNull>           AND P.CLASS_ID = PC.ID AND P.PROPERTY_ID = PP.ID           AND P.CHANNEL_ID =           PC.CHANNEL_ID AND P.CHANNEL_ID = PP.CHANNEL_ID           AND P.COMPANY_ID =           PC.COMPANY_ID AND P.COMPANY_ID = PP.COMPANY_ID           AND P.STATUS=0 AND           PP.STATUS=0 AND PC.STATUS=0       </select>          <!-- 根据类目id查询该条记录时关键属性并且时type类型是input的值的信息 -->       <select id="findInputClassProperty" resultClass="java.util.HashMap"           parameterClass="com.test.biz.dto.PpClassProperty">           SELECT INPUT_TYPE AS "inputType" FROM PP_CLASS_PROPERTY           WHERE           CLASS_ID=#classId# AND IS_KEY=1            AND (INPUT_TYPE='input' OR INPUT_TYPE='textarea') AND           <include refid="COMMON_JUDGEMENT_RULE.Judge_Status_ChannelId_CompanyId" />       </select>         </sqlMap>   mybatis的数据库表映射文件

[html]  view plain  copy <?xml version="1.0" encoding="UTF-8" ?>   <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >      <mapper namespace="com.ilvyou.system.dao.SysUserMapper" >       <resultMap id="BaseResultMap" type="com.ilvyou.system.entity.SysUserEntity" >           <id property="id" column="ID" jdbcType="VARCHAR"/>           <result property="loginName" column="LOGIN_NAME" jdbcType="VARCHAR"/>           <result property="loginPass" column="LOGIN_PASS" jdbcType="VARCHAR"/>           <result property="userType" column="USER_TYPE" jdbcType="VARCHAR"/>           <result property="regDate" column="REG_DATE" jdbcType="CHAR"/>           <result property="email" column="EMAIL" jdbcType="VARCHAR"/>           <result property="mobile" column="MOBILE" jdbcType="VARCHAR"/>           <result property="qq" column="QQ" jdbcType="VARCHAR"/>           <result property="photo" column="PHOTO" jdbcType="VARCHAR"/>           <result property="cardType" column="CARD_TYPE" jdbcType="VARCHAR"/>           <result property="cardValue" column="CARD_VALUE" jdbcType="VARCHAR"/>           <result property="userName" column="USER_NAME" jdbcType="VARCHAR"/>           <result property="userSex" column="USER_SEX" jdbcType="VARCHAR"/>           <result property="userBir" column="USER_BIR" jdbcType="CHAR"/>           <result property="userAddr" column="USER_ADDR" jdbcType="VARCHAR"/>           <result property="jobName" column="JOB_NAME" jdbcType="VARCHAR"/>           <result property="jobAddr" column="JOB_ADDR" jdbcType="VARCHAR"/>           <result property="jobTel" column="JOB_TEL" jdbcType="VARCHAR"/>           <result property="bornAddr" column="BORN_ADDR" jdbcType="VARCHAR"/>           <result property="userStatus" column="USER_STATUS" jdbcType="INTEGER"/>           <result property="roleType" column="ROLE_TYPE" jdbcType="VARCHAR"/>       </resultMap>          <sql id="Base_Column_List">       ID          ,       LOGIN_NAME  ,       LOGIN_PASS  ,       USER_TYPE   ,       REG_DATE    ,       EMAIL       ,       MOBILE      ,       QQ          ,       PHOTO       ,       CARD_TYPE   ,       CARD_VALUE  ,       USER_NAME   ,       USER_SEX    ,       USER_BIR    ,       USER_ADDR   ,       JOB_NAME    ,       JOB_ADDR    ,       JOB_TEL     ,       BORN_ADDR   ,       USER_STATUS ,       ROLE_TYPE       </sql>          <sql id="select_by_page_outter_orderby_sql" >         <if test="orderByClause != null">    order by ${orderByClause}   </if>        </sql>             <!--select mothed-->       <select id="selectByPrimaryKey" parameterType="String" resultMap="SysUserEntityResultMap">       select        <include refid="Base_Column_List" />       from SYS_USER       where ID = #{id,jdbcType=VARCHAR}       </select>              <!--insert mothed-->       <insert id="insert" parameterType="com.ilvyou.system.entity.SysUserEntity">       insert into SYS_USER (           <include refid="Base_Column_List" />         )       values (       #{id,jdbcType=VARCHAR},       #{loginName,jdbcType=VARCHAR},       #{loginPass,jdbcType=VARCHAR},       #{userType,jdbcType=VARCHAR},       #{regDate,jdbcType=CHAR},       #{email,jdbcType=VARCHAR},       #{mobile,jdbcType=VARCHAR},       #{qq,jdbcType=VARCHAR},       #{photo,jdbcType=VARCHAR},       #{cardType,jdbcType=VARCHAR},       #{cardValue,jdbcType=VARCHAR},       #{userName,jdbcType=VARCHAR},       #{userSex,jdbcType=VARCHAR},       #{userBir,jdbcType=CHAR},       #{userAddr,jdbcType=VARCHAR},       #{jobName,jdbcType=VARCHAR},       #{jobAddr,jdbcType=VARCHAR},       #{jobTel,jdbcType=VARCHAR},       #{bornAddr,jdbcType=VARCHAR},       #{userStatus,jdbcType=INTEGER},       #{roleType,,jdbcType=VARCHAR}       )       </insert>          <insert id="batchInsert" >           insert into SYS_USER (<include refid="Base_Column_List" />)         values            <foreach collection="list" item="item" index="index" separator=",">       (       #{item.id,jdbcType=VARCHAR},       #{item.loginName,jdbcType=VARCHAR},       #{item.loginPass,jdbcType=VARCHAR},       #{item.userType,jdbcType=VARCHAR},       #{item.regDate,jdbcType=CHAR},       #{item.email,jdbcType=VARCHAR},       #{item.mobile,jdbcType=VARCHAR},       #{item.qq,jdbcType=VARCHAR},       #{item.photo,jdbcType=VARCHAR},       #{item.cardType,jdbcType=VARCHAR},       #{item.cardValue,jdbcType=VARCHAR},       #{item.userName,jdbcType=VARCHAR},       #{item.userSex,jdbcType=VARCHAR},       #{item.userBir,jdbcType=CHAR},       #{item.userAddr,jdbcType=VARCHAR},       #{item.jobName,jdbcType=VARCHAR},       #{item.jobAddr,jdbcType=VARCHAR},       #{item.jobTel,jdbcType=VARCHAR},       #{item.bornAddr,jdbcType=VARCHAR},       #{item.userStatus,jdbcType=INTEGER},       #{item.roleType,jdbcType=VARCHAR}       )       </foreach>       </insert>             <update id="updateByPrimaryKeySelective" parameterType="com.ilvyou.system.entity.SysUserEntity">       update SYS_USER       <set>         <if test="id != null">          ID = #{id,jdbcType=VARCHAR},         </if>         <if test="loginName != null">          LOGIN_NAME = #{loginName,jdbcType=VARCHAR},         </if>         <if test="loginPass != null">          LOGIN_PASS = #{loginPass,jdbcType=VARCHAR},         </if>         <if test="userType != null">          USER_TYPE = #{userType,jdbcType=VARCHAR},         </if>         <if test="regDate != null">          REG_DATE = #{regDate,jdbcType=CHAR},         </if>         <if test="email != null">          EMAIL = #{email,jdbcType=VARCHAR},         </if>         <if test="mobile != null">          MOBILE = #{mobile,jdbcType=VARCHAR},         </if>         <if test="qq != null">          QQ = #{qq,jdbcType=VARCHAR},         </if>         <if test="photo != null">          PHOTO = #{photo,jdbcType=VARCHAR},         </if>         <if test="cardType != null">          CARD_TYPE = #{cardType,jdbcType=VARCHAR},         </if>         <if test="cardValue != null">          CARD_VALUE = #{cardValue,jdbcType=VARCHAR},         </if>         <if test="userName != null">          USER_NAME = #{userName,jdbcType=VARCHAR},         </if>         <if test="userSex != null">          USER_SEX = #{userSex,jdbcType=VARCHAR},         </if>         <if test="userBir != null">          USER_BIR = #{userBir,jdbcType=CHAR},         </if>         <if test="userAddr != null">          USER_ADDR = #{userAddr,jdbcType=VARCHAR},         </if>         <if test="jobName != null">          JOB_NAME = #{jobName,jdbcType=VARCHAR},         </if>         <if test="jobAddr != null">          JOB_ADDR = #{jobAddr,jdbcType=VARCHAR},         </if>         <if test="jobTel != null">          JOB_TEL = #{jobTel,jdbcType=VARCHAR},         </if>         <if test="bornAddr != null">          BORN_ADDR = #{bornAddr,jdbcType=VARCHAR},         </if>         <if test="userStatus != null">          USER_STATUS = #{userStatus,jdbcType=INTEGER},         </if>         <if test="roleType != null">          ROLE_TYPE = #{roleType,jdbcType=VARCHAR},         </if>        </set>       where ID = #{id,jdbcType=VARCHAR}        </update>             <update id="batchUpdateByPrimaryKey" >           <foreach collection="list" item="item" index="index">               update SYS_USER set          LOGIN_NAME = #{item.loginName,jdbcType=VARCHAR},         LOGIN_PASS = #{item.loginPass,jdbcType=VARCHAR},         USER_TYPE = #{item.userType,jdbcType=VARCHAR},         REG_DATE = #{item.regDate,jdbcType=CHAR},         EMAIL = #{item.email,jdbcType=VARCHAR},         MOBILE = #{item.mobile,jdbcType=VARCHAR},         QQ = #{item.qq,jdbcType=VARCHAR},         PHOTO = #{item.photo,jdbcType=VARCHAR},         CARD_TYPE = #{item.cardType,jdbcType=VARCHAR},         CARD_VALUE = #{item.cardValue,jdbcType=VARCHAR},         USER_NAME = #{item.userName,jdbcType=VARCHAR},         USER_SEX = #{item.userSex,jdbcType=VARCHAR},         USER_BIR = #{item.userBir,jdbcType=CHAR},         USER_ADDR = #{item.userAddr,jdbcType=VARCHAR},         JOB_NAME = #{item.jobName,jdbcType=VARCHAR},         JOB_ADDR = #{item.jobAddr,jdbcType=VARCHAR},         JOB_TEL = #{item.jobTel,jdbcType=VARCHAR},         BORN_ADDR = #{item.bornAddr,jdbcType=VARCHAR},         USER_STATUS = #{item.userStatus,jdbcType=INTEGER},         ROLE_TYPE = #{item.roleType,jdbcType=VARCHAR}       where ID = #{item.id,jdbcType=VARCHAR}       </foreach>       </update>                <!--delete mothed-->       <delete id="deleteByPrimaryKey" parameterType="String">           delete from SYS_USER           where ID = #{id,jdbcType=VARCHAR}       </delete>          <delete id="batchDelete">           delete from SYS_USER            where ID in (           <foreach collection="list" item="item" index="index" separator=",">               #{item.id,jdbcType=VARCHAR}           </foreach>           )       </delete>      </mapper>   两者的区别有:

2.5.1 ibatis中根元素是sqlMap,mybatis中是mapper;

2.5.2 在 iBatis 中,namespace 不是必需的,且它的存在没有实际的意义。在 MyBatis 中,namespace 终于派上用场了,它使得映射文件与接口绑定变得非常自然。

2.5.3 ibatis中有resultMap和resultClass两种返回类型,resultMap是我们在ibatis的配置文件中定义的,也就是在配置文件中使用resultMap元素定义的;resultClass是指Java语言中内置的类型,如:integer、java.util.HashMap等等;

mybatis中将两者统一为resultType,这样挺好的,开发者不用再记两个属性了。

2.5.4 ibatis中有parameterClass,mybatis中有parameterType,两者区别不大。

2.5.5 参数的写法比较

ibatis中写法,如代码片段:

[html]  view plain  copy WHERE ID = #id:VARCHAR#  

mybatis中写法,如代码片段:

[html]  view plain  copy where ID = #{id,jdbcType=VARCHAR}   2.5.6 iBatis/MyBatis 调用存储过程的写法 iBatis 调用存储过程的方法,通过使用 <procedure> 元素进行存储过程的调用: [html]  view plain  copy <parameterMap id="swapParameters" class="map" >              <parameter property="contactId" jdbcType="INTEGER" javaType="java.lang.Integer" mode="IN"/>              <parameter property="firstName" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN"/>                <parameter property="lastName" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN"/>             </parameterMap>                          <procedure id="swapContactName" parameterMap="swapParameters" >             {call swap_contact_name (?, ?,?)}              </procedure>      在 MyBatis 中,<proccedure> 元素已经被移除,通过 <select>、<insert> 和 <update> 进行定义: [html]  view plain  copy <select id="swapContactName" parameterMap="swapParameters" statementType="CALLABLE">       { ? = call swap_contact_name (?,?,?)}      </select>   如上所示,通过 statementType 属性将该语句标识为存储过程而非普通 SQL 语句。

2.6 ibatis和mybatis与spring的集成配置

ibatis的配置

[html]  view plain  copy <!--===================================================================== -->   <!-- iBATIS 配置文件定义 -->   <!--===================================================================== -->   <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">       <property name="configLocation" value="classpath:sqlMap-config.xml" />       <property name="dataSource" ref="dataSource" />   </bean>  

mybatis的配置

[html]  view plain  copy <!-- define the MyBatis SqlSessionFactory -->   <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">       <property name="dataSource" ref="dataSource" />       <property name="configLocation" value="classpath:com/ilvyou/core/config/mybatis-config.xml" />       <property name="mapperLocations" value="classpath*:com/ilvyou/**/*Mapper.xml" />   </bean>  
转载请注明原文地址: https://www.6miu.com/read-35459.html

最新回复(0)