书接前文,
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>
运行测试