4-2、细说IDEA Spring MyBatis 之 实体类、服务接口、服务类、映射接口、外部接访实现类、映射文件

书接前文,
1.实体类
用于与数据库一一对应的声明,并且是一个标准的JavaBean。
类如下:

package com.cm.aps.model;

public class S_apscode {
    
    
    public Integer getId() {
    
    
        return id;
    }

    public void setId(Integer id) {
    
    
        this.id = id;
    }

    private Integer id;
    private String k_code;//制程代号
    private String k_name;//制程
    private Integer k_time;//最大产能
    private Integer ktype;//虚拟显示否
    private Integer dk_time;//单件排量
    private String remark;//备注
    private String creater;//创建者
    private Integer creater_id;//创建者ID
    private String create_time;//创建时间
    private String modifier;//更新者
    private Integer modifier_id;//更新者ID
    private String modify_time;//更新时间
    private boolean is_deleted;//是否删除

    public S_apscode() {
    
    
    }

    public S_apscode(String k_code, String k_name, Integer k_time, Integer ktype, Integer dk_time, String remark, String creater, Integer creater_id, String create_time, String modifier, Integer modifier_id, String modify_time, boolean is_deleted) {
    
    
        this.k_code = k_code;
        this.k_name = k_name;
        this.k_time = k_time;
        this.ktype = ktype;
        this.dk_time = dk_time;
        this.remark = remark;
        this.creater = creater;
        this.creater_id = creater_id;
        this.create_time = create_time;
        this.modifier = modifier;
        this.modifier_id = modifier_id;
        this.modify_time = modify_time;
        this.is_deleted = is_deleted;
    }

    public String getK_code() {
    
    
        return k_code;
    }

    public void setK_code(String k_code) {
    
    
        this.k_code = k_code;
    }

    public String getK_name() {
    
    
        return k_name;
    }

    public void setK_name(String k_name) {
    
    
        this.k_name = k_name;
    }

    public Integer getK_time() {
    
    
        return k_time;
    }

    public void setK_time(Integer k_time) {
    
    
        this.k_time = k_time;
    }

    public Integer getKtype() {
    
    
        return ktype;
    }

    public void setKtype(Integer ktype) {
    
    
        this.ktype = ktype;
    }

    public Integer getDk_time() {
    
    
        return dk_time;
    }

    public void setDk_time(Integer dk_time) {
    
    
        this.dk_time = dk_time;
    }

    public String getRemark() {
    
    
        return remark;
    }

    public void setRemark(String remark) {
    
    
        this.remark = remark;
    }

    public String getCreater() {
    
    
        return creater;
    }

    public void setCreater(String creater) {
    
    
        this.creater = creater;
    }

    public Integer getCreater_id() {
    
    
        return creater_id;
    }

    public void setCreater_id(Integer creater_id) {
    
    
        this.creater_id = creater_id;
    }

    public String getCreate_time() {
    
    
        return create_time;
    }

    public void setCreate_time(String create_time) {
    
    
        this.create_time = create_time;
    }

    public String getModifier() {
    
    
        return modifier;
    }

    public void setModifier(String modifier) {
    
    
        this.modifier = modifier;
    }

    public Integer getModifier_id() {
    
    
        return modifier_id;
    }

    public void setModifier_id(Integer modifier_id) {
    
    
        this.modifier_id = modifier_id;
    }

    public String getModify_time() {
    
    
        return modify_time;
    }

    public void setModify_time(String modify_time) {
    
    
        this.modify_time = modify_time;
    }

    public boolean isIs_deleted() {
    
    
        return is_deleted;
    }

    public void setIs_deleted(boolean is_deleted) {
    
    
        this.is_deleted = is_deleted;
    }

    @Override
    public String toString() {
    
    
        return "S_apscode{" +
                "k_code='" + k_code + '\'' +
                ", k_name='" + k_name + '\'' +
                ", k_time=" + k_time +
                ", ktype=" + ktype +
                ", dk_time=" + dk_time +
                ", remark='" + remark + '\'' +
                ", creater='" + creater + '\'' +
                ", creater_id=" + creater_id +
                ", create_time='" + create_time + '\'' +
                ", modifier='" + modifier + '\'' +
                ", modifier_id=" + modifier_id +
                ", modify_time='" + modify_time + '\'' +
                ", is_deleted=" + is_deleted +
                '}';
    }
}

2.服务接口
因为每个服务都会用到增删改查,所以先写一个能用服务接口

package com.cm.aps.service;

import java.util.List;

public interface CurdService <T> {
    
    

    /**
     * 保存操作
     * @param record
     * @return
     */
    int save(T record);

    /**
     * 删除操作
     * @param record
     * @return
     */
    int delete(T record);

    /**
     * 批量删除操作
     * @param entities
     */
    int delete(List<T> records);

    /**
     * 根据ID查询
     * @param id
     * @return
     */
    T findById(Long id);
}

为了满足特定类的服务接口,因此还要写一个针对这个类的服务
S_apscodeService 并继承 CurdService 接口

package com.cm.aps.service;

import com.cm.aps.model.S_apscode;
import com.cm.aps.page.PageRequest;
import com.cm.aps.page.PageResult;

import java.util.List;

public interface S_apscodeService extends CurdService {
    
    
    //根据制程代号查询制程
    S_apscode findbycode(String code);
    //查询全部
    List<S_apscode> findAll();
    //根据代号删除
    int deletebycode(String code);
    //添加
    int insert(S_apscode s_apscode);
    //更新
    int update(S_apscode s_apscode);
    //分页
    //PageResult findPage(PageRequest pageRequest);

}

3.映射接口
这个是用于后面XML文件做方法映射,这里与XML要对应。

package com.cm.aps.dao;

import com.cm.aps.model.S_apscode;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface S_apscodeMapper {
    
    
    //根据制程代号查询制程
    S_apscode findbycode(String code);
    //查询全部
    List<S_apscode> findAll();
    //新增
    int insert(@Param(value = "s_apscode")S_apscode s_apscode);
    //删除
    int deletebycode(String code);
    //修改
    int updateById(@Param(value = "s_apscode")S_apscode s_apscode);

    int update(@Param(value = "s_apscode")S_apscode s_apscode);
    //分页
    //List<S_apscode> selectPage();

}

4.外部访问实现类
它主要是用来提供接实现接口的,这里的很多注释注意一下要了解其中的意思

package com.cm.aps.controller;

import com.cm.aps.model.S_apscode;
import com.cm.aps.page.PageRequest;
import com.cm.aps.service.S_apscodeService;
import com.cm.aps.util.HttpResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("Apscode")
@CrossOrigin
public class S_apscodeController {
    
    
    @Autowired
    private S_apscodeService s_apscodeService;

    @GetMapping(value="/findByapscode")
    public Object findbycode(@RequestParam String code) {
    
    return s_apscodeService.findbycode(code);}

    @GetMapping(value="/findAll")
    public Object findAll() {
    
    
        return s_apscodeService.findAll();
    }
    @PostMapping(value="/delete")
    public Object deletebycode(@RequestParam(value = "code") String code){
    
     return s_apscodeService.deletebycode(code);}
    @PostMapping(value="/insert")
    public Object insert(@RequestBody(required = true) S_apscode s_apscode){
    
     return s_apscodeService.insert(s_apscode);};
/*
    @PostMapping(value="/findPage")
    public Object findPage(@RequestBody PageRequest pageQuery) {
        return s_apscodeService.findPage(pageQuery);
    }
*/
    @PostMapping(value="/update")
    public Object update(@RequestBody(required = true) S_apscode s_apscode){
    
     return s_apscodeService.update(s_apscode);};
}

5.服务类
这个是具体实现类

package com.cm.aps.service.impl;

import com.cm.aps.dao.S_apscodeMapper;
import com.cm.aps.model.S_apscode;
import com.cm.aps.page.PageRequest;
import com.cm.aps.page.PageResult;
import com.cm.aps.page.PageUtils;
import com.cm.aps.service.S_apscodeService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
@Service
public class S_apscodeServiceimpl implements S_apscodeService {
    
    
    @Autowired
    private S_apscodeMapper s_apscodeMapper;

    @Override
    public S_apscode findbycode(String code) {
    
    
        return s_apscodeMapper.findbycode(code);
    }

    @Override
    public List<S_apscode> findAll() {
    
    
        return s_apscodeMapper.findAll();
    }

    @Override
    public int deletebycode(String code) {
    
    
        return s_apscodeMapper.deletebycode(code);
    }

    @Override
    public int insert(@Param(value = "s_apscode") S_apscode s_apscode) {
    
    
            return s_apscodeMapper.insert(s_apscode);
    }

    @Override
    public int update(S_apscode s_apscode) {
    
    
        return s_apscodeMapper.update(s_apscode);
    }
/*
    @Override
    public PageResult findPage(PageRequest pageRequest) {
        return PageUtils.getPageResult(pageRequest, getPageInfo(pageRequest));
    }

    private PageInfo<S_apscode> getPageInfo(PageRequest pageRequest) {
        int pageNum = pageRequest.getPageNum();
        int pageSize = pageRequest.getPageSize();
        PageHelper.startPage(pageNum, pageSize);
        List<S_apscode> sysMenus = s_apscodeMapper.selectPage();
        return new PageInfo<S_apscode>(sysMenus);
    }
*/
    @Override
    public int save(Object record) {
    
    
        S_apscode recordCopy=(S_apscode)record;

        if((recordCopy.getId()==null)){
    
    //INSERT
           return insert(recordCopy);

        }else{
    
    
           return s_apscodeMapper.updateById(recordCopy);
        }
    }

    @Override
    public int delete(Object record) {
    
    
        return 0;
    }

    @Override
    public int delete(List records) {
    
    
        return 0;
    }

    @Override
    public Object findById(Long id) {
    
    
        return null;
    }
}

6.映射文件
这个映射与相应的类与Mapper进行对应,注意细看一下相关的方法,有些是以实体类的方式提交的,有些是以非实体类提交的。

<?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.cm.aps.dao.S_apscodeMapper">
    <resultMap id="BaseResultMap" type="com.cm.aps.model.S_apscode">
        <id column="id" property="id" />
        <id column="k_code" property="k_code" />
        <result column="k_name" property="k_name" />
        <result column="k_time" property="k_time" />
        <result column="ktype" property="ktype" />
        <result column="dk_time" property="dk_time" />
        <result column="remark" property="remark" />
        <result column="creater" property="creater" />
        <result column="creater_id" property="creater_id" />
        <result column="create_time" property="create_time" />
        <result column="modifier" property="modifier" />
        <result column="modifier_id" property="modifier_id" />
        <result column="create_time" property="create_time" />
        <result column="modify_time" property="modify_time" />
        <result column="is_deleted" property="is_deleted" />
    </resultMap>
    <sql id="Base_Column_List" >
        k_code,k_name,k_time,ktype,dk_time,remark,creater,creater_id,create_time,modifier,modifier_id,create_time,modify_time,is_deleted
    </sql>
    <update id="updateById" parameterType="com.cm.aps.model.S_apscode">
        update s_apscode
        <if test="s_apscode.k_name!=null">
            set k_name=#{s_apscode.k_name}
        </if>
         where id=#{s_apscode.id}
    </update>
    <select id="findAll" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List" />
        from s_apscode
    </select>
    <select id="findbycode" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List" />
        from s_apscode
        where k_code=#{code,jdbcType=VARCHAR}
    </select>
    <delete id="deletebycode" parameterType="java.lang.String">
        delete from s_apscode
        where k_code = #{id,jdbcType=VARCHAR}
    </delete>
    <insert id="insert" parameterType="com.cm.aps.model.S_apscode">
        insert into s_apscode(k_code,k_name,k_time,ktype,dk_time,remark)
        values (#{s_apscode.k_code},#{s_apscode.k_name},#{s_apscode.k_time},#{s_apscode.ktype},#{s_apscode.dk_time},#{s_apscode.remark})
    </insert>
    <update id="update" parameterType="com.cm.aps.model.S_apscode">
        update s_apscode set k_name=#{s_apscode.k_name},k_time=#{s_apscode.k_time},ktype=#{s_apscode.ktype},
            dk_time=#{s_apscode.dk_time},remark=#{s_apscode.remark}
        where s_apscode.k_code=#{s_apscode.k_code}
    </update>
</mapper>

运行测试
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44690195/article/details/106927323