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

前面几天尝试了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


除非申明,文章均为一号门原创,转载请注明本文地址,谢谢!
[本日志由 yihaomen 于 2017-05-20 03:21 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: spring-boot mybatis
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.