SpringBoot整合mybatis的mybatis-spring的配置方式


声明:本文转载自https://my.oschina.net/bianxin/blog/1602958,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

        我大概是15年初的时候,接触了SpringBoot,不过只开发了一个小项目,就没再使用过。时隔两年,SpringBoot变的热火朝天,我也不得不认真学习一下了,以下个人心得,愿对新手有所帮助。

        SpringBoot集成MyBatis有两种方式,一种简单的方式就是使用MyBatis官方提供的:
                  mybatis-spring-boot-starter
        另外一种方式也是我推荐的整合方式:                                                                                                     就是仍然用类似mybatis-spring的配置方式,这种方式需要自己写一些代码,但是可以很方便的控制MyBatis的各项配置。

①:在http://start.spring.io/,配置你的项目信息并下载,我的是《1.5.9.RELEASE》最初的应该如下图:
          

②:在POM文件中加,整合的最基础的包,包版本你们自己定

        <!-- 因为是web应用程序,aop.beans,web,mvc等都不再需要导入了,并自动完成组件配置 --> 		<dependency> 			<groupId>org.springframework.boot</groupId> 			<artifactId>spring-boot-starter-web</artifactId> 		</dependency> 		<dependency> 			<groupId>org.springframework.boot</groupId> 			<artifactId>spring-boot-starter-jdbc</artifactId> 		</dependency> 		<!-- Mybatis --> 		<dependency> 			<groupId>org.mybatis</groupId> 			<artifactId>mybatis</artifactId> 			<version>${mybatis.version}</version> 		</dependency> 		<dependency> 			<groupId>org.mybatis</groupId> 			<artifactId>mybatis-spring</artifactId> 			<version>${mybatis-spring.version}</version> 		</dependency> 		<dependency> 			<groupId>org.mybatis.caches</groupId> 			<artifactId>mybatis-ehcache</artifactId> 			<version>${mybatis-ehcache.version}</version> 		</dependency>  		<!-- MySql --> 		<dependency> 			<groupId>mysql</groupId> 			<artifactId>mysql-connector-java</artifactId> 		</dependency> 		<!-- 阿里 连接池 --> 		<dependency> 			<groupId>com.alibaba</groupId> 			<artifactId>druid</artifactId> 			<version>${druid.version}</version> 		</dependency>

我的包版本:

   <properties> 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 		<java.version>1.8</java.version> 		<mybatis.version>3.4.5</mybatis.version> 		<mybatis-spring.version>1.3.1</mybatis-spring.version> 		<mybatis-ehcache.version>1.1.0</mybatis-ehcache.version> 		<mysql-connector-java.version>5.1.45</mysql-connector-java.version> 		<druid.version>1.1.6</druid.version> 	</properties>

配置application.properties,很多人用的application.yml,但是我认为application.yml文件快速检索很麻烦,东西多了找一个元素很蛋疼,也许我还没领悟到yml的优势。所以我也还是用以前的.properties的配置文件,如下:

spring.datasource.driverClassName = com.mysql.jdbc.Driver spring.datasource.url = jdbc:mysql://192.168.1.206:3306/community?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&failOverReadOnly=false spring.datasource.username = root spring.datasource.password = 1234

重点来了,整合Mybatis,配置dataSoure,和sqlSessionFactory:

import javax.sql.DataSource; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.Resource; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.core.io.support.ResourcePatternResolver; import com.alibaba.druid.pool.DruidDataSource;  @Configuration public class MyBatisConfig { 	 	@Value("${spring.datasource.url}")     private String jdbcUrl;      @Value("${spring.datasource.driverClassName}")     private String jdbcDriverClassName;      @Value("${spring.datasource.username}")     private String jdbcUsername;      @Value("${spring.datasource.password}")     private String jdbcPassword;      @Bean(name = "dataSource",destroyMethod = "close")     public DataSource dataSource() {     	DruidDataSource datasource = new DruidDataSource();         // 数据库驱动     	datasource.setDriverClassName(jdbcDriverClassName);         // 相应驱动的jdbcUrl     	datasource.setUrl(jdbcUrl);         // 数据库的用户名     	datasource.setUsername(jdbcUsername);         // 数据库的密码     	datasource.setPassword(jdbcPassword);         // 每个分区最大的连接数     	datasource.setMaxActive(20);         // 每个分区最小的连接数     	datasource.setMinIdle(5);         return datasource;     } 	 	@Bean(name = "sqlSessionFactory") 	public SqlSessionFactory sqlSessionFactory(DataSource dataSource) { 		SqlSessionFactoryBean sqlSessionFactoryBean=new SqlSessionFactoryBean(); 		try { 			sqlSessionFactoryBean.setDataSource(dataSource); 	        // 设置别名包(实体类) 	        sqlSessionFactoryBean.setTypeAliasesPackage("com.xin.dream.pojo"); 			// 设置mybatis的主配置文件 	        ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); 	        //设置sql配置文件路径 	        sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath*:com/xin/dream/mapper/*.xml")); 	        //-- 加载mybatis的全局配置文件   	        Resource mybatisConfigXml = resolver.getResource("classpath:mybatis/mybatis-config.xml"); 	        sqlSessionFactoryBean.setConfigLocation(mybatisConfigXml); 	         			return sqlSessionFactoryBean.getObject(); 		} catch (Exception e) { 			// TODO Auto-generated catch block 			e.printStackTrace(); 			throw new RuntimeException(e); 		} 	} }

配置Mybatis的Mapper接口类的扫描:

import org.mybatis.spring.mapper.MapperScannerConfigurer; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;  /**  * @instructions 添加mybatis的mapper接口扫描  * @AutoConfigureAfter(MyBatisConfig.class) 很重要,必须在MyBatisConfig配置加载后加载  */ @Configuration @AutoConfigureAfter(MyBatisConfig.class)   public class MyBatisMapperScannerConfig { 	 	@Bean 	public MapperScannerConfigurer mapperScannerConfigurer() { 		MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer(); 		mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory"); 		mapperScannerConfigurer.setBasePackage("com.xin.dream.dao"); 		return mapperScannerConfigurer; 	} } 

到这就基本完成了,其实就是把以前的xml原封不动的改成java类的形式,把@Configuration看出一个xml文件就是了。加入你们自己的代码就ok了。

        中间:“com.xin.dream.pojo”                                    //实体类路径
                    "classpath*:com/xin/dream/mapper/*.xml"    //sql配置文件的路径
                    "classpath:mybatis/mybatis-config.xml"         //这个是mybatis全局配置文件路径
                    "com.xin.dream.dao"                                       //mybatis的mapper接口路径
        改成你们自己的就好。

到这就结束了,一直打结束,现在就要打;;;;;;;;;;;;;;;;;;

走你:hello world!!!

后面我会写SpringBoot的分页插件整合,多数据源事务整合。

与不用sqlsqlSessionFactory整合方式改用SqlSessionTemplate的配置方式,所以操作公用一个dao接口文件,先弄哪一个呢?

本文发表于2018年01月05日 16:32
(c)注:本文转载自https://my.oschina.net/bianxin/blog/1602958,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 1925 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1