300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Spring Boot 2.x基础教程:使用MyBatis的XML配置方式

Spring Boot 2.x基础教程:使用MyBatis的XML配置方式

时间:2024-02-16 20:37:00

相关推荐

Spring Boot 2.x基础教程:使用MyBatis的XML配置方式

点击上方蓝色“程序猿DD”,选择“设为星标”

回复“资源”获取独家整理的学习资料!

作者 | 翟永超

来源 |/spring-boot-learning-21-3-6/

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

动手试试

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

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

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

@MapperScan("com.didispace.chapter36.mapper")@SpringBootApplicationpublic 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 mapperPUBLIC "-////DTD Mapper 3.0//EN""/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@Transactionalpublic class Chapter36ApplicationTests {@Autowiredprivate UserMapper userMapper;@Test@Rollbackpublic void test() throws Exception {userMapper.insert("AAA", 20);User u = userMapper.findByName("AAA");Assert.assertEquals(20, u.getAge().intValue());}}

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

更多本系列免费教程连载:

/spring-boot-learning-2x/

代码示例

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

Github:/dyc87112/SpringBoot-Learning/

Gitee:/didispace/SpringBoot-Learning/

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

关注我,回复“加群”加入微信讨论群

GitHub上最牛逼的10个"Star收割机"

面试:5 亿整数的大文件,来排个序?

最新 JVM 生态报告

收藏 | 这100+个免费API,免了自己去爬的烦恼!

真实版删库跑路,宕机36小时市值蒸发9亿!

扫一扫,关注我

一起学习,一起进步

不开赞赏,在看=支持

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。