mybatis开发总结
-
数据库通过逆项工程导出javaBean
- 逆向工程配置文件夹需要和项目中文件夹层级名称一致
-
传入参数问题
-
传一个参数
-
这是正常情形,直接传入参数就可
Integer getXXX(String day);
<select id="xxx" resultType="java.lang.Integer" parameterType="java.lang.String" > select count(*) from hits where month(createtime) =month(NOW()) and day(createtime)=#{day} group by YEARWEEK(createtime) </select>
-
-
传多个参数
-
需要注解@param,而且导入的包为import org.apache.ibatis.annotations.Param;
-
实例
int getXXX(@Param("begindata") String begindata,@Param("enddata") String enddata);
<select id="getXXX" resultType="java.lang.Integer" parameterType="java.lang.String" > select count(*) from hits where DATE_FORMAT(createtime,'%Y-%m-%d')>=DATE_FORMAT(#{begindata}, '%Y-%m-%d') and DATE_FORMAT(createtime,'%Y-%m-%d')<=DATE_FORMAT(#{enddata}, '%Y-%m-%d'); </select>
-
-
-
返回值问题
-
返回单个参数
-
返回集合参数
无论返回单个还是多个,返回参数类都为单个类,只不过查出多个,返回的是单个类型的集合。
-
-
特殊符号问题
-
mybatis中<=号不能用,<号为特殊字符,需要用字符代替。
-
实例
<select id="getXXX" resultType="java.lang.Integer" parameterType="java.lang.String" > select count(*) from hits where DATE_FORMAT(createtime,'%Y-%m-%d')>=DATE_FORMAT(#{begindata}, '%Y-%m-%d') and DATE_FORMAT(createtime,'%Y-%m-%d')<=DATE_FORMAT(#{enddata}, '%Y-%m-%d'); </select>
-
-
-
#{}和${}区别
- #{}是将值转为字符串带入,已自动加上‘ ’,而${}保留原来传入类型加入。
-
日期查询问题
-
当涉及到日期查询的时候,要使用DATE_FORMAT()函数将条件格式和条件值格式统一
where DATE_FORMAT(createtime,'%Y-%m-%d')>=DATE_FORMAT(#{begindata}, '%Y-%m-%d')
-