隨着微服務的遍地開花,SpringBoot成了框架中的一顆耀眼明星。在還沒有接觸SpringBoot的一段時間內,一直認爲Spring已經是和輕量級的框架, 即使編程過程中需要配置的內容比較繁瑣,但也是使用一段時間後纔會有的感觸。就像ecplise的出現扼殺了netBeans,IDEA的出現也撼動了ecplise的霸主地位。新的事物或者方式方法出現體現了行業的活力,也使從業者能不斷注入新鮮的血液,更能適行業的發展。以下是學習的過程中,其實寫博客更像是一種學習筆記吧。
- Springboot經典入門——踏進去的第一腳(基本概念及入門案例)
- Springboot經典入門——刨根問底(起步依賴和自動配置原理分析)
- Springboot經典入門——配置文件解讀
- Springboot經典入門——整合mybatis和Junit
在學習了基礎的配置之後,下面就是真正的實戰整合技術,先來整合mybatis
一、新建項目
idea提供了Spring lnitiaizr來直接創建Springboot項目
1、新建項目
2、設置項目基本信息
3、選擇新建項目類型
4、選擇項目信息
5、完成
首次使用會下載maven的插件,修改maven中setting即可。
整合MyBatis
1、添加mybatis和數據庫驅動依賴,數據庫使用mysql
<!--mybatis起步依賴-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<!-- MySQL連接驅動 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
2、在\springboot_mybatis\src\main\resources\application.properties配置文件中配置數據庫信息
#DB Configuration:
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?
useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
3、建立數據庫表及數據
DROP TABLE IF EXISTS `city`;
CREATE TABLE `city` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
INSERT INTO `city` VALUES ('1', 'beijing');
INSERT INTO `city` VALUES ('2', 'shanghai');
4、編寫MyBatis映射bean,Mapper映射文件及方法接口
bean
/**
* 城市信息bean
*/
public class City {
//ID
private Integer id;
//名稱
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
編寫Mapper接口:CityMapper
package com.test.mapper;
import com.test.bean.City;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface CityMapper {
public List<City> queryAllCity();
}
Mapper映射文件;CityMapper.xml
<?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接口路徑-->
<maper namespace="com.test.mapper.CityMapper">
<!--id表示接口中的方法,resultType表示接收數據格式-->
<select id="queryAllCity" resultType="city">
select * from city
</select>
</mapper>
5、SpringBoot關聯MyBatis :在\springboot_mybatis\src\main\resources\application.properties集成MyBatis配置
#映射bean別名掃描包
mybatis.type-aliases-package=com.test.bean
#加載Mybatis映射文件
mybatis.mapper-locations=classpath:mapper/*Mapper.xml
6、編寫測試類
import java.util.List;
@Controller
public class CityQueryController {
@Autowired
private CityMapper cityMapper;
@RequestMapping("queryCity")
@ResponseBody
public List<City> queryAllCity(){
List<City> cities = cityMapper.queryAllCity();
return cities;
}
}
結果:
整合Junit
1、添加啓動依賴
<!--web的啓動依賴測試-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
2、編寫測試類:代碼很簡單,着重注意幾個註解。
package com.test;
import com.test.bean.City;
import com.test.mapper.CityMapper;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringbootMybatisApplication.class)
public class SpringbootMybatisApplicationTests {
@Autowired
private CityMapper cityMapper;
@Test
public void test(){
List<City> cities = cityMapper.queryAllCity();
for (int i = 0; i < cities.size(); i++) {
System.out.println(cities.get(i).getId()+"="+cities.get(i).getName());
}
}
}
3、運行結果: