"上一篇" 我們介紹瞭如何在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
目錄:
- Github:https://github.com/dyc87112/SpringBoot-Learning/
- Gitee:https://gitee.com/didispace/SpringBoot-Learning/
如果您覺得本文不錯,歡迎Star
支持,您的關註是我堅持的動力!