①在开发数据访问层DAO之前,先在eneity包下写一个实体类DisussPost,用来封装表里的数据。
package com.nowcoder.community.entity;
import java.util.Date;
public class DiscussPost {
private int id;
private int userId;
private String title;
private String content;
private int type;
private int status;
private Date createTime;
private int commentCount;
private double score;
②在DAO包下编写DiscussPostMapper接口,提供两个方法
@Mapper
public interface DicussPostMapper {
List<DiscussPost> selectDiscussPosts(int userId, int offset, int limit);
//@Param注解用于给参数取别名
//如果只有一个参数,并且在<if>里使用,则必须加别名
int selectDiscussPostRows(@Param("userId") int userId);
}
③在mapper文件夹下新建一个DiscussPostMapper的配置文件discusspost-mapper.xml,建立DiscussPostMapper与数据库之间的连接
<?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.nowcoder.community.dao.DicussPostMapper">
<sql id="selectField">
id,user_id,title,content,type,status,create_time,comment_count,score
</sql>
<select id="selectDiscussPosts" resultType="DiscussPost">
select <include refid="selectField"></include>
from discuss_post
where status!=2
<if test="userId!=0">
and user_id=#{
userId}
</if>
order by type desc,create_time desc
limit #{
offset},#{
limit}
<