sqlMapConfig.xml 中的异同.
iBATIS_v1 |
iBATIS_v2 |
iBATIS_v3 |
|
DOCTYPE |
sql-map-config.dtd |
sql-map-config-2.dtd |
ibatis-3-config.dtd |
configuration标签 |
<sql-map-config> </sql-map-config>
扫描二维码关注公众号,回复:
171541 查看本文章
|
<sqlMapConfig> </sqlMapConfig> |
<configuration> </configuration> |
sqlMap标签 |
<sql-map recource../> |
<sqlMap recource../> |
<mappers> <mapper recource.. /> </mappers> |
sqlMap 映射中的异同
iBATIS_v1 |
iBATIS_v2 |
iBATIS_v3 |
|
DOCTYPE |
sql-map.dtd |
sql-map-2.dtd |
ibatis-3-mapper.dtd |
sqlMap标签 |
<sql-map> </sql-map> |
<sqlMap> </sqlMap> |
<mapper> </mapper> |
statement标签 |
<mapped-statement> </mapped-statement> |
<select></select> <update></update> <statement></>… |
<select></select> <update></update> |
参数表示 |
#id# |
#id# |
#{id} |
sqlMap API的异同
iBATIS_v1 |
iBATIS_v2 |
iBATIS_v3 |
|
执行对象 |
SqlMap |
SqlMapClient |
SqlSession |
得到执行 |
XMLSqlMapBuilder-> builderSqlMap |
SqlMapClientBuilder-> builderSqlMap |
SqlSessionFactory-> openSession |
执行 |
excuteQueryForObject |
queryForObject.. queryForList… update… |
selectOne… selectList… update… |
针对映射文件,首先是一系列的属性名称的改变,这些仅仅是名称的改变,用法和含义并没有发生变化:
- 和全局配置文件一样,由于 DTD 约束发生变化,根元素也由原来的 <sqlMap> 调整为 <mapper>。
- <select> 等元素的 parameterClass 属性改为了 parameterType 属性。
- <select> 等元素的 resultClasss 属性改为了 resultType 属性。
- <parameterMap> 等元素的 class 属性改为了 type 属性。
- <result> 元素的 columnIndex 属性被移除了。
- 嵌套参数由 #value# 改为了 #{value}。
- <parameter> 等元素的 jdbcType 属性取值中,原来的 "ORACLECURSOR" 取值改为了现在的 "CURSOR","NUMBER" 取值改为了 "NUMERIC"
MyBatis 在编码中的最大的改变就是将一个最常用的 API 由 SqlMapClient 改为了 SqlSessionFactory
根据 iBatis 的习惯,我们通常把全局配置文件命名为 sqlMapConfig.xml,文件名本身并没有要求,在 MyBatis 中,也经常会将该文件命名为 Configuration.xml
版本的 DTD 约束不同,MyBatis 的 DTD 文件已经包含在发布包下的 mybatis-3.0.x.jar 包中。这直接影响到的是,iBatis 配置文件的根元素是 <sqlMapConfig>,而 MyBatis 使用的是 <configuration>
1.1iBatis 中设置属性的方式
<settings props1="value1" props2="value2"… />
1.2myBatis 中设置属性的方式
<settings> <setting name="props1" value="value1"/> <setting name="props2" value="value2"/> </settings>
2.1在 iBatis 中指定映射文件的方式
<sqlMap resource=... /> <sqlMap resource=... /> <sqlMap resource=... />
2.2在 MyBatis 中指定映射文件的方式
<mappers> <mapper resource=... /> <mapper resource=... /> </mappers>
在 MyBatis 中,<proccedure> 元素已经被移除,通过 <select>、<insert> 和 <update> 进行定义:
3.1 iBatis 中调用存储过程的方式
<procedure id="getValues" parameterMap="getValuesPM"> { ? = call pkgExample.getValues(p_id => ?) } </procedure>
3.2 iBatis 中调用存储过程的方式
<select id="getValues" parameterMap="getValuesPM" statementType="CALLABLE"> { ? = call pkgExample.getValues(p_id => ?)} </select>