Spring boot集成mybatis和MySQL实现基础服务
1、首先,需要准备好相关的数据库环境
如我准备的mysql数据库信息如下
1)创建数据库DB名:videoDB
mysql> create database videoDB;
2)数据库表: video_info
create table video_info(
id INT NOT NULL AUTO_INCREMENT,
fileName varchar(255) NOT NULL,
filePath varchar(255) ,
author varchar(128) ,
createDate datetime ,
PRIMARY KEY (id)
)ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

2、在Spring boot工程的配置文件application.properties中增加mysql的datasource配置
spring.datasource.url=jdbc:mysql://localhost:3306/videoDB
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

3、在工程中添加mybatis的库依赖mybatis-spring-boot-starter
mybatis-spring-boot-starter可以自动检测DataSource
-------------------------
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>

4、创建一个Video_info表的数据访问Mppper接口类:VideoInfoMapper.java
package image.dao;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@Mapper
public interface VideoInfoMapper {
@Select("select * from Video_info where id=#{id}")
VideoInfo findById(@Param("id") int id);
}

5、创建一个Service服务类:VideoService
package image.dao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service("videoService")
public class VideoService {
//自动绑定mapper
@Autowired
private VideoInfoMapper videoInfoMapper;
//查询数据
public VideoInfo getVideoInfo(int id)
{
return videoInfoMapper.findById(id);
}
}

6、创建一个VideoInfo数据访问服务的RESTful Web Service服务控制器类:VideoInfoController
package image;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import image.dao.VideoInfo;
import image.dao.VideoService;
@RestController
@RequestMapping("/video")
public class VideoInfoController {
final static Logger logger = LoggerFactory.getLogger(VideoInfoController.class);
@Autowired
private VideoService videoService;
@RequestMapping("/info/{id}")
public VideoInfo getVideoInfo(@PathVariable("id") int id)
{
return videoService.getVideoInfo(id);
}
}
7、启动Spring boot应用进行测试restful web serivce服务是否正常工作
restful api地址:{IP}:{端口}/video/info/{文件记录ID}
如:http://localhost:8080/video/info/1001
在浏览器中直接测试返回结果如下:
{"id":1001,"fileName":"top1-mm.mp4","filePath":"/img/top1-mm.mp4","fileSize":null,"createdDate":null,"author":"fantasy"}
