1、浏览器提交的数据,不论是get方式,还是post方式,都会被controller层中某个类中的某个方法的形参所接收,一般可以设置这个形参是某个实体类的对象,通过这个对象就能接收到浏览器提交的数据,前提是浏览器提交的参数名要与对象的属性名一致。
如:登录的时候,提交的是账号,密码两个参数,就可以用实体类User的一个对象接收。
2、接收到参数以后,需要对参数进行各种处理,就要在controller层的这个方法中,去调用service层相应的业务。
如:登录的业务层有2步,先判断能否从数据库中查询到对应的数据(账号,密码均要正确),再返回true或false
3、业务层中需要对数据进行验证或其它操作,就要调用dao层中的增删改查的方法,而dao层提供只是接口,mapper包下的与接口对应的xml文件会被加载,执行sql语句。
如:登录的dao层中,创建一个userDao接口,有find方法,在userMapper.xml文件中就会配置该查询方法的对应的sql语句。
package model;
import java.io.Serializable;
/**
*由于对象 是保存在内存中的,要保存到数据库中就需要实现Serializable接口
*/
public class User implements Serializable{
private static final long serialVersionUID = 1L;
private Integer id;
private String userName;
private String passWord;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
}
package controller;
import java.util.HashMap;
import java.util.Map;
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.ResponseBody;
import model.User;
import service.UserService;
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/list")
@ResponseBody
public Map list(Integer page,Integer rows) {
return userService.findUser(page,rows);
}
@RequestMapping("/save")
@ResponseBody
public Map save(User user) {
int res = userService.saveUser(user);
Map map = new HashMap();
if(res == 1) {
map.put("code",200);
}else{
map.put("code", 500);
}
return map;
}
@RequestMapping("/del")
@ResponseBody
public Map del(Integer id) {
int res = userService.delUserById(id);
Map map = new HashMap();
if(res == 1) {
map.put("code",200);
}else{
map.put("code", 500);
}
return map;
}
@RequestMapping("/update")
@ResponseBody
public Map update(User user) {
int res = userService.updateUser(user);
Map map = new HashMap();
if(res == 1) {
map.put("code",200);
}else{
map.put("code", 500);
}
return map;
}
}
package service;
import java.util.Map;
import model.User;
public interface UserService {
public int saveUser(User user);
public int delUserById(Integer id);
public int updateUser(User user);
public Map findUser(Integer page,Integer rows);
}
package service.impl;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import dao.UserDao;
import model.User;
import service.UserService;
@Service("userService") //注意这里的别名是为了之后若要重写UserServiceImpl类而相互区分的标记
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public int saveUser(User user) {
return userDao.saveUser(user);
}
@Override
public int delUserById(Integer id) {
return userDao.delUserById(id);
}
@Override
public int updateUser(User user) {
return userDao.updateUser(user);
}
@Override
public Map findUser(Integer page,Integer rows) {
Integer startIndex = (page-1)*rows;
List users = userDao.findUser(startIndex, rows);
Integer total = userDao.findTotal();
Integer pages = (total+rows-1)/rows;
Map map = new HashMap();
map.put("data", users);
map.put("pages", pages);
return map;
}
}
package dao;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import model.User;
public interface UserDao {
public int saveUser(User user);
public int delUserById(Integer id);
public int updateUser(User user);
public List findUser(@Param("startIndex") Integer startIndex, @Param("rows") Integer rows);
public Integer findTotal();
}
insert into t_user (user_name,pass_word) value (#{userName},#{passWord})
delete from t_user where id=#{id}
update t_user set user_name=#{userName} ,pass_word=#{passWord} where id=#{id}