上一篇我們介紹了如何在Spring Boot中整合我們最常用的MyBatis來實現(xiàn)對關(guān)系型數(shù)據(jù)庫的訪問。但是上一篇中使用了注解方式來實現(xiàn),而對于很多MyBatis老用戶還是習慣于XML的開發(fā)方式,所以這篇,我們就來看看如何使用XML的方式來進行開發(fā)。
動手試試
本篇將不具體介紹整合MyBatis的基礎(chǔ)內(nèi)容,需要了解的朋友可以閱讀上一篇:使用MyBatis訪問MySQL來了解該部分內(nèi)容。
下面的實操部分將基于上一篇的例子之后進行,基礎(chǔ)工程可通過文末倉庫中的chapter3-5
目錄獲取。
第一步:在應(yīng)用主類中增加mapper的掃描包配置:
@MapperScan("com.didispace.chapter36.mapper")
@SpringBootApplication
public class Chapter36Application {
public static void main(String[] args) {
SpringApplication.run(Chapter36Application.class, args);
}
}
第二步:在第一步中指定的Mapper包下創(chuàng)建User表的Mapper定義:
public interface UserMapper {
User findByName(@Param("name") String name);
int insert(@Param("name") String name, @Param("age") Integer age);
}
第三步:在配置文件中通過mybatis.mapper-locations參數(shù)指定xml配置的位置:
mybatis.mapper-locations=classpath:mapper/*.xml
第四步:在第三步中指定的xml配置目錄下創(chuàng)建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的配置方式了,為了驗證是否運行正常,可以通過下面的單元測試來嘗試對數(shù)據(jù)庫的寫和讀操作:
@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());
}
}
注:本文轉(zhuǎn)載自“程序猿DD”,如有侵權(quán),請聯(lián)系刪除!