完成SSM的增删查,登陆及分页
完成SSM的增删查,登陆及分页
1.完成SSM的增删查
2.完成登录实现在首页显示当前登陆的信息
3.完成分页
分页步骤:
1.导入pageHelper的包
2. 在applicationContext.xml中告诉sqlSessioniFactory要开始用pageHelper
3. 在service传当前页和页码,然后在impl中开始分页
4. 讲查询到的结果集保存到PageInfo中并保存到ModelAndView并返回
5.页面进行取值
- UserDao.class
public interface UserDao {
// 全部查询
List<UserInfo> findAll();
// 更新前的查询
UserInfo findUserById(int id);
// 更新
void updUserById(UserInfo userInfo);
// 增加; id,username,password
void addUser(UserInfo userInfo);
// 删除
void delUser(int id);
// 模糊查询
List<UserInfo> findUserByName(String username);
// 登录
UserInfo doLogin(String username);
}
- UserMapper.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="com.zhongruan.dao.UserDao" >
<resultMap id="UserMap" type="com.zhongruan.bean.UserInfo">
<result property="" column="" />
<result property="" column="" />
</resultMap>
<!-- 全部查询 -->
<select id="findAll" resultType="com.zhongruan.bean.UserInfo">
select * from tb_user
</select>
<!-- 更新前的查询 -->
<select id="findUserById" parameterType="java.lang.Integer" resultType="com.zhongruan.bean.UserInfo">
select * from tb_user where id=#{id}
</select>
<!-- 更新 -->
<update id="updUserById" parameterType="com.zhongruan.bean.UserInfo">
update tb_user set username=#{username},password=#{password} where id=#{id}
</update>
<!-- 增加 -->
<insert id="addUser" parameterType="com.zhongruan.bean.UserInfo">
insert into tb_user(id, username, password) values(#{id},#{username},#{password})
</insert>
<!-- 删除 -->
<delete id="delUser" parameterType="java.lang.Integer">
delete from tb_user where id=#{id}
</delete>
<!-- 模糊查询 %名字% -->
<select id="findUserByName" parameterType="java.lang.String" resultType="com.zhongruan.bean.UserInfo">
select * from tb_user where username like '%' #{username} '%'
</select>
<!-- 登录 -->
<select id="doLogin" resultType="com.zhongruan.bean.UserInfo" parameterType="java.lang.String">
select * from tb_user where username=#{username}
</select>
</mapper>
- UserService
public interface UserInfoService {
// 全部查询 - 分页查询
List<UserInfo> findAll(int page, int size);
// 更新前的查询
UserInfo findUserById(int id);
// 更新
void updUserById(UserInfo userInfo);
// 增加; id,username,password
void addUser(UserInfo userInfo);
// 删除
void delUser(int id);
// 模糊查询
List<UserInfo> findUserByName(String username);
// 登录
UserInfo doLogin(String username);
}
- UserInfoServiceImpl
public class UserInfoServiceImpl implements UserInfoService {
@Autowired
private UserDao userDao;
@Override
public List<UserInfo> findAll(int page, int size) {
// 开启分页
PageHelper.startPage(page, size);
return userDao.findAll();
}
@Override
public UserInfo findUserById(int id) {
return userDao.findUserById(id);
}
@Override
public void updUserById(UserInfo userInfo) {
userDao.updUserById(userInfo);
}
@Override
public void addUser(UserInfo userInfo) {
userDao.addUser(userInfo);
}
@Override
public void delUser(int id) {
userDao.delUser(id);
}
@Override
public List<UserInfo> findUserByName(String username) {
return userDao.findUserByName(username);
}
@Override
public UserInfo doLogin(String username) {
return userDao.doLogin(username);
}
}
- index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<body>
<jsp:forward page="login.jsp"></jsp:forward>
</body>
</html>
- controller
public class UserInfoController {
@Autowired
private UserInfoService userInfoService;
// 查询全部 - 分页查询
@RequestMapping("/finAll.do")
public ModelAndView findAll(@RequestParam(defaultValue = "1") int page, @RequestParam(defaultValue = "5") int size){
List<UserInfo> userInfoList = userInfoService.findAll(page, size);
// 把得到的结果集 给到PageHelper中得内置对象PageInfo中
PageInfo pageInfo =new PageInfo(userInfoList);
ModelAndView mv = new ModelAndView();
mv.addObject("pageInfo",pageInfo);
mv.setViewName("user-list");
return mv;
}
// 修改前的查询操作
// 怎么直接大写的英文字母 : Shift + 英文字母
@RequestMapping("/findUserById.do")
public ModelAndView findUserById(int id){
UserInfo userInfo = userInfoService.findUserById(id);
System.out.println("得到的Id值为:"+ id);
ModelAndView mv = new ModelAndView();
mv.addObject("userInfo",userInfo);
mv.setViewName("user-update");
return mv;
}
// 更新
@RequestMapping("/updUserById.do")
public String updUserById(UserInfo userInfo){
userInfoService.updUserById(userInfo);
return "redirect:finAll.do";
}
// 增加
@RequestMapping("/addUser.do")
public String addUser(UserInfo userInfo){
userInfoService.addUser(userInfo);
return "redirect:finAll.do";
}
// 删除
@RequestMapping("/delUser.do")
public String delUser(int id){
userInfoService.delUser(id);
return "redirect:finAll.do";
}
// 模糊查询
@RequestMapping("/findUserByName.do")
public ModelAndView findUserByName(String username){
List<UserInfo> userInfoList = userInfoService.findUserByName(username);
ModelAndView mv = new ModelAndView();
mv.addObject("userInfoList",userInfoList);
mv.setViewName("user-list");
return mv;
}
// 登录
@RequestMapping("/doLogin.do")
public String doLogin(String username, String password, HttpSession session){
UserInfo userInfo = userInfoService.doLogin(username);
if(userInfo !=null){
if(userInfo.getPassword().equals(password)){
System.out.println("登录成功!");
session.setAttribute("userInfo",userInfo);
return "main";
}else {
System.out.println("密码错误,请重新登录!");
session.setAttribute("message","密码错误,请重新输入!");
return "../login";
}
}else {
System.out.println("用户不存在,请重新输入!");
session.setAttribute("message","用户不存在,请重新输入!");
return "../login";
}
}
}
运行结果:
登录
用户管理界面,分为两页:
新建用户:
成功添加:
删除ID为3的用户:
修改用户信息: