SpringBoot使用mybatis

#加载mybatis依赖java

<!-- mysql -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.32</version>
    </dependency>

    <!-- mybatis -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>${spring.mybatis.version}</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-autoconfigure</artifactId>
        <version>${spring.mybatis.version}</version>
    </dependency>

#建立一个公共的组件依赖类 建立一个组件公共类ModuleConfig,说一下为何建立这个类,若是你的项目须要分包,分模块,分工程最终进行组合依赖的话,这个公共组件能够在每一个包下建一个,进行管理指定包、项目的依赖已经未来可能的扩展mysql

固然若是你的项目只是一个Web业务 没有我说的分布式、分包、分模块这个类能够不用建,该类中的注解均可以在启动类上来写,效果同样的。web

下段代码就是该类的所有,简单说一下,@Configuration 进行配置注册,@MapperScan这个是告知你的Mapper类是在哪一个位置的,这样设定以后,就不须要在每一个Mapper类上加注解@Mapper了,能够看一下【其余代码中的Mapper】spring

@Configuration
@MapperScan("com.dengzy.kuj.mybatis.dao")
public class ModuleConfig {
	
}

#其余的代码sql

启动类:@EnableTransactionManagement开启事务管理apache

@SpringBootApplication
@EnableTransactionManagement
public class FwApplication {

    public static void main(String[] args) {
        SpringApplication.run(FwApplication.class);
    }

}

Mapper类缓存

@Repository("userMapper")
public interface UserMapper {

    int deleteByPrimaryKey(Long id);

    int insert(User record);

    int insertSelective(User record);

    User selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(User record);

    int updateByPrimaryKey(User record);
}

Service及其实体类就此忽略.....tomcat

#配置文件springboot

其实这个mybatis的配置文件默承认以,若是你须要根据业务和需求进行调整mybatis那么能够以下配置:mybatis

#application.yml配置文件
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&autoReconnect=true&characterEncoding=utf8
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
    tomcat:
      minIdle: 5
      maxActive: 20
      initialSize: 5
      timeBetweenEvictionRunsMillis: 60000
      minEvictableIdleTimeMillis: 300000
      validationQuery: SELECT 1
      testWhileIdle: true
      testOnBorrow: false
      testOnReturn: false

#mybatis的优化配置等等,若是你不须要去掉也能够
mybatis:
  config-location: classpath:META-INF\mybatis-config.xml

下面这个是mybatis的配置文件信息,基本没有用什么东西,算是一个记录,须要的你们能够根据需求来。

<?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>
	<settings>
		<!-- 全局映射器启用缓存 -->
		<setting name="cacheEnabled" value="false"/>
		<!-- 查询时,关闭关联对象即时加载以提升性能 -->
		<!--<setting name="lazyLoadingEnabled" value="true"/>-->
		<!--&lt;!&ndash; 设置关联对象加载的形态,此处为按需加载字段(加载字段由SQL指定),不会加载关联表的全部字段,以提升性能 &ndash;&gt;-->
		<!--<setting name="aggressiveLazyLoading" value="false"/>-->
		<!--&lt;!&ndash; 对于未知的SQL查询,容许返回不一样的结果集以达到通用的效果 &ndash;&gt;-->
		<!--<setting name="multipleResultSetsEnabled" value="true"/>-->
		<!--&lt;!&ndash; 容许使用列标签代替列名 &ndash;&gt;-->
		<!--<setting name="useColumnLabel" value="true"/>-->
		<!--&lt;!&ndash; 容许使用自定义的主键值(好比由程序生成的UUID 32位编码做为键值),数据表的PK生成策略将被覆盖 &ndash;&gt;-->
		<!--<setting name="useGeneratedKeys" value="true"/>-->
		<!--&lt;!&ndash; 给予被嵌套的resultMap以字段-属性的映射支持 &ndash;&gt;-->
		<!--<setting name="autoMappingBehavior" value="FULL"/>-->
	</settings>
		
</configuration>

访问一下,证实我成功了(单元测试我也有,我准备是单元测试单独写一篇,这个就用了)

输入图片说明

项目结果以下图

输入图片说明

#关于IDEA工具不编译src目录下的xml问题

最新的Idea工具不会把src目录下的xml看成源码编译,这样就致使dao里面的Mapper与对应的xml对应不上,此处有两种方式,

一种是把xml放到resource下,创建一个目录好比mapper,放进去,而后在配置文件中配置以下

#mybatis
    mybatis:
        config-location: classpath:META-INF\mybatis-config.xml
        mapper-locations: classpath:mapper/*.xml #指定mapper.xml位置

另外一种就是用maven的插件,在pom.xml中代码有注释,在<bulid>中添加以下代码

<resources>
            <!-- 解决IDEA不编译src下的xml问题 -->
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
  </resources>

#完整的pom.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.dengzy.kuj</groupId>
    <artifactId>springboot-mybaties</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!-- 公共配置信息 -->
    <properties>
        <springframework.version>4.3.3.RELEASE</springframework.version>
        <spring.boot.version>1.4.3.RELEASE</spring.boot.version>
        <spring.mybatis.version>1.1.1</spring.mybatis.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

    <!-- 依赖包管理 -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring.boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <!-- Spring Boot核心依赖包 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- 单元测试 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>

        <!-- mysql -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.32</version>
        </dependency>

        <!-- mybatis -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>${spring.mybatis.version}</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-autoconfigure</artifactId>
            <version>${spring.mybatis.version}</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring.boot.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>springloaded</artifactId>
                        <version>1.2.2.RELEASE</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
        <resources>
            <!-- 解决IDEA不编译src下的xml问题 -->
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                    <include>**/*.properties</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.yml</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>

</project>
相关文章
相关标签/搜索