前言
Mybatis中@Param源码分析
提示:以下是本篇文章正文内容,下面案例可供参考
一、@Param使用
代码如下(示例):
List<Student> selectByNameAndSex(@Param("自定义名") String name,@Param("自定义名") Character sex);
<select id="selectByNameAndSex" resultType="com.mk.bean.Student">
select * from t_student where name=#{填写@Param中的值} and sex=#{填写@Param中的值}
</select>
@Test
public void t4() throws Exception{
SqlSession sqlSession = SqlSessionUtil.openSqlSession();
//获取mapper接口对象
//mapper是代理对象
//selectByNameAndSex是代理方法
StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
List<Student> students = mapper.selectByNameAndSex("张三", '男');
//遍历查询到的数据
students.forEach(student -> System.out.println(student));
//提交事务
sqlSession.commit();
sqlSession.close();
}
如果我们不适用@Param注解进行自定义参数名称,那么mybatis会自动生成参数名称在xml让我们选择
我们这个方法有两个形参那么mybatis会默认给我们生成参数名称让我们来使用例如:arg0/param1,arg1/param1 。此时#{}中就需要填写arg0/param0 arg1/param1 来进行传值
二、@Param源码分析
判断执行的sql语句是什么类型的sql语句
我们执行的查询方法要返回多个结果所以执行executeForMany()方法
继续debug进入方法
核心方法
这里就对应上了上文所说的mybatis会默认生成通用参数名
总结
提示:完结撒花。