考虑多用户同时访问的情况。
- 先创建一个自己的mapper配置文件xml
QuestionExtMapper.xml
<?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.july.community.mapper.QuestionExtMapperMapper">
<resultMap id="BaseResultMap" type="com.july.community.model.Question">
<constructor>
<idArg column="id" javaType="java.lang.Integer" jdbcType="INTEGER" />
<arg column="title" javaType="java.lang.String" jdbcType="VARCHAR" />
<arg column="time_create" javaType="java.lang.Long" jdbcType="BIGINT" />
<arg column="time_modified" javaType="java.lang.Long" jdbcType="BIGINT" />
<arg column="creator" javaType="java.lang.Integer" jdbcType="INTEGER" />
<arg column="comment_count" javaType="java.lang.Integer" jdbcType="INTEGER" />
<arg column="view_count" javaType="java.lang.Integer" jdbcType="INTEGER" />
<arg column="like_count" javaType="java.lang.Integer" jdbcType="INTEGER" />
<arg column="tag" javaType="java.lang.String" jdbcType="VARCHAR" />
</constructor>
</resultMap>
<resultMap id="ResultMapWithBLOBs" type="com.july.community.model.Question">
<constructor>
<idArg column="id" javaType="java.lang.Integer" jdbcType="INTEGER" />
<arg column="title" javaType="java.lang.String" jdbcType="VARCHAR" />
<arg column="time_create" javaType="java.lang.Long" jdbcType="BIGINT" />
<arg column="time_modified" javaType="java.lang.Long" jdbcType="BIGINT" />
<arg column="creator" javaType="java.lang.Integer" jdbcType="INTEGER" />
<arg column="comment_count" javaType="java.lang.Integer" jdbcType="INTEGER" />
<arg column="view_count" javaType="java.lang.Integer" jdbcType="INTEGER" />
<arg column="like_count" javaType="java.lang.Integer" jdbcType="INTEGER" />
<arg column="tag" javaType="java.lang.String" jdbcType="VARCHAR" />
<arg column="description" javaType="java.lang.String" jdbcType="LONGVARCHAR" />
</constructor>
</resultMap>
<update id="incView" parameterType="com.july.community.model.Question">
update tbl_question set
view_count = view_count + #{viewCount,jdbcType=INTEGER}
where id = #{id}
</update>
</mapper>
- 编写自己的mapper类
QuestionExtMapper.java
package com.july.community.mapper;
import com.july.community.model.Question;
public interface QuestionExtMapper {
int incView(Question record);
}
- 编写业务逻辑
package com.july.community.controller;
@GetMapping("question/{id}")
public String question(@PathVariable(name = "id") Integer id,
Model model){
QuestionDTO questionDTO = questionService.getListById(id);
//添加浏览数
questionService.incView(id);
model.addAttribute("question",questionDTO);
return "question";
}
package com.july.community.service;
@Autowired
private QuestionExtMapper questionExtMapper;
public void incView(Integer id) {
Question record = new Question();
record.setId(id);
record.setViewCount(1);
questionExtMapper.incView(record);
}