【Web】ssm注册修改查询实现
前言
暑期项目实习第七课,用ssm框架在项目中实现注册修改查询。
Code
bean为model层,用于存放类。
db配置文件以及appCon相关配置详见上节课[【Web】Maven搭建前后端连接实例]
mapper中写Sql语句
add 用于注册功能
findUserById 与 update用于修改功能
searchByName 用于查询功能
<?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">
<select id="findUserByName" parameterType="String" resultType="User">
select * from user where name =#{name}
</select>
<delete id="deleteById" parameterType="Integer">
delete from user where id=#{id}
</delete>
<select id="findAll" resultType="User">
select * from user
</select>
<insert id="add" parameterType="User">
insert into user (name,password) values (#{name},#{password})
</insert>
<select id="findUserById" parameterType="Integer" resultType="User">
select * from user where id=#{id}
</select>
<update id="update" parameterType="User">
update user set name=#{name},password=#{password} where id=#{id}
</update>
<select id="searchByName" parameterType="String" resultType="User">
select * from user where name like concat('%',#{name},'%')
</select>
</mapper>
dao层UserDao
package com.zr0701.dao;
import com.zr0701.bean.User;
import org.springframework.http.converter.json.GsonBuilderUtils;
import java.util.List;
public interface UserDao { //该层写接口 所以interface
User findUserByName (String name);
List<User> findAll();
int deleteById(Integer id);
int add(User user);
int update(User user);
User findUserById(Integer id);
List<User> searchByName(String name);
}
service层
先写UserServiceImpl中的接口。
再写UserService类调用接口。
UserServiceImpl
package com.zr0701.service.Impl;
import com.zr0701.bean.User;
import com.zr0701.dao.UserDao;
import com.zr0701.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
@Service //告诉扫描器这边实现service的功能,让它能够扫描到
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public boolean login(String name, String password) {
System.out.println("开始查询:"+name);
User user = userDao.findUserByName(name);
System.out.println("查询结束:"+name);
if(user != null && user.getPassword().equals(password)){
return true;
}
return false;
}
@Override
public boolean delete(Integer id) {
int del = userDao.deleteById(id);
if(del>0){
return true;
}
return false;
}
@Override
public List<User> findAll() {
return userDao.findAll();
}
@Override
public boolean add(User user) {
int add = userDao.add(user);
if(add>0){
return true;
}
return false;
}
@Override
public User findById(Integer id){
return userDao.findUserById(id);
}
@Override
public boolean update(User user){
int upd=userDao.update(user);
if(upd>0){
return true;
}
return false;
}
@Override
public List<User> searchByName(String name) {
return userDao.searchByName(name);
}
}
UserService
package com.zr0701.service;
import com.zr0701.bean.User;
import java.util.List;
public interface UserService { //该层实现业务上的功能
boolean login(String name,String password);
boolean delete(Integer id);
List<User> findAll();
boolean add(User user);
User findById(Integer id);
boolean update(User user);
List<User> searchByName(String name);
}
controller层UserController
package com.zr0701.controller;
import com.zr0701.bean.User;
import com.zr0701.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import java.util.List;
@Controller
@RequestMapping("/user")
public class UserController { //servlet
@Autowired
private UserService userService;
@RequestMapping("/login.do")
public ModelAndView login(User user){
System.out.println("UserController run");
boolean flag = userService.login(user.getName(),user.getPassword());
System.out.println("UserController end");
ModelAndView modelAndView=new ModelAndView();
if(flag){
modelAndView.setViewName("../ok");
}else {
modelAndView.setViewName("../failure");
}
return modelAndView;
}
@RequestMapping("/findAll.do")
public ModelAndView findAll(@RequestParam(value = "name",defaultValue = "")String name){
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;
}
@RequestMapping("/delete.do")
public String delete(int id){
boolean del = userService.delete(id);
if(del){
return "redirect:findAll.do";
}
return "../failure";
}
@RequestMapping("/add.do")
public String add(User user){
boolean ad = userService.add(user);
if(ad){
return "redirect:findAll.do";
}
return "../failure";
}
@RequestMapping("/findById.do")
public String findById(int id, Model model){
User user = userService.findById(id);
model.addAttribute("user",user);
return "../modify";
}
@RequestMapping("/update.do")
public String update(User user){
boolean upd = userService.update(user);
if(upd){
return "redirect:findAll.do";
}
return "../failure";
}
}
jsp页面
add 注册页面。
modify 修改页面。
add页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>注册</title>
</head>
<body>
<div>
<form action="/user/add.do">
<div>
<label for="name">用户名:</label>
<input name="name" type="text" id="name">
</div>
<div>
<label for="password">密码:</label>
<input name="password" type="text" id="password">
</div>
<div>
<input type="submit" value="提交">
</div>
<a href="javascript:window.history.go(-1)">返回</a>
</form>
</div>
</body>
</html>
modify页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>修改</title>
</head>
<body>
<div>
<form action="/user/update.do">
<input name="id" value="${user.id}" type="hidden">
<div>
<label for="name">用户名:</label>
<input name="name" type="text" id="name" value="${user.name}">
</div>
<div>
<label for="password">密码:</label>
<input name="password" type="text" id="password" value="${user.password}">
</div>
<div>
<input type="submit" value="提交">
</div>
<a href="javascript:window.history.go(-1)">返回</a>
</form>
</div>
</body>
</html>
最终效果
访问地址:localhost:8080/
注册功能
点击注册,进入add页面,并输入注册信息。
提交后,跳转到findAll查询页面,并可以见到信息已经成添加。
修改查询功能
单击查询页面的修改按钮,可以发现页面跳转并在地址处出现 id=125 即我们修改的id号,且两个text框内已出现原始账号信息。
修改后点击提交,跳转至查询页面,可以发现信息也被成功修改。