前言
在上一篇中我们做好了项目的前期主备工作,接下来让我们来实现页面的登录、列出数据和删除功能
项目所需文件总览
以下是本次项目所需要的所有代码文件
其中
dao文件夹内是dao层接口文件
bean文件夹内是实体类文件
service文件夹内是service接口文件及继承service接口使用dao接口的文件
controller文件夹内是前端数据接收处理文件、使用service接口的文件
初始化UserMapper
<?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.zr0701.dao.UserDao">
</mapper>
编写User类
package com.zr0701.bean;
public class User {
private int id;
private String name;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", password='" + password + '\'' +
'}';
}
}
注意最后的重写toString
初始化UserController类
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
}
接下来按照功能逐一展示代码
项目编写
1、登录
dao
package com.zr0701.dao;
import com.zr0701.bean.User;
import java.util.List;
public interface UserDao {
User findUserByName(String name);
}
}
SQL语句
<select id="findUserByName" parameterType="String" resultType="User">
select * from user where name=#{name}
</select>
Service
package com.zr0701.service;
import com.zr0701.bean.User;
import java.util.List;
public interface UserService {
boolean login(String name,String password);//接口
}
Impl
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public boolean login(String name, String password) {
User user = userDao.findUserByName(name);
if (user!=null&&user.getPassword().equals(password)){
return true;
}
return false;
}
}
Controller
@RequestMapping("/login.do")
public ModelAndView login(User user, HttpSession session){
boolean flag = userService.login(user.getName(),user.getPassword());
ModelAndView modelAndView = new ModelAndView();
if (flag){
session.setAttribute("user",user);
modelAndView.setViewName("../ok");
}else {
modelAndView.setViewName("../failure");
}
return modelAndView;
}
创建登录成功和失败页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>成功!</title>
</head>
<body>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>操作失败</title>
</head>
<body>
<h1>
操作失败
</h1>
</body>
</html>
2、显示数据
dao
public interface UserDao {
User findUserByName(String name);
List<User> findAll();
}
SQL语句
<select id="findAll" resultType="User">
select * from user
</select>
Service
List<User> findAll();
}
Impl
@Override
public List<User> findAll() {
return userDao.findAll();
}
Controller
@RequestMapping("/findAll.do")//..../findAll.do?name=
public ModelAndView findAll(){
ModelAndView modelAndView = new ModelAndView();
List<User> userList = userService.searchByName(name);
System.out.println("userList中的内容为:"+userList);
modelAndView.addObject("userList",userList);
modelAndView.setViewName("../main");
System.out.println("modelAndView中的内容为:"+modelAndView);
return modelAndView;
}
创建页面文件
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>列表</title>
</head>
<body>
<div>
<table>
<thead>
<tr>
<th>ID</th>
<th>用户名</th>
<th>密码</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${userList}" var="user">
<tr>
<td>${user.id}</td>
<td>${user.name}</td>
<td>${user.password}</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</body>
</html>
3、删除
dao
public interface UserDao {
User findUserByName(String name);
List<User> findAll();
int deleteById(Integer id);
}
SQL语句
<delete id="deleteById" parameterType="Integer">
delete from user where id=#{id}
</delete>
Service
boolean delete(Integer id);
}
Impl
@Override
public boolean delete(Integer id) {
int del = userDao.deleteById(id);
if (del>0){
return true;
}
return false;
}
Controller
@RequestMapping("/delete.do")
public String delete(int id){
boolean del = userService.delete(id);
if (del){
return "redirect:findAll.do";
}
return "../failure";
}
在main.jsp中添加以下代码
<a href="${pageContext.request.contextPath}/user/delete.do?id=${user.id}">删除</a>