最初我用的是注解来操控数据库(注释掉的部分)
@Mapper
public interface ThreadMapper {// @Select("SELECT * FROM thread LIMIT #{page}, #{size}")List<Thread> getListByPage(@Param("page") int page, @Param("size") int size);// @Select("SELECT * FROM thread WHERE user_id = #{userId} LIMIT #{page}, #{size}")List<Thread> getListByPageAndUserId(@Param("page") int page, @Param("size") int size, @Param("userId") int userId);// @Insert("Insert into thread(user_id,title,content,create_time,update_time)" +
// " values(#{userId},#{title},#{content},now(),now())")void addInfo(@Param("userId")int userId, @Param("title")String title, @Param("content")String content);
}
但是后面测试的时候发现映射出错(就是数据库与实体类没完全对上)
{"code": 0,"message": "操作成功","data": [{"id": 2,"title": "123456","content": "123","userId": 0,"creatTime": null,"updateTime": null}]
}
解决办法:
第一种:
把数据库字段与实体类设为一样的(我没试过)
第二种:
用xml文件来配置映射(上步骤)
1、
mybatis:type-aliases-package: usx.xwt.taotao.domain //实体类mapper-locations: classpath:/mapper/*.xml //xml文件
这需要写在resource文件的配置文件下(我这里是.yml)
2、
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="usx.xwt.taotao.mapper.ThreadMapper"><resultMap id="threadResultMap" type="Thread"><id property="id" column="id"/><result property="title" column="title"/> //映射<result property="content" column="content"/><result property="userId" column="user_id"/><result property="createTime" column="create_time" javaType="java.time.LocalDateTime"/><result property="updateTime" column="update_time" javaType="java.time.LocalDateTime"/></resultMap><select id="getListByPageAndUserId" resultMap="threadResultMap">SELECT * FROM thread WHERE user_id = #{userId} LIMIT #{page}, #{size}</select><select id="getListByPage" resultMap="threadResultMap">SELECT * FROM thread LIMIT #{page}, #{size}</select><insert id="addInfo">Insert into thread(user_id,title,content,create_time,update_time) values(#{userId},#{title},#{content},now(),now())</insert>
</mapper>
3、这里的方法名需要与上面的数据库语句的id对应(记得加注解)
@Mapper
public interface ThreadMapper {List<Thread> getListByPage(@Param("page") int page, @Param("size") int size);List<Thread> getListByPageAndUserId(@Param("page") int page, @Param("size") int size, @Param("userId") int userId);void addInfo(@Param("userId")int userId, @Param("title")String title, @Param("content")String content);
}