一、MyBatis 接口绑定方案
1、
作用
:
实现创建一个接口后把
mapper.xml
由
mybatis
生成接口的实现
类
,
通过调用接口对象就可以获取
mapper.xml
中编写的
sql
2、
mybatis
和
spring
整合时使用的是这个方案
.
3、
实现步骤
:
a、
创建一个接口
(1)、接口包名和接口名与
mapper.xml
中
<mapper>namespace
相同
(2)、接口中方法名和
mapper.xml
标签的
id
属性相同
b、在
mybatis.xml
中使用
<package>
进行扫描接口和
mapper.xml
4、代码实现步骤
a、
在
mybatis.xml
中
<mappers>
下使用
<package>
<mappers>
<package name="com.zzu.mapper"/>
</mappers>
b、
在
com.zzu.mapper
下新建接口
public interface LogMapper {
List<Log> selAll();
List<Log> selByAccInAccOut(@Param("accIn") String accIn,@Param("accOut") String accOut);
}
c、在
com.zzu.mapper
新建一个
LogMapper.xml
(1)、namespace
必须和接口全限定路径
(
包名
+
类名
)
一致
(2)、id 值必须和接口中方法名相同
(3)、如果接口中方法为多个参数,
可以省略
parameterType
<mapper namespace="com.zzu.mapper.LogMapper">
<select id="selAll" resultType="log">
select * from log
</select>
<select id="selByAccInAccOut" resultType="log">
select * from log where accIn=#{accIn} and accOut=#{accOut}
</select>
</mapper>
二、多参数传递
1、多参数实现办法
a、在接口中声明方法
List<Log> selByAccInAccOut(String accIn,String accOut);
b、配置mapper.xml
注意:
(1)、#{}中使用 0,1,2 或 param1,param2
(2)、当多参数时,不需要写parameterType
<select id="selByAccInAccOut" resultType="log">
select * from log where accIn=#{0} and accOut=#{1}
</select>
2、可以使用注解方式
a、在接口中声明方法
注意:mybatis 把参数转换为 map 了,其中@Param("key") 参数内容 就是 map 的 value
List<Log> selByAccInAccOut(@Param("accIn") String accIn123,@Param("accOut") String accOut123);
b、配置mapper.xml
注意:#{} 里面写@Param(“key”)参数 中的 key
<select id="selByAccInAccOut" resultType="log">
select * from log where accIn=#{accIn} and accOut=#{accOut}
</select>