IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Spring-boot 与Mybatis集成, 附源码下载

    asuncool@gmail.com(yihaomen)发表于 2017-05-20 15:17:13
    love 0
    前面几天尝试了Spring-boot的基础东西,今天继续用Spring-boot集成Mybatis. spring-boot 给开发人员的整体印象是精简了许多配置,开发搭框架更简单了,使用也更简单,让开发者更专注于业务。不像以前用Spring MVC, 还是需要配置很多东西,当然 spring-boot 也是微服务的基础组成部分。废话少说了,今天完成与mybatis 的集成, 我仍然当做web工程来做。所以在Maven的pom.xml文件中,就能看出端倪来.


    1. POM.xml文件及依赖
    程序代码 程序代码

    <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/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.yihaomen</groupId>
      <artifactId>springboot-004-mybatis</artifactId>
      <packaging>jar</packaging>
      <version>0.0.1-SNAPSHOT</version>
      <name>springboot-004-mybatis Maven Webapp</name>
      <url>http://maven.apache.org</url>
      
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
             <!-- 指定一下jdk的版本 ,这里我们使用jdk 1.8 ,默认是1.6 -->
            <java.version>1.8</java.version>
        </properties>
        
         <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.5.2.RELEASE</version>
        </parent>
      
      <dependencies>  
      
       <!-- mysql 数据库驱动. -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.21</version>
        </dependency>

        <!--     
        spring-boot mybatis依赖:
         -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>
        
        <!-- web支持: 1、web mvc; 2、restful; 3、jackjson支持; 4、aop ........ -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- servlet 依赖. -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>  
        
        <!-- jstl -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>

        <!-- tomcat 的支持.-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.tomcat.embed</groupId>
                <artifactId>tomcat-embed-jasper</artifactId>
                <scope>provided</scope>
            </dependency>
      
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
      <build>
        <finalName>springboot-004-mybatis-xml</finalName>
      </build>
    </project>



    这里的重点就是引入mybatis 相关的jar, 注意查看pom.xml文件里的内容。

    2. 数据库链接配置文件 application.properties
    程序代码 程序代码

    ########################################################
    ###datasource -- mysql db driver.
    ########################################################
    spring.datasource.url = jdbc:mysql://localhost:3306/springboot
    spring.datasource.username = root
    spring.datasource.password =
    spring.datasource.driverClassName = com.mysql.jdbc.Driver
    spring.datasource.max-active=20
    spring.datasource.max-idle=8
    spring.datasource.min-idle=8
    spring.datasource.initial-size=10


    3. main方法及启动class
    程序代码 程序代码

    package com.yihaomen;

    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;


    @SpringBootApplication
    @MapperScan("com.yihaomen.*")//扫描:该包下相应的class,主要是MyBatis的持久化类.
    public class Application {

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


    这里要注意Mapperscan 这个注解,将会扫描配置的mybatis dao.
    程序代码 程序代码

    package com.yihaomen;

    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;


    @SpringBootApplication
    @MapperScan("com.yihaomen.*")//扫描:该包下相应的class,主要是MyBatis的持久化类.
    public class Application {

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



    至于其他地方service层,controller 层,我就不多说,与原来开发spring mvc差不了多少. 我也就不记载了。后面有源代码下载,所以可以直接看。

    现在可以直接运行,在浏览器上输入:
    1. http://localhost:8080/users/create   这是创建用户的rest 请求
    2. http://localhost:8080/users  这是查看所有用户的rest请求.




    *****补充,上面用的mybatis注解,另外还可以用xml配置方式*********
    另外新建一个工程,这个工程用来测试用xml注解方式来实现mybatis, 因为mybatis只有用xml配置方式才能完成强大的功能。 单纯注解只能完成简单的东西。在上面工程的基础上修改得并不多,应该说很少吧,
    1. 配置文件里增加 xml 文件路径
    2. 在dao文件中去掉注解@Select 等相关的东西.

    修改后的配置文件如下:
    程序代码 程序代码

    ########################################################
    ###datasource -- mysql db driver.
    ########################################################
    spring.datasource.url = jdbc:mysql://localhost:3306/springboot
    spring.datasource.username = root
    spring.datasource.password =
    spring.datasource.driverClassName = com.mysql.jdbc.Driver
    spring.datasource.max-active=20
    spring.datasource.max-idle=8
    spring.datasource.min-idle=8
    spring.datasource.initial-size=10

    # mybatis configurations
    mybatis.typeAliasesPackage=com.yihaomen.model
    mybatis.mapperLocations=classpath*:**/mappers/*.xml


    修改后的dao文件如下:
    程序代码 程序代码

    package com.yihaomen.dao;

    import java.util.List;

    import com.yihaomen.model.UserInfo;


    public interface UserInfoDao {
        
        public List<UserInfo> findAllUsers();
        
        public int addUserInfo(UserInfo userInfo);

    }



    然后运行Application 里的main方法,运行结果一样。但这是用xml配置方式实现的。 实际上,你也可以两种方式结合起来用,看个人喜好了。

    参考资料:1. http://blog.mybatis.org/p/products.html
                   2. http://www.mybatis.org/spring/

    本文程序源码下载:

    下载文件 spring-boot-mybatis sample
    下载文件 spring-boot-mybatis-xml demo


沪ICP备19023445号-2号
友情链接