问题描述:首先来看两个类
public class Blog implements Serializable{
private Integer id; /**主键*/
private String title; /**标题*/
private String summary; /**摘要*/
private Date releaseDate; /**发表时间*/
private Integer clickHit; /**点击数*/
private Integer replyHit; /**评论数*/
private String content; /**内容*/
private BlogType blogType; /**所属博客类型*/
private String keyWord; /**关键字*/
private Integer blogCount; /**博客数量*/
}
Blog类里面有一个自定义类型对象BlogType,所以当我们在查询的时候,这个Blog类型的对象Mybatis框架是不会帮我们自动取注入的。因为这是一个自定义类型的类。下面附上自定义类BlogType:
public class BlogType implements Serializable {
/**主键*/
private Integer blogtypeid;
/**类型名称*/
private String typeName;
/**序号*/
private Integer orderNo;
/**该类型下博客的数量*/
private Integer blogCount;
}
这个类里面的内容就不进行介绍了,下面直接开始我们的select语句:
@Select( "select * from t_blog",
@Results(id="BlogMap", value={
@Result(column="id", property="id", id=true), //1
@Result(column="title", property="title"), //2
@Result(column="summary ", property="summary"), //3
@Result(column="releaseDate", property="releaseDate",jdbcType= JdbcType.TIMESTAMP), //4
@Result(column="clickHit", property="clickHit"), //5
@Result(column="replyHit", property="replyHit"), //6
@Result(column="content", property="content"), //7
@Result(column="typeId", property="blogType", javaType=BlogType.class, //8
one=@One(select="com.blog.dao.BlogTypeDao.findBlogTypeById")),
@Result(column="keyWord", property="keyWord"), //9
})
public List<Blog> findBlog();
注意1,2,3,4,5,6,7,9都是Blog类里面和表格里面一一对应的,这里需要我们特殊处理的只有8。column代表的是数据库内的字段。而property代表的是类里面对应对象的名称。这里的typeId代表的是,在数据库中Blog表存的对应BlogType这个对象的位置。