[mybatis]动态sql_内置参数_parameter&_databaseid
mybatis内置参数mybatis默认还有两个内置参数:_parameter;代表整个参数单个参数:_parameter就是这个参数多个参数:参数会被封装为一个map; _parameter就是代表这个map_databaseId;如果配置了DatabaseIdProvider标签_databaseId就是代表当前数据库的别名public List<Employee> getEmps
·
mybatis内置参数
mybatis默认还有两个内置参数:
-
_parameter;代表整个参数
-
单个参数:_parameter就是这个参数
-
多个参数:参数会被封装为一个map; _parameter就是代表这个map
-
-
_databaseId;如果配置了DatabaseIdProvider标签
- _databaseId就是代表当前数据库的别名
配置DatabaseIdProvider标签
在配置文件中配置
<databaseIdProvider type="DB_VENDOR">
<property name="MySQL" value="mysql"/>
<property name="Oracle" value="oracle"/>
</databaseIdProvider>
public List<Employee> getEmpsTestInnerParameter(Employee employee);
<!-- public List<Employee> getEmpsTestInnerParameter(Employee employee);-->
<select id="getEmpsTestInnerParameter" resultType="com.atguigu.mybatis.bean.Employee">
<!--<bind name = "_lastName" value = "'%'+lastName+'%'"/>-->
<if test = "_databaseId=='mysql'">
select * from tb1_employee
<if test = "_parameter!=null">
where last_name like #{_parameter.lastName}
</if>
</if>
<if test = "_databaseId == 'oracle'">
select * from employees
<if test = "_parameter!=null">
where last_name like #{_parameter.lastName}
</if>
</if>
</select>
@Test
public void test04() throws IOException {
SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
SqlSession sqlSession = sqlSessionFactory.openSession();
try
{
EmployeeMapperDynamicSQL mapper = sqlSession.getMapper(EmployeeMapperDynamicSQL.class);
Employee employee = new Employee();
employee.setLastName("%a%");
List<Employee> emps = mapper.getEmpsTestInnerParameter(employee);
for (Employee e : emps)
{
System.out.println(e);
}
}finally {
sqlSession.close();
}
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)