zoukankan      html  css  js  c++  java
  • Spring Boot 2.x基础教程:使用MyBatis的XML配置方式

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

  • 相关阅读:
    mybatis逆向工程
    fastdfs搭建和使用
    solr学习笔记
    自己搭建anki服务器
    redis总结
    java基础——队列
    遍历文件夹下的文件,并且获取文件名字
    xls到xml
    xls文件导入数据库
    PyCharm怎样添加Qt designer
  • 原文地址:https://www.cnblogs.com/didispace/p/12451511.html
Copyright © 2011-2022 走看看