项目简介
-
(1)项目的经典模块-CRUD功能
-
(2)什么是CRUD
CRUD:Create( 创 建 ) Retrieve(查询) Update(更新) Delete(删除)
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项目搭建文档
测试驱动开发
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class TestDataSource {
private static final Logger log = Logger.getLogger(TestDataSource.class.getName());
@Qualifier("IPersonDao")
@Autowired
IPersonDao dao;
@Test
public void test01() throws SQLException {
List<Person> data = dao.findAll();
System.out.println(data);
}
@Test
public void test02() throws SQLException {
Person p = new Person("hello",200.00);
dao.save(p);
}
}
IDepartmentService
public interface IDepartmentService {
List<Department> findAll();
Department saveDepartment(Department department);
Department findDepartmentById(Integer did);
void updateDepartmentById(Department dept);
void deleteDepartmentById(int did);
}
DepartmentService
@Service
public class DepartmentService implements IDepartmentService {
@Autowired
IDepartmentDao dao;
@Override
public List<Department> findAll() {
List<Department> list=dao.findAllDepartments();
return list;
}
@Override
public Department saveDepartment(Department department) {
int id=dao.saveDepartment(department);
return department;
}
public Department findDepartmentById(Integer did) {
Department department=dao.findDepartmentById(did);
return department;
}
@Override
public void updateDepartmentById(Department dept) {
dao.update(dept);
}
@Override
public void deleteDepartmentById(int did) {
dao.delete(did);
}
}
IDepartmentDao
public interface IDepartmentDao {
List<Department> findAllDepartments();
int saveDepartment(Department department);
Department findDepartmentById(Integer did);
void update(Department dept);
void delete(int did);
}
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.qst.dao.IDepartmentDao">
<select id="findAllDepartments" resultType="department">
select * from department order by did asc;
</select>
<insert id="saveDepartment" parameterType="department" keyProperty="did" useGeneratedKeys="true" >
insert into department (dname) values(#{dname});
</insert>
<select id="findDepartmentById" resultType="department" parameterType="int">
select * from department where did=#{did};
</select>
<update id="update" parameterType="department">
update department set dname = #{dname} where did = #{did};
</update>
<delete id="delete" parameterType="int">
delete from department where did=#{did};
</delete>
</mapper>
Department.java
package com.qst.bean;
public class Department {
private Integer did;
private String dname;
public Department() {
}
public Department(String dname) {
this.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;
}
@Override
public String toString() {
return "Department{" +
"did=" + did +
", dname='" + dname + '\'' +
'}';
}
}
前后台通信开发
经过测试驱动开发后,对所有模块进行测试后并成功后,这保证后台逻辑的正确性,就可以进行Controller包开发,即整合前的servlet开发;
前后台通信包括含ajax和不含版本,大家可以看看这个不含ajax前后端通信
使用ajax实现前后端通信