后台操作无非是增删改查,但是怎么个增删改查还是要看需求达到不同效果,传的参数可以看个人喜好吧,关于Mybatis,我喜欢是将一个实体类对象当参数,前端传入的参数实体类中都有字段是对应上的,前端想要什么参数传入对象里都有,他想传哪个字段就传哪个字段不需要后台在参数中列好
@PostMapping("/add")
public Result<PmProject> add(PmProject pmProject) {
return pmProjectService.add(pmProject);
}
前提是,数据库中这张表的非空字段前端必须传入,否则无法写入到数据库中的
传对象的话,在Mybatis的XML中就需要把类型都给出去
<update id="sortDown" parameterType="com.uhope.uip.item.domain.MdDrainageBasin">
这里要说一下 XML中增删改查的标签中的
resultMap和resultType
resultMap和resultType都是返回的结果集,resultMap的话需要在XML中写好表中的字段,而且要对应上
<resultMap id="BaseResultMap" type="com.uhope.uip.item.domain.MdDrainageBasin">
<id column="id" jdbcType="INTEGER" property="id" />
<result column="row_version" jdbcType="VARCHAR" property="rowVersion" />
<result column="basin_name" jdbcType="VARCHAR" property="basinName" />
<result column="basin_code" jdbcType="VARCHAR" property="basinCode" />
<result column="over_view" jdbcType="VARCHAR" property="overView" />
<result column="sort_order" jdbcType="INTEGER" property="sortOrder" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="state" jdbcType="INTEGER" property="state" />
<result column="create_id" jdbcType="VARCHAR" property="createId" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="modify_id" jdbcType="VARCHAR" property="modifyId" />
<result column="modify_time" jdbcType="TIMESTAMP" property="modifyTime" />
</resultMap>
resultType的话不需要,只需要在标签中把实体类的路径对应上即可
<select id="findByQuery" resultType="com.uhope.uip.item.domain.MdDrainageBasin">
resultMap的话就要在标签中选中XML写好的对应字段
<select id="findByQuery" resultMap="BaseResultMap">
基本上,这种查询的都要这种返回结果集的(
resultType
或者resultMap
),不需要
parameterType,因为parameterType是传参类型,只有update/delete/insert的时候需要
回到刚才的话题,parameterType的类型就需要注意了,刚说过,只有更新,删除,插入的时候需要用到,那如果你传的是一个对象的话,那你parameterType类型就要是一个对象路径
<update id="sortUp" parameterType="com.uhope.uip.item.domain.MdDrainageBasin">
那如果是几个参数而已的话,这里推荐使用HashMap
<update id="sortUp" parameterType="java.util.HashMap">
Map可以存放很多类型,八大基础类型还是放一个对象都是可以的,使用Map的话,Mapper接口参数也要改成Map
void sortDown(HashMap<String,Object>map);
PS:请注意返回类型,使用List还是使用对象返回看时机,多条用List,单条用对象,在Mapper中自己选择
List<MdDrainageBasin> findByBasin();
MdWaterSystem find(String basin_code);
Mapper后在业务处理层中就要指定参数即可
public Result sortOrder(Integer page, Integer size, @RequestParam Integer sortOrder,@RequestParam Integer status) {
HashMap<String,Object> map = new HashMap<>();
map.put("sortOrder",sortOrder);
相反若是对象的话放上对象