一、简介
(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
如有错误欢迎批评指正哦!!