Mybatis多表分页模糊查询

Mapping文件的接口


/*** @param page页码* @param limite数量* @param name参数* @return*/
List<UserVo>selectUserBlorAll(int page,int limite,String name);

Mapping文件的相关代码```java
<!-- com.ss.po.User的结果集 --><resultMap id="BaseResultMap" type="com.ss.po.User"><id column="s_user_UserID" jdbcType="INTEGER" property="userid" /><result column="s_user_UserTypeID" jdbcType="INTEGER" property="usertypeid" /><result column="s_user_StationID" jdbcType="INTEGER" property="stationid" /><result column="s_user_UserName" jdbcType="VARCHAR" property="username" /><result column="s_user_UserPassword" jdbcType="VARCHAR" property="userpassword" /><result column="s_user_UserNumber" jdbcType="VARCHAR" property="usernumber" /></resultMap><!-- 自定义UserVo的resultMap start--><!-- 自定义UserVo的结果集 --><!-- type对应程度到方法名 extends继承对应上方的BaseResultMap取得该集合内的结果--><resultMap type="com.ss.vo.UserVo" id="UserVoResultMap" extends="BaseResultMap"><!-- 多表。继承上方的集合可以省略自己写result,只写外表的字段 --><result column="s_usertype_ParameterID" jdbcType="INTEGER" property="parameterid" /><result column="s_usertype_UserType" jdbcType="VARCHAR" property="usertype" /></resultMap>

具体执行的SQL语句,注意这里直接用参数名传参可能会报找不到参数,我用的数参数下标获取对应参数,灵活用参数名称或参数下标获取

<select id="selectUserBlorAll" resultMap="UserVoResultMap"><!-- 模糊查询所有的数据 分页-->select s_user.*,s_usertype.UserType,s_usertype.ParameterID from s_user inner join s_usertype  on s_user.UserTypeID=s_usertype.UserTypeID where (s_user.UserNumber LIKE "%"#{2}"%") or (s_user.UserName LIKE "%"#{2}"%") or (s_usertype.UserType LIKE "%"#{2}"%") LIMIT #{0},#{1}</select>

用的Junit4的测试进行测试

@Testpublic void testSelectUserAll() {List<UserVo>uservos=iUserService.selectUserBlorAll(0, 10, "MD5");System.out.println("======================");for (UserVo userVo : uservos) {System.out.println("username="+userVo.getUsername());}System.out.println("======================");}

运行的结果

Mybatis多表分页模糊查询

Mapping文件的接口


/*** @param page页码* @param limite数量* @param name参数* @return*/
List<UserVo>selectUserBlorAll(int page,int limite,String name);

Mapping文件的相关代码```java
<!-- com.ss.po.User的结果集 --><resultMap id="BaseResultMap" type="com.ss.po.User"><id column="s_user_UserID" jdbcType="INTEGER" property="userid" /><result column="s_user_UserTypeID" jdbcType="INTEGER" property="usertypeid" /><result column="s_user_StationID" jdbcType="INTEGER" property="stationid" /><result column="s_user_UserName" jdbcType="VARCHAR" property="username" /><result column="s_user_UserPassword" jdbcType="VARCHAR" property="userpassword" /><result column="s_user_UserNumber" jdbcType="VARCHAR" property="usernumber" /></resultMap><!-- 自定义UserVo的resultMap start--><!-- 自定义UserVo的结果集 --><!-- type对应程度到方法名 extends继承对应上方的BaseResultMap取得该集合内的结果--><resultMap type="com.ss.vo.UserVo" id="UserVoResultMap" extends="BaseResultMap"><!-- 多表。继承上方的集合可以省略自己写result,只写外表的字段 --><result column="s_usertype_ParameterID" jdbcType="INTEGER" property="parameterid" /><result column="s_usertype_UserType" jdbcType="VARCHAR" property="usertype" /></resultMap>

具体执行的SQL语句,注意这里直接用参数名传参可能会报找不到参数,我用的数参数下标获取对应参数,灵活用参数名称或参数下标获取

<select id="selectUserBlorAll" resultMap="UserVoResultMap"><!-- 模糊查询所有的数据 分页-->select s_user.*,s_usertype.UserType,s_usertype.ParameterID from s_user inner join s_usertype  on s_user.UserTypeID=s_usertype.UserTypeID where (s_user.UserNumber LIKE "%"#{2}"%") or (s_user.UserName LIKE "%"#{2}"%") or (s_usertype.UserType LIKE "%"#{2}"%") LIMIT #{0},#{1}</select>

用的Junit4的测试进行测试

@Testpublic void testSelectUserAll() {List<UserVo>uservos=iUserService.selectUserBlorAll(0, 10, "MD5");System.out.println("======================");for (UserVo userVo : uservos) {System.out.println("username="+userVo.getUsername());}System.out.println("======================");}

运行的结果