1.添加相关maven文件
<dependencies>
<!--springboot mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
2.pom 中build 这个resources 需要加一下 不然idea 启动项目的时候不会将mapp.xml文件打进去
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<!--解决Intellij构建项目时,target/classes目录下不存在mapper.xml文件-->
<resources>
<resource>
<directory>${basedir}/src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>${basedir}/src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
3.application.properties添加相关配置
#mysql
spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/jiyu?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&serverTimezone=UTC
#这个serverTimezone=UTC 解决时区问题
spring.datasource.username = root
spring.datasource.password = 123456
#mybatis
mybatis.config-location=classpath:conf/mybatis-config.xml
mybatis.mapper-locations=classpath*:cn/mufeng/dal/*.mapper.xml
#指定了mybatis基础配置文件和实体类映射文件的地址
#下面的是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>
<typeAlias alias="Integer" type="java.lang.Integer" />
<typeAlias alias="Long" type="java.lang.Long" />
<typeAlias alias="HashMap" type="java.util.HashMap" />
<typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap" />
<typeAlias alias="ArrayList" type="java.util.ArrayList" />
<typeAlias alias="LinkedList" type="java.util.LinkedList" />
</typeAliases>
</configuration>
4.在启动类中添加对mapper包扫描@MapperScan
@SpringBootApplication
@MapperScan("cn.mufeng.dal")
public class SpringBootMybatisXmlApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootMybatisXmlApplication.class, args);
}
}
5.建一个实体类
public class VideoEntity implements Serializable {
private static final long serialVersionUID = 1L;
private String id;
private String videoName;
private String videoUrl;
public VideoEntity() {
super();
}
public VideoEntity(String videoName, String videoUrl) {
super();
this.videoUrl = videoUrl;
this.videoName = videoName;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getVideoName() {
return videoName;
}
public void setVideoName(String videoName) {
this.videoName = videoName;
}
public String getVideoUrl() {
return videoUrl;
}
public void setVideoUrl(String videoUrl) {
this.videoUrl = videoUrl;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "videoName " + this.videoName + ", videoUrl " + this.videoUrl ;
}
}
6.建一个mapper 接口 (dal层)
public interface VideoMapper {
List<VideoEntity> getAll();
VideoEntity getOne(Long id);
void insert(VideoEntity video);
void update(VideoEntity video);
void delete(Long id);
}
7.建一个xml(添加VideoMapper 的映射文件) 注意<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > 这个引用
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.mufeng.dal.VideoMapper">
<resultMap id="BaseResultMap" type="cn.mufeng.entity.VideoEntity">
</resultMap>
<sql id="Base_Column_List" >
id, videoName, videoUrl
</sql>
<select id="getAll" resultMap="BaseResultMap" >
SELECT
<include refid="Base_Column_List" />
FROM video
</select>
<select id="getOne" parameterType="java.lang.Long" resultMap="BaseResultMap" >
SELECT
<include refid="Base_Column_List" />
FROM video
WHERE id = #{id}
</select>
<insert id="insert" parameterType="cn.mufeng.entity.VideoEntity" >
<selectKey keyProperty="id" resultType="String" order="BEFORE">
select uuid()
</selectKey>
insert into video(id, videoName, videoUrl)
values(#{id},#{videoName},#{videoUrl})
</insert>
<update id="update" parameterType="cn.mufeng.entity.VideoEntity" >
UPDATE
video
SET
<if test="videoName != null and videoName != ''">userName = #{videoName},</if>
<if test="videoUrl != null">passWord = #{videoUrl}</if>
WHERE
id = #{id}
</update>
<delete id="delete" parameterType="java.lang.Long" >
DELETE FROM
video
WHERE
id = #{id}
</delete>
</mapper>
8.新加一个Controller
@RestController
public class VideoController {
@Autowired
private VideoMapper videoMapper;
@RequestMapping("/getVideos")
public List<VideoEntity> getVideos() {
List<VideoEntity> videos = videoMapper.getAll();
return videos;
}
@RequestMapping("/getVideo/{id}")
public VideoEntity getVideo(@PathVariable("id") Long id) {
VideoEntity video = videoMapper.getOne(id);
return video;
}
@RequestMapping("/add")
public void save(VideoEntity video) {
videoMapper.insert(video);
}
@RequestMapping(value = "update")
public void update(VideoEntity video) {
videoMapper.update(video);
}
@RequestMapping(value = "/delete/{id}")
public void delete(@PathVariable("id") Long id) {
videoMapper.delete(id);
}
}
9.我的sql
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for video
-- ----------------------------
DROP TABLE IF EXISTS `video`;
CREATE TABLE `video` (
`id` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键id',
`videoName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '名称',
`videoUrl` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '地址',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
-- ----------------------------
-- Records of video
-- ----------------------------
INSERT INTO `video` VALUES ('1', '测试url', 'https://cloud.video.taobao.com/play/u/2577498496/p/1/e/6/t/1/50016620184.mp4');
SET FOREIGN_KEY_CHECKS = 1;
10.启动项目访问url
http://localhost:8080/getVideos