两者区别:mybatis简化了编码的过程,不需要去写dao的实现类,直接写一个dao的接口,再写一个xml配置文件,整个mybatis就配置好了,也就是数据库就连接好了,然后在service里面直接调用dao就可以了,但是ibatis则不可以,必须要写dao的实现类,再写个return getSqlMapClientTemplate().queryForList()神马的,mybatis是ibatis的升级版本。
在ibatis2.x中我们需要在DAO的实现类中指定具体对应哪个xml映射文件, 而Mybatis实现了DAO接口与xml映射文件的绑定,自动为我们生成接口的具体实现,使用起来变得更加省事和方便。这可以说是Mybatis最重要的改进。
用法:iBATIS
"age" column="user_age"/> <result property="houseList" column="id" select="House_PLAT.queryByUserId"/> </resultMap> <!-- sql标签定义多个sql语句可能用到的公共字段 --> <sql id="insertColumn"> user_name, password, user_age </sql> <sql id="userColumn"> id, user_name, password, user_age </sql> <sql id="insertSql"> #username#, #password#, #age# </sql> <!-- parameterClass:定义的insert的时候参数所对应的类的全路径 ,可以使用别名 #:如果传递的是实体的话,对应的是实体里面加了getter/setter方法的属性 --> <insert id="saveUsers" parameterClass="User"> insert into t_user( <include refid="insertColumn"/> ) values ( <include refid="insertSql"/> ) </insert> <select id="queryUsersById" resultMap="userMap" parameterClass="int"> select <include refid="userColumn"/> from t_user where id = #id# </select> <!-- resultMap/resultClass:用来指定返回的数据泛型 resultMap:如果实体的属性和数据库表的字段不是一一对应的关系 需要通过resultMap配置字段映射关系 resultClass:如果实体的属性和数据库表的字段是一一对应关系 --> <select id="queryAllUsersList" resultMap="userAllMap"> select <include refid="userColumn"/> from t_user </select> <!-- resultClass:指定返回值的类型, 如果返回的是对象,对应的是对象的类 如果返回的是集合,对应的集合的泛型 resultMap:自定义的查询结果集,用于封装查询数据 --> <select id="login" resultMap="userMap" parameterClass="User"> select <include refid="userColumn"/> from t_user u where user_name = #username# and password = #password# </select> <select id="queryUser" resultClass="User" parameterClass="int"> select <include refid="userColumn"/> from t_user where id=#id# </select> <select id="queryHouse" resultClass="com.baway.user.model.House" parameterClass="int"> select * from t_house where userid = #id# </select> <update id="updateUsers" parameterClass="User"> update t_user set user_name = #username#,password=#password#,user_age=#age# where id=#id# </update> <delete id="deleteUsersById" parameterClass="int"> delete from t_user where id=#id# </delete> </sqlMap>
mybatis:
<mapper namespace="com.yksc.b2c.books.mapper.ISBookMapper "> <resultMap type="SBook" id="sBookResultMap"> <id property="id" column="id" /> <result property="title" column="title" /> <result property="author" column="author" /> <result property="total" column="total" /> <result property="price" column="price" /> <result property="isbn" column="isbn" /> <result property="publisher" column="publisher" /> </resultMap> <!-- 查询班级list --> <select id="findAllBook" resultMap="sBookResultMap"> SELECT * from sbook; </select> <insert id="saveBook" parameterType="SBook"> <selectKey keyProperty="id" resultType="int" order="BEFORE"> SELECT LAST_INSERT_ID() AS VALUE </selectKey> INSERT INTO sbook( title ,author ,total ,price ,isbn ,publisher ) VALUES( #{title} ,#{author} ,#{total} ,#{price} ,#{isbn} ,#{publisher} ) </insert> <select id="findBookById" parameterType="int" resultMap="sBookResultMap"> SELECT * from sbook where id = #{id} ; </select> <update id="updateBook" parameterType="int"> update sbook set title = #{title}, author = #{author}, total = #{total}, price = #{price}, isbn = #{isbn}, publisher = #{publisher} where id = #{id} </update> <delete id="deleteBook" parameterType="int"> delete from sbook where id = #{id} </delete> </mapper>
浙公网安备 33010602011771号