mybatis和ibatis使用区别

<?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="userInfoMapper"> 

 <select id="selectUser" parameterClass="int" resultClass="mybatis.demo.UserInfo"> 

 select * from UserInfo where userid =#userid#

 </select> 

 </sqlMap> 

<?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="mybatis.demo.UserInfoMapper"> 

 <select id="selectUser" parameterType="int" resultType="mybatis.demo.UserInfo"> 

 select * from UserInfo where userid =#{userid} 

 </select> 

 </mapper> 

public interface UserInfoMapper { 

 public UserInfo getUserInfo(int userid); 

 }

1. 和全局配置文件一样,由于 DTD 约束发生变化,根元素也由原来的 <sqlMap> 调整为 <mapper>。

2. <select> 等元素的 parameterClass 属性改为了 parameterType 属性。

<select> 等元素的 resultClasss 属性改为了 resultType 属性。

<parameterMap> 等元素的 class 属性改为了 type 属性。

<result> 元素的 columnIndex 属性被移除了。

3. 嵌套参数由 #value# 改为了 #{value}。

4. <parameter> 等元素的 jdbcType 属性取值中,原来的 "ORACLECURSOR" 取值改为了现在的 "CURSOR","NUMBER" 取值改为了 "NUMERIC"。

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

6. 在ibatis2.x中我们需要在DAO的实现类中指定具体对应哪个xml映射文件, 而Mybatis实现了DAO接口与xml映射文件的绑定,自动为我们生成接口的具体实现,即:通过namespace实现*Mapper.java和*Mapper.xml的绑定。

7. 在In查询中,

Ibatis使用标签<iterate>,而mybatis使用标签<foreach>

8.Ibatis中,做查询时resultMap的字段要和查询结果一一对应

猜你喜欢

转载自blog.csdn.net/super_tianxinmomo/article/details/80897828