1.通过maven创建springboot项目
首先访问 https://start.spring.io/ 快速生成项目(可以选择maven或者gradle)
点击 generate 下载压缩包,导入到IDE 如下图
添加controller到 包 com.example.ddd.controller
springboot 会扫描该包下的controller
最后启动主程序就可以启动这个springboot项目了
2.集成mybatis
参考文章: spring-boot 框架整合 MyBatis
2.1 将 MyBatis 加入 pom.xml 配置
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
注意这里不需要添加spring-mybatis这个包,mybatis-spring-boot-starter包含了
需要添加mysql来连接数据库(如果你用的是mysql)
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
2.2 application.yml
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
username: root
password:
server:
port: 8080
mybatis:
config-location: classpath:config/mybatis-config.xml
mapper-locations: classpath:mapper/*.xml
resources 目录结构(先按照这个目录结构来,因为要和配置扫描的代码路径对应)
|-resources
|--config
|---application.yml
|---mybatis-config.xml
|--mapper
|---CityMapper.xml
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<package name="com.example.demo"/>
</typeAliases>
</configuration>
2.3 具体逻辑代码
代码目录结构(也要先按照这个目录来,mybatis-config.xml和mapper目录下的xml配置文件都要对应找到相应的包)
|-com.example.demo
|--controller
|---HelloWorldController.java (控制器)
|--domain
|---City.java (实体类)
|--mapper
|---CityMapper.java (mybatis的mapper)
|--service
|---CityService.java (service 接口)
|---CityServiceImpl.java (service 实现)
|--DemoApplication.java (入口)
首先我们定义城市这个实体类:
public class City implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private Long provinceId;
private String cityName;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getProvinceId() {
return provinceId;
}
public void setProvinceId(Long provinceId) {
this.provinceId = provinceId;
}
public String getCityName() {
return cityName;
}
public void setCityName(String cityName) {
this.cityName = cityName;
}
@Override
public String toString() {
return "City{" +
"id=" + id +
", provinceId=" + provinceId +
", cityName='" + cityName + '\'' +
'}';
}
}
接着我们来定义mapper:
public interface CityMapper {
City findByProvinceId(Long provinceId);
List<City> findAll();
}
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 namespace="com.mybatis.mapper.CityMapper">
<resultMap id="BaseResultMap" type="com.mybatis.domain.City" >
<result column="province_id" property="provinceId" />
<result column="city_name" property="cityName" />
</resultMap>
<select id="findByProvinceId" resultMap="BaseResultMap">
select * from city where province_id = #{provinceId}
</select>
<select id="findAll" resultMap="BaseResultMap">
select * from city
</select>
</mapper>
最后定义 service 来处理咱们的业务:
public interface CityService {
City getByProvinceId(Long provinceId);
List<City> getAll();
}
@Service
public class CityServiceImpl implements CityService {
@Resource
private CityMapper cityMapper;
@Override
public City getByProvinceId(Long provinceId) {
return cityMapper.findByProvinceId(provinceId);
}
@Override
public List<City> getAll() {
return cityMapper.findAll();
}
}
在controller里面进行验证:
/**
* Created by Administrator on 2018/10/1.
*/
@RestController
public class HelloWorldController {
@Resource
private CityService cityService;
@GetMapping("/cities")
public List<City> cities () {
return cityService.getAll();
}
@GetMapping("/city/{provinceId}")
public City city(@PathVariable long provinceId) {
return cityService.getByProvinceId(provinceId);
}
}
主函数添加注解来寻找要扫面的mapper
@SpringBootApplication
@MapperScan("com.example.demo.mapper")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
2.4 mysql创建数据库表,命名为city
Ok,所有的工作都做完了,这下刷新maven,启动spring,大功告成!