mybatis笔记1

来源:互联网 发布:摇杆下载软件 编辑:程序博客网 时间:2024/05/20 05:11
1.@Param注解
在Mapper接口中方法形参中传递多个参数时,使用@Param注解
在xml文件中填充占位符时可以直接引用形参名

XxxMapper.java文件
import org.apache.ibatis.annotations.Param;
public interface XxxMapper{
    /**根据名称查询总数*/
    int queryInfoByNameCount(@Param("paramName") String name);
    /**根据名称和代码查询总数*/
    int queryInfoByNameAndCodeCount(@Param("paramName") String name,@Param("code") int code);
    /**根据名称模糊查询总数*/
    int queryInfoByNameLikeCount(@Param("paramName") String name);
    /**根据名称模糊查询总数*/
    int queryInfoByNameLikeCount2(String name);
}

XxxMapper.xml文件
......略
<select id="queryInfoByNameCount" parameterType="string" resultType="int">
    SELECT COUNT(*) FROM TABLE WHERE NAME=#{paramName}
</select>
<select id="queryInfoByNameAndCodeCount" resultType="int">
    SELECT COUNT(*) FROM TABLE WHERE NAME=#{paramName} AND CODE=#{code}
</select>
<select id="queryInfoByNameLikeCount" parameterType="string" resultType="int">
    SELECT COUNT(*) FROM TABLE WHERE NAME LIKE '%{paramName}%'
</select>
<select id="queryInfoByNameLikeCount2" parameterType="string" resultType="int">
    SELECT COUNT(*) FROM TABLE WHERE NAME LIKE '%{value}%'
</select>
......略

说明:
(1)不使用Param注解,Mapper接口方法参数类型为基本数据类型时,此方法只能有一个参数
xml文件中,如果使用#{},则花括号中的参数名必须和接口形参名一致或者写成value
xml文件中,如果使用${},则花括号中的参数名必须写成value
(2)使用@Param注解,Mapper接口方法参数类型为基本数据类型时,此方法可以有多个参数,
在参数前面加上@Param注解
xml文件中,使用#{}或${},则花括号中的参数名必须和接口形参中注解的value属性值一致
  如:int queryInfoByNameCount(@Param("paramName") String name);
      <select id="queryInfoByNameCount" parameterType="string" resultType="int">
    SELECT COUNT(*) FROM TABLE WHERE NAME=#{paramName}
      </select>
或者
     int queryInfoByNameLikeCount(@Param("paramName") String name);
     <select id="queryInfoByNameLikeCount" parameterType="string" resultType="int">
    SELECT COUNT(*) FROM TABLE WHERE NAME LIKE '%{paramName}%'
     </select>


2.mybatis中jdbcType和javaType对应关系
    JDBC Type           Java Type
    CHAR                String  
    VARCHAR             String  
    LONGVARCHAR         String  
    NUMERIC             java.math.BigDecimal  
    DECIMAL             java.math.BigDecimal  
    BIT                 boolean  
    BOOLEAN             boolean  
    TINYINT             byte  
    SMALLINT            short  
    INTEGER             int  
    BIGINT              long  
    REAL                float  
    FLOAT               double  
    DOUBLE              double  
    BINARY              byte[]  
    VARBINARY           byte[]  
    LONGVARBINARY          byte[]  
    DATE                java.sql.Date  
    TIME                java.sql.Time  
    TIMESTAMP           java.sql.Timestamp  
    CLOB                Clob  
    BLOB                Blob  
    ARRAY               Array  
    DISTINCT            mapping of underlying type  
    STRUCT              Struct  
    REF                 Ref  
    DATALINK            java.net.URL[color=red][/color]  







0 0
原创粉丝点击