上一篇我们介绍了如何在Spring Boot中整合我们国人最常用的MyBatis来实现对关系型数据库的访问。但是上一篇中使用了注解方式来实现,而对于很多MyBatis老用户还是习惯于XML的开发方式,所以这篇,我们就来看看如何使用XML的方式来进行开发。

动手试试

本篇将不具体介绍整合MyBatis的基础内容,读者可以阅读上一篇:Spring Boot 2.x基础教程:使用MyBatis访问MySQL来了解该部分内容。

下面的实操部分将基于上一篇的例子之后进行,基础工程可通过文末仓库中的chapter3-5目录获取。

第一步:在应用主类中增加mapper的扫描包配置:

@MapperScan("com.didispace.chapter36.mapper")
@SpringBootApplication
public class Chapter36Application { public static void main(String[] args) {
SpringApplication.run(Chapter36Application.class, args);
} }

第二步:在第一步中指定的Mapper包下创建User表的Mapper定义:

public interface UserMapper {

    User findByName(@Param("name") String name);

    int insert(@Param("name") String name, @Param("age") Integer age);

}

第三步:在配置文件中通过mybatis.mapper-locations参数指定xml配置的位置:

mybatis.mapper-locations=classpath:mapper/*.xml

第四步:在第三步中指定的xml配置目录下创建User表的mapper配置:

<?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.didispace.chapter36.mapper.UserMapper">
<select id="findByName" resultType="com.didispace.chapter36.entity.User">
SELECT * FROM USER WHERE NAME = #{name}
</select> <insert id="insert">
INSERT INTO USER(NAME, AGE) VALUES(#{name}, #{age})
</insert>
</mapper>

到这里从注解方式的MyBatis使用方式就改为了XML的配置方式了,为了验证是否运行正常,可以通过下面的单元测试来尝试对数据库的写和读操作:

@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest
@Transactional
public class Chapter36ApplicationTests { @Autowired
private UserMapper userMapper; @Test
@Rollback
public void test() throws Exception {
userMapper.insert("AAA", 20);
User u = userMapper.findByName("AAA");
Assert.assertEquals(20, u.getAge().intValue());
} }

如果您在尝试没有成功,建议通过文末仓库查看完成代码,对比是否有所遗漏与疏忽。

更多本系列免费教程连载「点击进入汇总目录」

代码示例

本文的相关例子可以查看下面仓库中的chapter3-6目录:

如果您觉得本文不错,欢迎Star支持,您的关注是我坚持的动力!

最新文章

  1. Groonga 3.0.8 发布,全文搜索引擎
  2. CodeIgniter中驱动器的使用方法
  3. PL/pgSQL的RETURN QUERY例子
  4. ACM HDU 1021 Fibonacci Again
  5. Jackson 框架,轻易转换JSON【转】
  6. HTML5地理定位,百度地图API,知识点熟悉
  7. x264源代码简单分析:x264_slice_write()
  8. Leetcode_234_Palindrome Linked List
  9. 小小白搭建nextcloud云盘
  10. 【代码笔记】Web-JavaScript-JavaScript正则表达式
  11. Hdoj 1374.Knight Moves 题解
  12. 深入浅出的webpack构建工具---DllPlugin DllReferencePlugin提高构建速度(七)
  13. mac下搭建node+koa2项目
  14. LFI/RFI总结
  15. 一种模块化开发的目录结构和部署tips
  16. 微信小程序 - tabbar动态更换图标以及文字
  17. Educational Codeforces Round 27 A B C
  18. 亲手搭建一个基于Asp.Net WebApi的项目基础框架4
  19. HDU 4268 Alice and Bob 贪心STL O(nlogn)
  20. Strsafe.h:更安全的C语言字符串处理函数

热门文章

  1. PAT甲级——1006 Sign In and Sign Out
  2. springboot支付项目之日志配置
  3. COMET探索系列二【Ajax轮询复用模型】
  4. 将list转成tree
  5. python学习笔记(0)python基础概念
  6. GBDT的理解和总结
  7. hibernate主键(generator)生成方式
  8. 吴裕雄--天生自然 R语言开发学习:图形初阶
  9. Android开发之《USB Camera》
  10. AI能帮我们造出一个无肉的世界吗?