[mybatis]动态sql_内置参数_parameter&_databaseid

Posted 唐火

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[mybatis]动态sql_内置参数_parameter&_databaseid相关的知识,希望对你有一定的参考价值。

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();

        
    

以上是关于[mybatis]动态sql_内置参数_parameter&_databaseid的主要内容,如果未能解决你的问题,请参考以下文章

mybatis动态sql之内置参数_parameter和_databaseId

Mybatis动态SQL单一基础类型参数用if标签

Spring传参数注解技术

mybatis入门-2 动态sql

MYBATIS04_@Param参数#{}和${}返回参数resultMap主键回写两种方式

JAVAEE框架技术之8-myBatis ORM框架技术参数和动态SQL语句