java实习_day04

中软国际实训第四天——实现数据的增删改查以及用户登录
昨天的课程我们搭建起了ssm框架结构,并实现了数据库的简单增删查改;今天主要任务事实现模糊搜索功能以及用户列表的分页查询和管理

  1. 首先我们创建一个工具类PageInfo用于将获取到的信息以List形式进行存储管理。
package com.zhongruan.bean;

import java.util.List;

public class PageInfo<T> {
   private List<T> list;
   private int size;
   private int totalPage;
   private int totalCount;
   private int currentPage;

   public List<T> getList(){
       return list;
   }

   public void setList(List<T> list) {
       this.list = list;
   }

   public int getSize() {
       return size;
   }

   public void setSize(int size) {
       this.size = size;
   }

   public int getTotalPage() {
       return totalPage;
   }

   public void setTotalPage(int totalPage) {
       this.totalPage = totalPage;
   }

   public int getTotalCount() {
       return totalCount;
   }

   public void setTotalCount(int totalCount) {
       this.totalCount = totalCount;
   }

   public int getCurrentPage() {
       return currentPage;
   }

   public void setCurrentPage(int currentPage) {
       this.currentPage = currentPage;
   }
}
  1. 修改dao层代码
    在UserDao类中对findAll进行修改
public interface IUserInfoDao {
    public List<UserInfo> findAll();
    public UserInfo findUser(@Param("username") String username, @Param("password") String password);      //登录用户
}
  1. 在UserInfoMapper中实现Dao接口
<mapper namespace="com.zhongruan.dao.IUserInfoDao" >
    <select id="finAll" resultType="com.zhongruan.bean.UserInfo">
        select * from userinfo
    </select>

    <select id="findUser" resultType="com.zhongruan.bean.UserInfo" parameterType="com.zhongruan.bean.UserInfo">
        select * from userinfo where username = #{username} and password = #{password};
    </select>
</mapper>
  1. UserSeviceImpl对findAll方法实现
 @Override
    public PageInfo<User> findAll(int currentPage, String username) {
        PageInfo<User> pageInfo = new PageInfo<>();
        pageInfo.setSize(5);
        //tc为查询数据的总行数
        int tc = userDao.getTotalCount(username);
        pageInfo.setTotalCount(tc);
        //tp为总页数
        int tp = (int)Math.ceil(tc/5.0);
        pageInfo.setTotalPage(tp);
            if (currentPage<1){
                pageInfo.setCurrentPage(1);
            }else if(currentPage>tp){
                pageInfo.setCurrentPage(tp);
            }else{
                pageInfo.setCurrentPage(currentPage);
            }
            //0,5,10,15
            int start = (pageInfo.getCurrentPage()-1)*5;
            List<User> userList = userDao.findAll(start,username);
            pageInfo.setList(userList);
            return pageInfo;
    }
  1. 在controller中控制页面的跳转
@Controller
@RequestMapping("user")
public class UseInfoController {

    @Autowired
    private IUserInfoService iUserInfoService;

    @RequestMapping("/findAll.do")
    public ModelAndView findAll(){
        ModelAndView modelAndView = new ModelAndView();
        List<UserInfo> userInfos = iUserInfoService.findAll();
        modelAndView.addObject("userInfos",userInfos);
        modelAndView.setViewName("user-list");
        return modelAndView;
    }

    @RequestMapping("login.do")
    public ModelAndView checkLogin(UserInfo userInfo){
        ModelAndView modelAndView = new ModelAndView();
        boolean flag;
        flag = iUserInfoService.checkLogin(userInfo.getUsername(), userInfo.getPassword());          //判断数据库中有无登录用户
        if (flag == true){
            modelAndView.addObject("userInfo", userInfo);
            modelAndView.setViewName("main");           //跳转到主界面
            return modelAndView;
        }
        modelAndView.setViewName("../failer");              //跳转到登录失败界面
        return modelAndView;
    }
}

个人总结:
今天我们主要就算实现了用户列表的分页以及模糊查询,通过在mapper包中进行sql语句的修改,使用concat来进行模糊查询,在实现接口时对findAll方法进行重新编写,在controller中也一样,最后在jsp文件中使用封装好的PageInfo来传递数据供页面使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值