My Batis存在的两种发送SQL的方式,一种用 Sqlsession直 接发送,另外一种通过 Sqlsession获取Mapr接口再发送。建议用 Sqlsession获取 Mapper的方式,理由如下: 使用 Mapper接口编程可以消除 Sqlsession带来的功能性代码,提高可读性,而 Sqlsession发送SQL,需要一个 SQL id去匹配SQL,比较晦涩难懂。使用 Mapper 接口,类似 roleMapper. getRole(1L)则是完全面向对象的语言,更能体现业务的逻辑 使用 Mapper.geol(1L)方式,DE会提示错误和校验,而使用 sqlSession. selectOne(“ get Role”,1L)语法,只有在运行中才能知道是否会产生错误 目前使用 Mapper接口编程已成为主流,尤其在 Spring中运用MBas时, Mapper接 口的使用就更为简单。
在使用中需要注意,mapper的配置文件的namespace此时就不可以随便写了,而必须要与dao类一致,如:
<mapper namespace="dao.IStudentDao">
<!-- id是该sql语句的名字, parameterType是 -->
<insert id="insertStu" parameterType="mybatis.Student">
insert into
student(name,age,score) values(#{name}, #{age}, #{score})
</insert>
</mapper>
否则的话就会出现的错误
org.apache.ibatis.binding.BindingException: Type interface dao.IStudentDao is not known to the MapperRegistry.
同时,在接口的定义中,如果进行的操作是接口中XXXMapper接口中save、update等方法中,保存后只能返回数字,用int接收,不能返回java类或其他!!!所用到的方法必须为void类型,