接口绑定方案
作用
实现创建一个接口后,把mapper.xml由mybatis生成接口的实现类,通过调用接口对象就可以获取 mapper.xml 中编写的 sql
注:后面 mybatis 和 spring 整合时使用的是这个方案
实现步骤
- 创建一个接口
接口包名和接口名与 mapper.xml 中 mapper 标签namespace相同
接口中方法名和 mapper.xml 标签的 id 属性相同 - 在 mybatis.xml 中使用 package 进行扫描接口和 mapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- DTD:xml的语法检查器,限制写什么 -->
<configuration>
<typeAliases>
<package name="com.youdian.pojo"/>
</typeAliases>
<!-- default 引用 environment 的 id,当前所使用的环境 -->
<environments default="default">
<!-- 声明可以使用的环境 -->
<environment id="default">
<!-- 使用原生 JDBC 事务 -->
<transactionManager type="JDBC">
</transactionManager>
<!-- 数据库连接池 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/sum"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<package name="com.youdian.mapper"/>
</mappers>
</configuration>
代码实现步骤
- 在 mybatis.xml 中 mappers 下使用 package 标签
<mappers>
<package name="com.youdian.mapper"/>
</mappers>
- 在 com.youdian.mapper 下新建接口
public interface LogMapper { List<Log> selAll(); }
- 在 com.bjsxt.mapper 新建一个 LogMapper.xml
namespace 必须和接口全限定路径(包名+类名)一致
id 值必须和接口中方法名相同
如果接口中方法为多个参数,可以省略 parameterType
<mapper namespace="com.youdian.mapper.LogMapper">
<select id="selAll" resultType="log">
select * from log
</select>
</mapper>
多参数实现办法
- 在接口中声明方法
List<Log> selByAccInAccout(String accin,String accout);
- 在 mapper.xml 中添加
#{}中使用 0,1,2 或 param1,param2
<!-- 当多参数时,不需要写 parameterType -->
<select id="selByAccInAccout" resultType="log" >
select * from log where accin=#{0} and accout=#{1}
</select>
- 第二点可以换成使用注解方式
在接口中声明方法
/**
* mybatis 把参数转换为 map 了,其中@Param("key") 参数内容就是 map 的 value
* @param accinsss
* @param accoutsssss */
List<Log> selByAccInAccout(@Param("accin") String accin123,@Param("accout") String accout3454235);
在 mapper.xml 中添加
#{} 里面写@Param(“内容”)参数中内容
<!-- 当多参数时,不需要写 parameterType -->
<select id="selByAccInAccout" resultType="log" >
select * from log where accin=#{accin} and accout=#{accout}
</select>
本文详细介绍了MyBatis的接口绑定方案,包括如何通过创建接口并映射mapper.xml文件来实现SQL语句的调用,以及在多参数情况下的处理方法。同时,文章提供了具体的代码实现步骤和示例。

被折叠的 条评论
为什么被折叠?



