SSM——CRUD增删改查的详细使用(基础版)



一、简介

(1)CRUD是什么

  • CRUD:Create( 创 建 )Retrieve(查询) Update(更新) Delete(删除)
  • 一个项目最基础也是最常用到的就是增删改查

(2)数据库准备

在这里插入图片描述
员工表和部门表的对应关系

create database ssm;
use ssm;

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);

(3)ssm搭建

(1)请参考:框架的整合流程框架源代码
(2)复制框架代码ssm为ssm02_crud,并刷新

  • 修改pom.xml(ssm02_crud)
	<artifactId>ssm02_crud</artifactId>
    <packaging>war</packaging>

    <name>ssm02_crud</name>
    <!-- FIXME change it to the project's website -->
    <url>http://www.example.com</url>
  • pom.xml(ssm)
<modules>
    <module>ssm01</module>
      <module>ssm02</module>
    <module>ssm02_crud</module>
  </modules>

(4)实体类代码

  • Department.java(src\main\java\domain)
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 + '\'' +
                '}';
    }

    public Integer getDid() {
    
    
        return did;
    }

    public void setDid(Integer did) {
    
    
        this.did = did;
    }

    public String getDname() {
    
    
        return dname;
    }

    public void setDname(String dname) {
    
    
        this.dname = dname;
    }
}

二、查询

(1)后台代码

TestDepartmentService

(src\test\java\service\TestDepartmentService.java)

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class TestDepartmentService {
    
    
    private static final Logger l= LoggerFactory.getLogger(TestDepartmentService.class);
    @Autowired
    IDepartmentService service;
    @Test
    public void test01(){
    
    
        List<Department> list=service.findAllDepartments();
        l.info("test01 test="+list);

    }

IDepartmentService

src\main\java\service\IDepartmentService.java

public interface IDepartmentService{
    
    
    //查找所有部门
    List<Department> findAllDepartments();
    //添加一个新的部门
    void saveDepartment(Department dept);
    //删除指定id的部门
    void deleteDepartmentById(int id);
    //根据id修改名称
    void updateDepartmentById(Department dept);
    //查找指定id的部门数据
    Department findDepartmentById(int did);
}

DepartmentServiceImpl

main\java\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\smp\dao\IDepartmentDao.java
//select * from department order by did asc;
    List<Department> findAll();

IDepartmentDao.xml

  • src\main\resources\com\smp\dao\IDepartmentDao.xml
<!--//select * from department order by did asc;
    List<Department> findAll();-->
    <select id="findAll" resultType="department">
        select * from department order by did asc;
    </select>

(2)前台代码

DepartmentController

  • src\main\java\com\smp\controller\DepartmentController.java
@Controller
@RequestMapping("/dept")
public class DepartmentController {
    
    
    private static final Logger l= LoggerFactory.getLogger(DepartmentController.class);
    @Autowired
    private IDepartmentService iDepartmentService;
    @RequestMapping(path = "/list",method = RequestMethod.GET)
    public String list(Model model){
    
    
        //显示所有的数据
        List<Department> depts=iDepartmentService.findAllDepartments();
        l.info("list depts="+depts);
        //数据加载到页面
        model.addAttribute("depts",depts);
        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>
<body>
<a href="">新增</a>
<table border="1px" width="100%">
    <tr>
        <td>编号</td>
        <td>部门名称</td>
        <td>管理</td>

    </tr>

    <c:forEach items="${depts}" 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>

三、添加

(1)后台代码

TestDepartmentService

  • src\test\java\service\TestDepartmentService.java
@Test
    public void test02(){
    
    
        Department dept=new Department("UI设计部门");
        service.saveDepartment(dept);
    }

DepartmentServiceImpl

  • main\java\service\impl\DepartmentServiceImpl.java
@Override
    public void saveDepartment(Department dept) {
    
    
        dao.save(dept);
    }

IDepartmentDao

  • src\main\java\com\smp\dao\IDepartmentDao.java
//insert into department values (null,'UI');
    void save(Department dept);

IDepartmentDao.xml

  • src\main\resources\com\smp\dao\IDepartmentDao.xml
<!--//insert into department values (null,'UI');
    void save(Department dept);-->
    <insert id="save" parameterType="department">
        insert into department values (null,#{dname});
    </insert>

(2)前台代码

DepartmentController

  • src\main\java\com\smp\controller\DepartmentController.java
 //增加
    @RequestMapping(path = "/addUI",method = RequestMethod.GET)
    public String addUI(){
    
    
        l.info("addUI ");
        return "add_dept";
    }
//保存判断
    @RequestMapping(path = "/save",method = RequestMethod.POST)
    public String save(Department dept,Model model){
    
    
        if(dept.getDname()!=null&&!"".equals(dept.getDname())){
    
    
            iDepartmentService.saveDepartment(dept);
            l.info("save dept="+dept);
            return "redirect:/dept/list";
        }else {
    
    
            model.addAttribute("error_msg","部门名称不能为空哦");
            return "forward:/error.jsp";
        }
    }

add_dept.jsp

  • src\main\webapp\WEB-INF\pages\add_dept.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>
<body>

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

</body>
</html>

四、删除

(1)后台代码

TestDepartmentService

  • src\test\java\service\TestDepartmentService.java
@Test
    public void test03(){
    
    
        service.deleteDepartmentById(1);
    }

DepartmentServiceImpl

  • main\java\service\impl\DepartmentServiceImpl.java
@Override
    public void deleteDepartmentById(int id) {
    
    
        dao.deleteById(id);
    }

IDepartmentDao

  • src\main\java\com\smp\dao\IDepartmentDao.java
//delete from department where did=5;
    void deleteById(int id);

IDepartmentDao.xml

  • src\main\resources\com\smp\dao\IDepartmentDao.xml
<!--//delete from department where did=5;
    void deleteById(int id);-->
    <delete id="deleteById" parameterType="int">
        delete from department where did=#{id};
    </delete>

(2)前台代码

DepartmentController

  • src\main\java\com\smp\controller\DepartmentController.java
//删除
    @RequestMapping(path = "/delete",method = RequestMethod.GET)
    public String delete(Integer did){
    
    
        l.info("delete did="+did);
        iDepartmentService.deleteDepartmentById(did);
        return "redirect:/dept/list";
    }

list_depts.jsp

  • src\main\webapp\WEB-INF\pages\list_depts.jsp
<a href="${pageContext.request.contextPath}/dept/delete?did=${dept.did}">删除</a>

五、修改

(1)后台代码

TestDepartmentService

  • (src\test\java\service\TestDepartmentService.java
@Test
    public void test04(){
    
    
        Department dept=new Department();
        dept.setDid(3);
        dept.setDname("最牛部门");
        service.updateDepartmentById(dept);
    }
    @Test
    public void test05(){
    
    
        Department dept=service.findDepartmentById(1);
        l.info("test05 dept="+dept);
    }

DepartmentServiceImpl

  • main\java\service\impl\DepartmentServiceImpl.java
@Override
    public void updateDepartmentById(Department dept) {
    
    
        dao.update(dept);
    }
    @Override
    public Department findDepartmentById(int did) {
    
    
        return dao.findById(did);
    }

IDepartmentDao

  • src\main\java\com\smp\dao\IDepartmentDao.java
 //update department set dname=? where did=1;
    void update(Department dept);
    //select *from department where did=1;
    Department findById(int did);

IDepartmentDao.xml

  • src\main\resources\com\smp\dao\IDepartmentDao.xml
 <!--//update department set dname=? where did=1;
    void update(Department dept);-->
    <update id="update" parameterType="department">
        update department set dname=#{dname} where did=#{did};
    </update>

    <!--//select *from department where did=1;
    Department findById(int did);-->
    <select id="findById" parameterType="int" resultType="department">
        select * from department where did=#{did};
    </select>

(2)前台代码

DepartmentController

  • src\main\java\com\smp\controller\DepartmentController.java
//修改
    @RequestMapping(path = "/updateUI",method = RequestMethod.GET)
    public String updateUI(Integer did,Model model){
    
    
        l.info("updateUI did="+did);
        Department department=iDepartmentService.findDepartmentById(did);
        model.addAttribute("dept",department);
        return "update_dept";
    }
    @RequestMapping(path = "/update",method = RequestMethod.POST)
    public String update(Department dept){
    
    
        //打印
        l.info("update dept="+dept);
        //调用service
        iDepartmentService.updateDepartmentById(dept);
        //调到查询界面
        return "redirect:/dept/list";
    }

list_depts.jsp

  • src\main\webapp\WEB-INF\pages\list_depts.jsp
<a href="${pageContext.request.contextPath}/dept/updateUI?did=${dept.did}">修改</a>

update_dept.jsp

  • src\main\webapp\WEB-INF\pages\update_dept.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>
<body>
<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>
</body>
</html>

访问:http://localhost:8080/ssm02_crud_war_exploded/dept/list

如有错误欢迎批评指正哦!!

猜你喜欢

转载自blog.csdn.net/qq_41209886/article/details/109167927