ssm框架查询数据并实现分页功能示例

/**
 * DataGrid对象
 * 
 */
@SuppressWarnings("rawtypes")
public class DataGrid {
	private int total = 0;
	private List rows = new ArrayList();
	public int getTotal() {
		return total;//数据总数
	}
	public void setTotal(int total) {
		this.total = total;
	}
	public List getRows() {
		return rows;//页面显示的数据
	}
	public void setRows(List rows) {
		this.rows = rows;
	}
}

  

public class UserInfoDO {
	private String userName;// 用户姓名
	private String phoneNum;//用户电话
	private String identityNum;//卡号
	private String plStatus;//插件状态
	private int startNum;//分页-起始数
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getPhoneNum() {
		return phoneNum;
	}
	public void setPhoneNum(String phoneNum) {
		this.phoneNum = phoneNum;
	}
	public String getIdentityNum() {
		return identityNum;
	}
	public void setIdentityNum(String identityNum) {
		this.identityNum = identityNum;
	}
	public String getPlStatus() {
		return plStatus;
	}
	public void setPlStatus(String plStatus) {
		this.plStatus = plStatus;
	}
	public int getStartNum() {
		return startNum;
	}
	public void setStartNum(int startNum) {
		this.startNum = startNum;
	}
}

  

public class UserInfoController {
	@Autowired
	private UserInfoService userInfoService;
	/**
	 * 查询
	 * 
	 * @return
	 */
	@RequestMapping(value = "/userInfo.do", method = RequestMethod.POST)
	@ResponseBody
	public String getList(@RequestBody UserInfoDO userInfoDo, HttpServletRequest request, HttpServletResponse response) {
		JSONObject jsonObject = new JSONObject();
		try {
			DataGrid dataGrid = userInfoService.getUserInfo(userInfoDo); 
		    jsonObject = JSONObject.fromObject(dataGrid);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return jsonObject.toString();
		}
}

  

public interface UserInfoService {
	public DataGrid getUserInfo(UserInfoDO userInfoDo) throws SQLException;
}

  

@Service
public class SignLogServiceImpl implements SignLogService {
	@Resource
	private SignLogDao signLogDao;
	@Override
	public DataGrid getSignLog(SignLogDO signLogDo) throws SQLException {
		DataGrid grid = new DataGrid();
		List<SignLogDO> signLogList = null;
		try {
			signLogList = signLogDao.getSignLog(signLogDo);
			grid.setTotal(signLogDao.getTotalNum(signLogDo));
			grid.setRows(signLogList);
		}
	    catch (Exception e) {
		e.printStackTrace();
		}
		return grid;
	}
}

  

public interface UserInfoDao {

	public List<UserInfoDO> getUserInfo(UserInfoDO userInfoDo) throws SQLException;

	public int getTotalNum(UserInfoDO userInfoDo) throws SQLException;

}

  

@Repository
public class UserInfoDaoImpl extends SqlSessionDaoSupport implements UserInfoDao{
	@Resource
	public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory){
		super.setSqlSessionFactory(sqlSessionFactory);
	}
	@Override
	public List<UserInfoDO> getUserInfo(UserInfoDO userInfoDo) throws SQLException {
		return this.getSqlSession().selectList("userInfoDO.getUserInfo",userInfoDo);
	}
	@Override
	public int getTotalNum(UserInfoDO userInfoDo) throws SQLException {
		return this.getSqlSession().selectOne("userInfoDO.getTotalNum",userInfoDo);
	}
}

  

<mapper namespace="userInfoDO">
    <resultMap id="BaseResultMap" type="UserInfoDO">
        <result column="phone_num" property="phoneNum" jdbcType="VARCHAR"/>
        <result column="user_name" property="userName" jdbcType="VARCHAR"/>
        <result column="identity_num" property="identityNum" jdbcType="VARCHAR"/>
    </resultMap>

    <select id="getUserInfo" resultMap="BaseResultMap" parameterType="UserInfoDO">
        select phone_num,user_name,identity_num from tb_user 
        <where>
            <if test="phoneNum!=null and phoneNum!=''">
                phone_num like '%${phoneNum}%'
            </if>
            <if test="userName != '' and userName != null" >
                and user_name like '%${userName}%'
            </if>
            <if test="identityNum != '' and identityNum != null" >
                and identity_num like '%${identityNum}%'
            </if>
         </where>
         limit #{startNum},5 //每页五条数据
    </select>
    
    <select id="getTotalNum" resultType="int" parameterType="UserInfoDO">
        select count(*) from tb_user 
        <where>
            <if test="phoneNum!=null and phoneNum!=''">
                phone_num like '%${phoneNum}%'
            </if>
            <if test="userName != '' and userName != null" >
                and user_name like '%${userName}%'
            </if>
            <if test="identityNum != '' and identityNum != null" >
                and identity_num like '%${identityNum}%'
            </if>
         </where>
    </select>  
</mapper>

 

  

posted @ 2016-12-23 20:36  GIScript  阅读(25543)  评论(0编辑  收藏  举报