作者:好咯午睡了_740 | 来源:互联网 | 2023-10-15 15:48
一、bind标签bind作用:可以将OGNL表达式的值绑定到一个变量中,方便后来引用这个变量的值。在接口中声明方法:publicListgetEmpsTestB
一、bind 标签
bind作用:可以将OGNL表达式的值绑定到一个变量中,方便后来引用这个变量的值。
在接口中声明方法:
public List getEmpsTestBind(Employee employee);
在对应xml文件中配置:
测试:
对于没有使用 bind 标签的时候,如果传递的参数 lastName是"%o%",这个时候会自动拼接到SQL中。
@Test
public void testBind() throws IOException {
//1、获取 sqlSessionFactory
SqlSessionFactory sqlSessiOnFactory= getsqlSessionFactory();
//2、获取 sqlSession 实例,能直接执行已经映射的 SQL 语句
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
EmployeeMapperDynamicSQL mapper = sqlSession.getMapper(EmployeeMapperDynamicSQL.class);
Employee emp = new Employee(null, "Tom", null, null);
emp.setLastName("%o%");
List emps = mapper.getEmpsTestBind(emp);
emps.forEach(System.out::println);
} finally {
sqlSession.close();
}
}
如果使用了 bind 标签,如果传递的参数 lastName 是 "o",我们可以在bind标签里面进行组合并将其绑定上下文,等到用的时候直接用 name 获取即可。
@Test
public void testBind() throws IOException {
//1、获取 sqlSessionFactory
SqlSessionFactory sqlSessiOnFactory= getsqlSessionFactory();
//2、获取 sqlSession 实例,能直接执行已经映射的 SQL 语句
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
EmployeeMapperDynamicSQL mapper = sqlSession.getMapper(EmployeeMapperDynamicSQL.class);
Employee emp = new Employee(null, "Tom", null, null);
emp.setLastName("o");
List emps = mapper.getEmpsTestBind(emp);
emps.forEach(System.out::println);
} finally {
sqlSession.close();
}
}
bind的用法比较灵活,可以在传入参数的时候固定参数,也可以在标签里面使用bind对参数改造,在实际工作中灵活应用即可。