美文网首页我爱编程
springboot整合mybatis

springboot整合mybatis

作者: guanalex | 来源:发表于2018-05-27 19:11 被阅读125次

    相比spring和springmvc,springboot在两者中集合了相对强大的功能,提供了大量整合各种技术的方法,整合起来非常的便捷,接下来就是整合mybatis的实现过程。

    引入依赖POM文件

    <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.zxz.boot</groupId>
    <artifactId>springboot_mybatis</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.3.4.RELEASE</version>
    </parent>
    
    <dependencies>
        <!--Spring Boot-->
        <!--支持 Web 应用开发,包含 Tomcat 和 spring-mvc -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--模板引擎-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <!--支持使用 JDBC 访问数据库-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!--添加适用于生产环境的功能,如性能指标和监测等功能。 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!-- springboot的热部署 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>
        <!--Mybatis-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.2.8</version>
        </dependency>
        <!--Mysql / DataSource-->
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.26</version>
        </dependency>
        <!--Json Support-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.1.43</version>
        </dependency>
        <!--Swagger support-->
        <dependency>
            <groupId>com.mangofactory</groupId>
            <artifactId>swagger-springmvc</artifactId>
            <version>0.9.5</version>
        </dependency>
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>4.1.6</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
    </dependencies>
    
    <!-- 使用插件来运行springboot(运行springboot的方式有2种:main方法运行或使用下面的插件运行) -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
    
    <repositories>
        <repository>
            <id>spring-milestone</id>
            <url>https://repo.spring.io/libs-release</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-milestone</id>
            <url>https://repo.spring.io/libs-release</url>
        </pluginRepository>
    </pluginRepositories>
      </project>
    

    程序入口注解解析

    先介绍一下在入口类中需要用到的常用注解:
    @SpringBootApplication:这是一个组合注解,聚合了多个注解的功能,包含:排除自启动项、排除自启动项的beanname、扫描包和扫描类。
    @EnableAutoConfiguration:这个注解是用来启动springboot中的自动配置项目,必须的加上,否则无法正常使用springboot默认配置的配置项目。
    @ComponentScan :扫描controller层和service层中所有类上的注解(这个注解可以不加,因为组合注解@SpringBootApplication已经可以扫描)。
    @MapperScan("com.zxz.mapper") :管理mybatis中所有mapper接口的代理对象。
    @EnableTransactionManagement(proxyTargetClass = true):开启事务管理的注解。
    如:

     /**
     * 整个项目的入口
     */
    @SpringBootApplication        
    @EnableAutoConfiguration    
    @ComponentScan                
    @MapperScan("com.zxz.mapper")        
    @EnableTransactionManagement(proxyTargetClass = true)    
    public class Application {
    
    private  static Logger  logger = Logger.getLogger(Application.class);
    //启动类
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
        logger.info("======spring boot start success ===========");
        }
    }
    

    配置连接池

    首先得配置好连接数据库的一些参数,之前我们是通常配置在某资源文件中,然后通过spring的配置文件进行加载到的,这里我们也需要将连接参数配置到SpringBoot规定的文件application.properties中,最后在入口类中通过注解加载即可。
    application.properties配置内容:

    server.port=8080
    spring.datasource.url=jdbc:mysql://localhost:3306/zxz
    spring.datasource.username=root
    spring.datasource.password=123
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    logging.level.com.zxz.mapper=debug
    

    在入口类中通过注解加载:

    @Bean
     @ConfigurationProperties(prefix = "spring.datasource")    //作用:加载application.properties文件中    的数据库连接参数
    public DataSource dataSource(){
        return new DataSource();
    }
    

    事务管理器配置:

     //配置transactionManager
        @Bean
      public PlatformTransactionManager transactionManager() throws SQLException{
           return new DataSourceTransactionManager(druidDataSource());
       }
    

    配置mapper.xml文件的映射

    和mybatis的整合,免不了mapper.xml的加载和映射,springboot提供了专门的方式来加载它们,对于mapper.xml文件可以使用之前学习写好的,这里就不提供了。

      //提供sqlSession
    @Bean
    public SqlSessionFactory sqlSessionFactory(PageHelper pageHelper)throws Exception{
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(druidDataSource());
        sqlSessionFactoryBean.setPlugins(new Interceptor[] {pageHelper});
        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:/mybatis/*.xml"));
        return sqlSessionFactoryBean.getObject();
    }
    

    好了,到这里springboot整合mybatis就搞定了,虽然很多详细没有写,但起码知道代码是怎么整合实现的。

    相关文章

      网友评论

        本文标题:springboot整合mybatis

        本文链接:https://www.haomeiwen.com/subject/pnqijftx.html