MyBatis实现用户的动态搜索分页等功能(2)
实现Dao层
配置RoleMapper.xml
关联表查询,这里容易出错
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="dao.RoleMapper">
<select id="findRoleAndUser" resultMap="roleanduserlist">
SELECT * FROM role a LEFT JOIN users b ON a.rid = b.urole
</select>
<resultMap type="Role" id="roleanduserlist">
<id property="rid" column="rid"/>
<result property="rname" column="rname"/>
<collection property="listuser" ofType="User">
<id property="id" column="id"/>
<result property="uname" column="uname"/>
<result property="upass" column="upass"/>
<result property="urole" column="urole"/>
<result property="usex" column="usex"/>
</collection>
</resultMap>
</mapper>
Dao层实现impl
UserMapperImpl.java
package dao.impl;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import dao.UserMapper;
import entity.User;
import utils.Mybatis;
public class UserMapperImpl implements UserMapper {
/*
*调用实体类方法
*/
SqlSession sqlSession = Mybatis.getSqlSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
@Override
public List<User> findByConditions(User user) {
return null;
}
/*模糊查询用户*/
@Override
public List<User> findUserAndRoleBymohu(User user) {
return userMapper.findUserAndRoleBymohu(user);
}
@Override
public User UserLogin(String name,String password) {
return userMapper.UserLogin(name, password);
}
@Override
public List<User> findByUserAndAddress() {
return userMapper.findByUserAndAddress();
}
/*联表查询用户名和角色*/
@Override
public List<User> findUserAndRole(String uname, int urole) {
return userMapper.findUserAndRole(uname, urole);
}
/*更新用户*/
@Override
public int updateuser(User user) {
return userMapper.updateuser(user);
}
/*查找用户*/
@Override
public User findUserById(int id) {
return userMapper.findUserById(id);
}
/*根据id删除用户*/
@Override
public int delUserById(int id) {
return userMapper.delUserById(id);
}
/*批量删除*/
@Override
public int delUsersByIds(String[] arrid) {
return userMapper.delUsersByIds(arrid);
}
/*分页*/
@Override
public List<User> paginationUser(int page, int count) {
List<User> list = userMapper.paginationUser(page, count);
Mybatis.closeSqlsession(sqlSession);
return list;
}
/*分页搜索*/
@Override
public List<User> pagingsearch(String uname, int urole,int page, int count) {
List<User> list = userMapper.pagingsearch(uname, urole,page,count);
Mybatis.closeSqlsession(sqlSession);
return list;
}
@Override
public int addUser(User user) {
return userMapper.addUser(user);
}
}
RoleMapperImpl.java
package dao.impl;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import dao.RoleMapper;
import entity.Role;
import utils.Mybatis;
public class RoleMapperImpl implements RoleMapper {
SqlSession sqlSession = Mybatis.getSqlSession();
RoleMapper userMapper = sqlSession.getMapper(RoleMapper.class);
@Override
public List<Role> findRoleAndUser() {
return userMapper.findRoleAndUser();
}
}
下面我们实现service
IAddressService.java 写上接口
package service;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import entity.Address;
import entity.User;
public interface IAddressService {
public List<User> findUserAndRole(@Param("uname")String uname,@Param("urole")int urole);
public List<Address> findAddressAndUser();
public int updateuser(User user);
public User findUserById(int id);
//根据id删除用户
public int delUserById(int id);
//批量删除用户
public int delUsersByIds(String[] arrid);
//分页
public List<User> paginationUser(int page,int count);
//分页+搜索
public List<User> pagingsearch(String uname,int urole,int page,int count);
//增加用户
public int addUser(User user);
}
service实现类
package service.impl;
import java.util.List;
import dao.UserMapper;
import dao.impl.UserMapperImpl;
import entity.Address;
import entity.User;
import service.IAddressService;
public class AddressServiceImpl implements IAddressService {
UserMapper tfindUserAndRole = new UserMapperImpl();
@Override
public List<User> findUserAndRole(String uname, int urole) {
return tfindUserAndRole.findUserAndRole(uname, urole);
}
@Override
public List<Address> findAddressAndUser() {
return null;
}
@Override
public int updateuser(User user) {
return tfindUserAndRole.updateuser(user);
}
@Override
public User findUserById(int id) {
return tfindUserAndRole.findUserById(id);
}
@Override
public int delUserById(int id) {
return tfindUserAndRole.delUserById(id);
}
@Override
public int delUsersByIds(String[] arrid) {
return tfindUserAndRole.delUsersByIds(arrid);
}
@Override
public List<User> paginationUser(int page, int count) {
return tfindUserAndRole.paginationUser(page, count);
}
@Override
public List<User> pagingsearch(String uname, int urole, int page, int count) {
return tfindUserAndRole.pagingsearch(uname, urole, page, count);
}
@Override
public int addUser(User user) {
return tfindUserAndRole.addUser(user);
}
}
接下来写上工具类utils