人员管理系统 - 部门管理业务实现
- 在sm.service中entity中新建一个实体类Department,设置好setter和geter方法
- 在Dao包中编写持久层的增删改查的接口DepartmentDao
@Repository("departmentDao") public interface DepartmentDao { void insert(Department department); void delete(Integer id); void update(Department department); Department selectById(Integer id); List<Department> selectAll(); }
- 由于整合了mybatis开发,所以要在resources中创建一个mapper.xml,在文件中实现具体的操作
<?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.4//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.imooc.sm.dao.DepartmentDao"> <!--实体类和表的对应关系--> <resultMap id="resultMap" type="Department"> <!--如果对应数据库中的字段是主键的话,就用id这个标签--> <id property="id" column="id" javaType="Integer"/> <result property="name" column="name" javaType="String"/> <result property="address" column="address" javaType="String"/> </resultMap> <!--配置sql--> <!--useGeneratedKeys="true" insert要引入自增--> <insert id="insert" parameterType="Department" useGeneratedKeys="true" keyProperty="id"> insert into department(name,address) values(#{name},#{address}) </insert> <delete id="delete" parameterType="Integer" > delete from department where id = #{id} </delete> <update id="update" parameterType="Department"> update department set name = #{name},address=#{address} where id = #{id} </update> <select id="selectById" parameterType="Integer" resultMap="resultMap"> select * from department where id = #{id} </select> <select id="selectAll" resultMap="resultMap"> select * from department </select> </mapper>
3.在service中编写DepartmentService接口
大部分情况下,service接口中的方法与dao中的方法大致上是一致的。
public interface DepartmentService { void add(Department department); void remove(Integer id); void edit(Department department); Department get(Integer id); List<Department> getAll(); }
实现DepartmentService接口
package com.imooc.sm.service.impl; import com.imooc.sm.dao.DepartmentDao; import com.imooc.sm.entity.Department; import com.imooc.sm.service.DepartmentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service("departmentService") public class DepartmentServiceImpl implements DepartmentService { @Autowired private DepartmentDao departmentDao; public void add(Department department) { departmentDao.insert(department); } public void remove(Integer id) { departmentDao.delete(id); } public void edit(Department department) { departmentDao.update(department); } public Department get(Integer id) { return departmentDao.selectById(id); } public List<Department> getAll() { return departmentDao.selectAll(); } }
4.这里需要添加spring标签的地方有:
- dao层中要添加@Repository("departmentDao")
- service层中要添加的是@Service("departmentService")
- 这里出现里两个错误
- 在mapper.xml也是departmentDao的文件的xml映射文件中的错误,id属性没有写colmun
- resources这个资源文件路径下mapper.xml要与departmentDao的路径一致。在创建包时要com/imooc/sm/dao
参考一下解释:
IDEA中关于mapper.xml文件和dao接口路径及文件名相同的问题
https://blog.csdn.net/MrSuper_cat/article/details/104436318/