Mybatis注解方式完成一对一映射查询

问题描述:首先来看两个类

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这个对象的位置。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值