欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-07-06 11:27:21
"上一篇" 我们介绍了如何在Spring Boot中整合我们国人最常用的MyBatis来实现对关系型数据库的访问。但是上一篇中使用了注解方式来实现,而对于很多MyBatis老用户还是习惯于XML的开发方式,所以这篇,我们就来看看如何使用XML的方式来进行开发。 动手试试 本篇将不具体介绍整合MyBa ......

我们介绍了如何在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支持,您的关注是我坚持的动力!