SSM之CRUD开发版本V1的部门增删改查

2 篇文章 0 订阅

项目简介

  • (1)项目的经典模块-CRUD功能
  • (2)什么是CRUD
    CRUD:Create( 创 建 ) Retrieve(查询) Update(更新) Delete(删除)
  • (3)使用什么技术
    ssm:Spring+SpringMVC+MyBatis
  • (4)版本
    V1 : ssm
    V2 : ssm+Ajax
    V3 : ssm+Ajax+bootstrap
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

sql

create database crud;
use crud;

create table department(
	did int primary key auto_increment,
	dname varchar(20)
)
insert into department values(null,'java');
insert into department values(null,'测试');
insert into department values(null,'需求');

create table employee(
	eid int primary key auto_increment,
	ename varchar(20),
	gender varchar(20),
	did int 
)
insert into employee values(null,'jack','1',1);
insert into employee values(null,'rose','1',1);
insert into employee values(null,'tony','1',2);

ssm搭建

  • 复制搭建好的SSM为ssm02
  • 修改pom.xml(ssm02)
<artifactId>ssm02</artifactId>
  ...

<name>ssm02 Maven Webapp</name>
  • 修改pom.xml(springproject)
<modules>
    <module>ssm01</module>
    <module>ssm02</module>
</modules>
  • 执行一下以上两个pom.xml

查询功能后台代码

TestDepartmentService

src\test\java\com\lfy\service\TestDepartmentService.java

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class TestDepartmentService {
    private static final Logger l= LoggerFactory.getLogger(TestDepartmentService.class);
    @Autowired
    private IDepartmentService service;

    @Test
    public void test01(){
        List<Department> list=service.findAllDepartments();
        l.info("test01() list="+list);
    }
}

Department

src\main\java\com\lfy\domain\Department.java

public class Department {
    private Integer did;
    private String dname;

    public Department() {
    }

    public Department(String dname) {
        this.dname = dname;
    }

    @Override
    public String toString() {
        return "Department{" +
                "did=" + did +
                ", dname='" + dname + '\'' +
                '}';
    }

IDepartmentService

src\main\java\com\lfy\service\IDepartmentService.java

public interface IDepartmentService {
    List<Department> findAllDepartments();
}

DepartmentServiceImpl

src\main\java\com\lfy\service\impl\DepartmentServiceImpl.java

@Service
public class DepartmentServiceImpl implements IDepartmentService {
    @Autowired
    private IDepartmentDao dao;
    @Override
    public List<Department> findAllDepartments() {
        List<Department> list=dao.findAll();
        return list;
    }
}

IDepartmentDao

src\main\java\com\lfy\dao\IDepartmentDao.java

public interface IDepartmentDao {
    //select * from department order by did asc;
    List<Department> findAll();
}

IDepartmentDao.xml

src\main\resources\com\lfy\dao\IDepartmentDao.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.lfy.dao.IDepartmentDao">
    <select id="findAll" resultType="department">
        select * from department order by did asc;
    </select>
</mapper>

查询功能前台代码

DepartmentController

src\main\java\com\lfy\controller\DepartmentController.java

@Controller
@RequestMapping("/dept")
public class DepartmentController {
    private static  final Logger l = LoggerFactory.getLogger(DepartmentController.class);
    @Autowired
    private IDepartmentService service;

    @RequestMapping(path="/list",method = RequestMethod.GET)
    public String list(Model model){
        List<Department> list = service.findAllDepartments();
        l.info("list() list="+list);
        //数据添加到页面
        model.addAttribute("list",list);
        return "list_depts";
    }
}

list_depts.jsp

src\main\webapp\WEB-INF\pages\list_depts.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<a href="">新增</a>
<table border="1px" width="100%">
    <tr>
        <td>编号</td>
        <td>部门名称</td>
        <td>管理</td>
    </tr>

    <c:forEach items="${list}" var="dept">
    <tr>
        <td>${dept.did}</td>
        <td>${dept.dname}</td>
        <td><a href="">删除</a><a href="">修改</a></td>
    </tr>
    </c:forEach>
</table>
</body>
</html>

添加功能后台代码

TestDepartmentService

@Test
    public void test02(){
        Department dept = new Department("UI");
        service.saveDepartment(dept);
    }

IDepartmentService

void saveDepartment(Department dept);

DepartmentServiceImpl

@Override
    public void saveDepartment(Department dept) {
        dao.save(dept);
    }

IDepartmentDao

//insert into department (did,dname)values(null,'UI');
    void save(Department dept);

IDepartmentDao.xml

<insert id="save" parameterType="department">
     insert into department (did,dname)values(null,#{dname});
</insert>

添加功能前台代码

list_depts.jsp

<a href="${pageContext.request.contextPath}/save_dept.jsp">新增</a>

save_dept.jsp

src\main\webapp\save_dept.jsp

<form method="post" action="${pageContext.request.contextPath}/dept/save">
    <input type="text" name="dname"/><br/>
    <input type="submit" value="保存"/><br/>
</form>

DepartmentController

@RequestMapping(path="/save",method = RequestMethod.POST)
    public String save(Department dept,Model model){
        if(dept.getDname()!=null&&!"".equals(dept.getDname())) {
            service.saveDepartment(dept);
            l.info("save() dept=" + dept);
            return "redirect:/dept/list";
        }else {
            model.addAttribute("error_msg", "部门名称不能为空");
            return "forward:/error.jsp";
        }
    }

error.jsp

src\main\webapp\error.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
部门名称不能为空
</body>
</html>

删除功能后台代码

TestDepartmentService

@Test
    public void test03(){
        service.deleteDepartmentById(15);
    }

IDepartmentService

void deleteDepartmentById(int id);

DepartmentServiceImpl

@Override
    public void deleteDepartmentById(int id) {
        dao.deleteById(id);
    }

IDepartmentDao

//delete from department where did=15;
    void deleteById(int id);

IDepartmentDao.xml

<delete id="deleteById" parameterType="int">
     delete from department where did=#{id};
</delete>

删除功能前台代码

list_depts.jsp

<a href="${pageContext.request.contextPath}/dept/delete?did=${dept.did}">删除 | </a>

DepartmentController

@RequestMapping(path="/delete",method = RequestMethod.GET)
    public String delete(Integer did){
        l.info("delete() did="+did);
        service.deleteDepartmentById(did);
        return "redirect:/dept/list";
    }

修改功能后台代码

  • 修改功能,需要在打开页面的同时,查询一下数据,把数据带到页面进行赋值,这操作叫做回显

TestDepartmentService

@Test
    public void test04(){
        Department dept = service.findAllDepartmentById(13);
        dept.setDname("最牛部门");
        service.updateDepartmentById(dept);
    }

IDepartmentService

Department findAllDepartmentById(int did);

void updateDepartmentById(Department dept);

DepartmentServiceImpl

@Override
    public Department findAllDepartmentById(int did) {
        return dao.findById(did);
    }

    @Override
    public void updateDepartmentById(Department dept) {
        dao.updateById(dept);
    }

IDepartmentDao

//select * from department where did=13;
Department findById(int did);
//update department set dname=? where did=13;
void updateById(Department dept);

IDepartmentDao.xml

<select id="findById" parameterType="int" resultType="department">
    select * from department where did=#{did};
</select>

<update id="updateById" parameterType="department">
    update department set dname=#{dname} where did=#{did};
</update>

修改功能前台代码

list_depts.jsp

<a href="${pageContext.request.contextPath}/dept/updateUI?did=${dept.did}">修改</a>
  • form表单 不会将 标记为disabled="disabled"作为参数提交到后台
  • 所以,必须增加一个type="hidden"的input标签

update_dept.jsp

<form method="post" action="${pageContext.request.contextPath}/dept/update">
    <input type="hidden" name="did" value="${dept.did}" >
    <input type="text"  value="${dept.did}" disabled="disabled"/><br/>
    <input type="text" name="dname" value="${dept.dname}"/><br/>
    <input type="submit" value="保存修改"/><br/>
</form>

DepartmentController

@RequestMapping(path="/updateUI",method = RequestMethod.GET)
    public String updateUI(Integer did,Model model){
        l.info("updateUI() did="+did);
        Department dept = service.findAllDepartmentById(did);
        model.addAttribute("dept",dept);
        return "update_dept";
    }

    @RequestMapping(path="/update",method = {RequestMethod.GET,RequestMethod.POST})
    public String update(Department dept){
        l.info("update() dept="+dept);
        service.updateDepartmentById(dept);
        return "redirect:/dept/list";
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值