基础环境搭建
在前一篇文章中,我们已经说了整合Mybatis的一些基础环境搭建,不懂的小伙伴可以去看看我的上一篇文章:Springboot整合Mybatis框架(一):使用注解的方式整合Mybatis
使用XML配置的方式整合Mybatis
- 我们先创建一个存放Mybatis框架的mapper.xml配置文件的位置(把文件放在Springboot项目resources文件下的mappers(自定义) 文件夹内)
- 创建Dao层逻辑接口
/**
*这是整合Mybatis使用XML配置的形式开发
*/
@Mapper //表示这是一个mapper接口文件,是需要Springboot进行扫描注册的
public interface BookDaomapper2 {
//查询所有的Article表中的信息。(一对多映射)
public List<Article> selectALL();
}
- 编写ArticleMapper.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.xuejia.springboot10.BookDao.BookDaomapper2">
<!--因为Article表中的id和Comment表中的id进行重合,所以用resultMap进行自定义名称-->
<resultMap id="article" type="Article">
<!--column:对应着表中的字段名 property:实体类中的字段名-->
<id column="id" property="id"></id>
<result column="title" property="title"></result>
<result column="content" property="content"></result>
<!--property:一对多集合中的名称 oftype:集合中泛型类型-->
<collection property="commentList" ofType="Comment">
<id column="c_id" property="id"></id>
<result column="c_content" property="content"></result>
<result column="author" property="author"></result>
<result column="a_id" property="aId" ></result>
</collection>
</resultMap>
<!--1对多映射进行查询所有-->
<!--记住:mybatis开发需要满足5点要求:1.id必须和接口方法名称一致,
2返回类型一致,
3.namespace地址一致
4.参数类型一致
5.接口名称和mapper文件名一致(不是必要的)-->
<select id="selectALL" resultMap="article" resultSets="java.util.List">
select a.*, c.id c_id,c.author,c.content c_content,c.a_id from t_article a,t_comment c where a.id=c.a_id
</select>
</mapper>
- 在Springboot的全局配置文件中配置Mybatis的xml映射文件路径以及实体类别名映射路径
mybatis:
configuration:
map-underscore-to-camel-case: true #开启mybatis的驼峰命名映射
type-aliases-package: com.xuejia.springboot10.POJO
mapper-locations: classpath:mappers/ArticleMapper.xml
- 编写测试方法进行整合Mybatis框架测试
@Autowired
private BookDaomapper2 bookDaomapper2;
@Test
//整合MyBatis框架,使用XML配置文件进行开发
public void test5(){
List<Article> list = bookDaomapper2.selectALL();
for (Article lists:list) {
System.out.println(lists);
}
}
展示结果: