zoukankan      html  css  js  c++  java
  • 【JavaEE】之MyBatis的ParameterType的使用

      在MyBatis的Mapper.xml文件中,参数的表示方法有两种:一种是使用 “#{XXX}” 的方式表示的,另一种是使用 “${XXX}” 的方式表示的。今天来介绍以下这两种方式的不同之处。

    1、#{XXX}

       “#{XXX}” 是用来表示变量占位符,即将这个变量注入到SQL语句中。这里的变量可以是普通类型的变量(int、java.lang.String、long等),也可以是自定义POJO类中的某个属性(如name、sex等)。不管是普通类型还是POJO,只需要记住一点,这是用作一个完全独立的变量。

      一个例子的代码如下:

    <mapper namespace="test">
        <select id="findEmployeeById" parameterType="int" resultType="com.itgungnir.hellomybatis.bean.Employee">
            SELECT * FROM EMP WHERE empno=#{id}
        </select>
    </mapper>

      这里就是说,在这个SQL语句中将注入一个int类型的变量,作为查询条件中empno的查询条件注入。

    2、${XXX}

      “${XXX}” 是用来表示字符串拼接的占位符。当需要在SQL语句中进行字符串的拼接时,就需要用到 “${XXX}” 符号。

      一个例子的代码如下:

    <select id="findEmployeeByName" parameterType="java.lang.String" resultType="com.itgungnir.hellomybatis.bean.Employee">
        SELECT * FROM EMP WHERE ename LIKE '%${value}%'
    </select>

      这里就是说,在这个SQL语句中将注入一个String类型的变量,作为ename的模糊查询条件。由于这里是使用了字符串的拼接('%%' 符号中间夹着我们注入的字符串),因此必须使用 “${XXX}” 符号。

      这里还需要注意一点,如果parameterType中传入的是一个自定义的POJO类型的对象,那么我们在使用 “${XXX}” 符号拼接字符串的时候可以使用POJO中的属性名,如 “${name}” ;而如果我们使用的是简单类型,如int、java.lang.String等类型,那么就只能使用 “${value}” 。

  • 相关阅读:
    MySQL--06
    MySQL--05
    MySQL--04
    MySQL--03
    MySQL--02
    MySQL--01
    JavaScript3
    JavaScript2
    四大函数式接口 函数型接口 断定型接口 消费型接口 供给型接口 流式计算
    课后作业-阅读任务-阅读提问-4
  • 原文地址:https://www.cnblogs.com/itgungnir/p/6211295.html
Copyright © 2011-2022 走看看