目录
前言:
就是无聊记录一下…
项目结构:
myuser类:
@Data
public class MyUser {private int id; private String username; private String mobile; private List<Post> posts;
}
post类:
@Data
public class Post {private int id; private Integer userid; private String title; private String content;
}
启动类:
@SpringBootApplication
@MapperScan(“com.luo.mybatisdemo.dao”)
public class MybatisdemoApplication {public static void main(String\[\] args) { SpringApplication.run(MybatisdemoApplication.class, args); }
}
controller:
@RequestMapping("/hello1")
public List hello1(){
List books = myUserMapper.getAllBooks(1);
return books;
}
mapper接口
List getAllBooks(Integer id);
Mapper.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.luo.mybatisdemo.dao.MyUserMapper">
<!-- User 级联文章查询 方法配置 (一个用户对多个文章) -->
<resultMap type="com.luo.mybatisdemo.entity.MyUser" id="resultUserMap">
<result property="id" column="id" />
<result property="username" column="username" />
<result property="mobile" column="mobile" />
<collection property="posts" ofType="com.luo.mybatisdemo.entity.Post" >
<id property="id" column="post_id" />
<result property="title" column="title" />
<result property="content" column="content" />
<result property="userid" column="userid" />
</collection>
</resultMap>
<select id="getAllBooks" resultMap="resultUserMap">
SELECT u.*,p.*
FROM myuser u, post p
WHERE u.id=p.userid AND u.id=#{user_id}
</select>
</mapper>
数据库表结构:
post表:
myuser表:
一对多返回格式 (这里主要为 一个用户拥有多个文章):
[{
“id”: 1,
“username”: “yiibai”,
“mobile”: “100”,
“posts”: [{
“id”: 1,
“userid”: 1,
“title”: “MyBatis关联数据查询”,
“content”: “在实际项目中,经常使用关联表的查询,比如:多对一,一对多等。这些查询是如何处理的呢,这一讲就讲这个问题。我们首先创建一个 post 表,并初始化数据.”
}, {
“id”: 2,
“userid”: 1,
“title”: “MyBatis开发环境搭建”,
“content”: “为了方便学习,这里直接建立java 工程,但一般都是开发 Web 项目。”
}]
}]