SpringBoot集成MyBatis

2018-10-09  本文已影响0人  两句挽联

SpringBoot现在作为一款极其流行的微服务框架,在众多的项目和场景下有着非常广泛的使用,最近就其集成MyBatis踩的一些坑,在这里面和大家说一下,避免后续继续入坑。

引用软件版本

见如下pom文件

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.5.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
    </dependencies>

项目结构

如下,我们最关注的是mapperxml和配置文件

项目结构

配置文件

springboot默认使用的配置文件是application.properties,里面需要配置mybatis相关使用的相关信息和数据库信息

#mybatis mapperxml location
mybatis.mapperLocations=classpath:com.mapper/*.xml
#must use spring.datasource prefix
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root

如上,mybatis.mapperLocations指明了使用到的mybatis配置文件地址,会自动扫描这个配置文件。下面是配置的一些数据源的信息,注意,这边默认读取的是以spring.datasource开头的配置

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.mapper.TTSMapper">
    <insert id="createTask" parameterType="com.po.TTSTask">
        <!-- use uuid as primary key-->
        <selectKey keyProperty="id" resultType="string" order="BEFORE">
            select uuid()
        </selectKey>
        insert into t_tts_task (id,text,creator,status,createTime) values
        (#{id},#{text},#{creator},#{status},#{createTime})
    </insert>
</mapper>

如上,是一个简单的配置,其中selectKey部分是用来自动生成随机数作为主键的配置。

mapper类

@Mapper
@Repository
public interface TTSMapper {

    int createTask(TTSTask task);
}

这边要注意的是@Mapper这个注解需要添加,否则无法使用@Autowired注入,另外,添加@Repository是为了防止idea工具提示错误。

感谢阅读!

上一篇下一篇

猜你喜欢

热点阅读