DAO层的函数方法
User selectUser(String name,String area);
对应的Mapper.xml
<select id="selectUser" resultMap="BaseResultMap">
SELECT
*
FROM
user_user_t
WHERE
user_name = #{0} and
user_area = #{1}
select>
其中,#{0}代表接收的是dao层中的第一个参数,#{1}代表dao层中第二参数,更多参数一致往后加即可。
Dao层的函数方法
User selectUser(Map paramMap);
对应的Mapper.xml
<select id=" selectUser" resultMap="BaseResultMap">
SELECT
*
FROM
user_user_t
WHERE
user_name = #{userName,jdbcType=VARCHAR}
AND user_area = #{userArea,jdbcType=VARCHAR}
select>
Service层调用
private User xxxSelectUser(){
Map paramMap=new hashMap();
paramMap.put(“userName”,”对应具体的参数值”);
paramMap.put(“userArea”,”对应具体的参数值”);
User user=xxx. selectUser(paramMap);
}
个人认为此方法不够直观,见到接口方法不能直接的知道要传的参数是什么。
Dao层的函数方法
int insert(WaterEle record);
对应的Mapper.xml
<insert id="insert" parameterType="com.jsptpd.gayg.modules.cloud.model.WaterEle">
insert into t_enterprise_water_ele (WATER_ELE_ID, ENTERPRISE_ID, ENTERPRISE_NAME,
YEARMONTH, WATER_SIZE, WATER_AMOUNT,
ELE_SIZE, ELE_AMOUNT, STATUS,
OPERATOR, OPERATE_TIME)
values (#{waterEleId,jdbcType=VARCHAR}, #{enterpriseId,jdbcType=VARCHAR}, #{enterpriseName,jdbcType=VARCHAR},
#{yearmonth,jdbcType=VARCHAR}, #{waterSize,jdbcType=DECIMAL}, #{waterAmount,jdbcType=VARCHAR},
#{eleSize,jdbcType=DOUBLE}, #{eleAmount,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER},
#{operator,jdbcType=VARCHAR}, #{operateTime,jdbcType=TIMESTAMP})
insert>
Service层调用
@RequestMapping(value = "", method = RequestMethod.POST)
public ResponseObj<Boolean> insert(@RequestBody WaterEle waterEle) {
//先查询是否有这条数据,没有进行插入操作
WaterEle enterpriseBase1 = waterEleMapper.selectByPrimaryKey(waterEle.getWaterEleId());
if (enterpriseBase1 == null) {
waterEle.setWaterEleId(CommonUtil.getSysRef());
waterEle.setEnterpriseId(CommonUtil.getSysRef());
waterEle.setStatus(SysData.STATUS_NORMAL);
waterEle.setOperateTime(DateUtil.getDateTime());
int i = waterEleMapper.insertSelective(waterEle);
if (i == 1)
return new ResponseObj<Boolean>(true, RetCode.SUCCESS);
return new ResponseObj<>(false, RetCode.FAIL);
}
return new ResponseObj<>(false, RetCode.FAIL);
}
Dao层的函数方法
User selectUser(@Param(“userName”)String name,@Param(“userArea”)String area);
对应的Mapper.xml
<select id=" selectUser" resultMap="BaseResultMap">
SELECT
*
FROM
user_user_t
WHERE
user_name = #{userName,jdbcType=VARCHAR}
AND user_area = #{userArea,jdbcType=VARCHAR}
select>
个人觉得这种方法比较好,能让开发者看到dao层方法就知道该传什么样的参数,比较直观,个人推荐用此种方案。