接着上篇文字完成得登陆操作 今天来完成用户得增删改查以及分页插件的完成
1 编写dao层方法
package com.gm.dao;
import com.gm.bean.UserInfo;
import java.util.List;
/**
* @author 起风
* @date 2020/2/19 14:43
*
* 接口 数据库访问层 直接可以访问数据库
*/
public interface IUserInfoDao {
//验证登陆 (查询操作Select)
UserInfo doLogin(String username);
//全部查询
List<UserInfo> findAll();
//添加
void adduser(UserInfo userInfo);
// 删除 根据id
void delUserById(int id);
//查询单个
UserInfo findById(int id);
//更新
void updateUser(UserInfo userInfo);
}
2 mapper层
<?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.gm.dao.IUserInfoDao" >
<!-- 登陆-->
<select id="doLogin" parameterType="String" resultType="com.gm.bean.UserInfo">
select * from tb_user where username=#{username}
</select>
<!-- 全部查询 -->
<select id="findAll" resultType="com.gm.bean.UserInfo">
select * from tb_user
</select>
<!-- 添加-->
<insert id="adduser" parameterType="com.gm.bean.UserInfo">
insert into tb_user(id,username,password) values (#{id},#{username},#{password})
</insert>
<!-- 删除-->
<delete id="delUserById" parameterType="java.lang.Integer">
delete from tb_user where id=#{id}
</delete>
<!--更新-->
<update id="updateUser" parameterType="com.gm.bean.UserInfo">
update tb_user set username=#{username},password=#{password} where id=#{id}
</update>
<!--查询单个-->
<select id="findById" parameterType="Integer" resultType="com.gm.bean.UserInfo">
select * from tb_user where id=#{id}
</select>
</mapper>
注意他们的返回值以及传入参数类型
3 修改配置文件
因为有了分页插件 所以需要修改下
pom.xml添加架包
<!-- 分页架包 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
applicationContext.xml添加配置
<!-- 分页配置 -->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<props>
<prop key="helperDialect">mysql</prop>
<prop key="reasonable">true</prop>
</props>
</property>
</bean>
</array>
</property>
注意添加的位置,我刚开始添加错了 搞得我心态崩了
4 service层
5 controller层
package com.gm.controller;
import com.github.pagehelper.PageInfo;
import com.gm.bean.UserInfo;
import com.gm.service.IUserInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpSession;
import java.util.List;
/**
* @author 起风
* @date 2020/2/19 16:17
* <p>
* 前端控制器
*/
@Controller
@RequestMapping("/user")
public class UserInfoController {
@Autowired
private IUserInfoService userInfoService;
/* 登陆 */
@RequestMapping("/doLogin.do")
public String doLogin(String username, String password, HttpSession session) {
// 调用service 查询结果
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";
}
}
/* 全部查询
* 所有需要返回数据到页面的全部都需要封装到ModelAndView中
* */
@RequestMapping("/findAll.do")
public ModelAndView findAll(ModelAndView modelAndView,@RequestParam(defaultValue ="1") Integer page ,
@RequestParam(defaultValue = "5")Integer size ) {
// 调用方法
List<UserInfo> userInfoList = userInfoService.findAll(page,size);
PageInfo pageInfo=new PageInfo(userInfoList);
modelAndView.addObject("pageInfo", pageInfo);
modelAndView.setViewName("user-list");
return modelAndView;
}
/*增加*/
@RequestMapping("/addUser.do")
public String addUser(UserInfo userInfo) {
//调用service 得到结果
userInfoService.adduser(userInfo);
/*增加成功 返回重新查询*/
return "redirect:findAll.do";
}
/*删除*/
@RequestMapping("/delUserById.do")
public String delUserByID(int id) {
userInfoService.delUserById(id);
/*删除成功 返回重新查询*/
return "redirect:findAll.do";
}
/*查询单个*/
@RequestMapping("/findById.do")
public ModelAndView findById(int id, ModelAndView modelAndView) {
UserInfo userInfo = userInfoService.findById(id);
modelAndView.addObject("user", userInfo);
modelAndView.setViewName("user-update");
return modelAndView;
}
/*更新*/
@RequestMapping("/updateUser.do")
public String updateUser(UserInfo userInfo) {
userInfoService.updateUser(userInfo);
/*更新成功 返回重新查询*/
return "redirect:findAll.do";
}
}
6 修改jsp页面
基本都已经完成 剩下的就是修改了
用户jsp页面的情况
点击main.jsp用户管理后跳转查询方法
后面的?page=1&size=5 是默认页面第一页,页面信息条数5条。
user-list.jsp的参数设置
c标签里item的值就是从findAll方法ModelAndView传过来的
分页插件的配置也如下
全部查询完成
进行新增的操作
修改user-list新增按钮的路径
user-add.jsp页面
新增也完成
做删除的
这个简单,一句就可以,主要是controller层的方法编写
删除完成
来更新
更新需要传值,需要单个查询的功能,传个id进去,直接跳转单个查询方法
user-update.jsp
这样点更新的时候,id传过去执行了查询方法,页面就会有默认的用户账户信息,方便修改
然后修改提交方法
这样子更新也完成了
7 测试
没问题
在校大二学生,疫情在家网课学习,如有错误请指出,谢谢。