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]
在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
- Mybatis学习笔记(1)
- mybatis笔记1
- mybatis笔记《1》
- MyBatis学习笔记(1)
- mybatis笔记1
- MyBatis-学习笔记-1
- mybatis 学习笔记 1
- Mybatis笔记1
- mybatis 笔记1 为什么需要mybatis
- MyBatis笔记1 开始使用
- mybatis学习笔记(1)
- MyBatis笔记
- Mybatis笔记
- mybatis笔记
- 【Mybatis笔记】
- mybatis笔记
- mybatis笔记
- mybatis笔记
- haproxy的安装与配置
- 如何重置win10网络连接名称或计数
- CCIE学习笔记框架——网络的初步了解
- ☆lightoj1013 Love Calculator 两种转移方程详解(LCS+方案数DP)
- 浅谈被加壳ELF(即android的so文件)的调试
- mybatis笔记1
- SpringMVC整合Tiles框架
- mvp
- hadoop decommission 非常慢的问题
- private 含糊的私有成员
- json_encode 中文乱码
- 设计模式之四:模板方法模式
- 我们都会有这样的经历,当觉得别人写的某个功能不错时,把demo移植到自己的工程中,其中的某些点9点png图片会报如下的错误
- 政府机构应用交付解决方案【ANS SOLUTIONS】