Spring Boot 整合Mybaits

6 篇文章 0 订阅
2 篇文章 0 订阅

Spring Boot 集成Mybaits 有两种方式,一是Spring Boot整合包实现的(MyBatis-Spring-Boot-Starter),另一种是自定义实现的 个人比较喜欢使用自定实现的方式,因为可以控制Mybaits的各种配置

第一种方式

1.目录

2.pom.xml依赖

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
    <mybatis-spring-boot.version>1.2.0</mybatis-spring-boot.version>
    <mysql-connector.version>5.1.39</mysql-connector.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>${mybatis-spring-boot.version}</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${mysql-connector.version}</version>
    </dependency>
</dependencies>	
  	<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>utf-8</encoding>
                </configuration>
            </plugin>
            
        </plugins>
    </build>

3.application.properties文件的配置

spring.servlet-path=*.do
server.port=8088

spring.mvc.view.prefix=/page/
spring.mvc.view.suffix=.jsp

spring.datasource.url=数据库地址
spring.datasource.username=数据库账号
spring.datasource.password=数据库密码
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#扫描的实体bean
mybatis.typeAliasesPackage=com.springboot.dome.bean
#mapper.xml的位置
mybatis.mapperLocations=classpath:mapper/*.xml

4.Spring Boot 的 Application 启动类

@MapperScan("com.springboot.dome.dao")//DAO接口路径
@SpringBootApplication
public class HelloApplication {
	public static void main(String[] args) {
		SpringApplication.run(HelloApplication.class, args);
	}
}

 

二、第二种方式

1.目录和前面一样

2.pom.xml依赖

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
    <mybatis-spring-boot.version>1.2.0</mybatis-spring-boot.version>
    <mysql-connector.version>5.1.39</mysql-connector.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>${mybatis-spring-boot.version}</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${mysql-connector.version}</version>
    </dependency>
    <dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.2.8</version>
		</dependency>
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>1.2.2</version>
		</dependency>
</dependencies>	
  	<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>utf-8</encoding>
                </configuration>
            </plugin>
            
        </plugins>
    </build>

3.数据源配置

@Configuration
@ComponentScan("com.springboot.dome.service")
@PropertySource(value={"classpath:jdbc.properties"})
public class DataSourceConfig {
	@Value("${c3p0.driverClass}")
	private String driverClass;
	@Value("${c3p0.jdbcUrl}")
	private String jdbcUrl;
	@Value("${c3p0.user}")
	private String user;
	@Value("${c3p0.password}")
	private String password;
	
	@Bean
	public DataSource dataSource(){
		try {
			ComboPooledDataSource dataSource = new ComboPooledDataSource();
			dataSource.setDriverClass(driverClass);
			dataSource.setJdbcUrl(jdbcUrl);
			dataSource.setUser(user);
			dataSource.setPassword(password);
			dataSource.setMaxPoolSize(30);
			dataSource.setMinPoolSize(20);
			dataSource.setAutoCommitOnClose(false);
			dataSource.setCheckoutTimeout(2000);
			dataSource.setAcquireIncrement(2);
			return dataSource;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
	
}

4.Mybaits配置

package com.springboot.dome.mybait;

import javax.sql.DataSource;

import org.mybatis.spring.SqlSessionFactoryBean;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
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;

@Configuration
@AutoConfigureAfter(DataSourceConfig.class) //保证在MyBatisConfig实例化之后再实例化该类
public class MyBatisConfig {

	@Bean
	@ConditionalOnMissingBean
	public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){
		try {
			SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
			sessionFactoryBean.setDataSource(dataSource);
			
			ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
	        Resource mybatisConfigXml = resolver.getResource("classpath:mybait-config.xml");
			sessionFactoryBean.setConfigLocation(mybatisConfigXml);
			
			sessionFactoryBean.setTypeAliasesPackage("com.springboot.dome.bean");
			Resource[] mapperConfigXml = resolver.getResources("classpath:mapper1/*.xml");
			sessionFactoryBean.setMapperLocations(mapperConfigXml);
			System.out.println("aaa");
			return sessionFactoryBean;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
}

5. Mapper 配置

@Configuration
@AutoConfigureAfter(MyBatisConfig.class) //保证在MyBatisConfig实例化之后再实例化该类
public class MapperScannerConfig {

	// mapper接口的扫描器
    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer() {
        MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
        mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactoryBean");
        mapperScannerConfigurer.setBasePackage("com.springboot.dome.dao");
        System.out.println("bbb");
        return mapperScannerConfigurer;
    }
}

6.Spring Boot 的 Application 启动类

@SpringBootApplication
public class HelloApplication {

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

注:这边具体的DAO实现方法、业务层方法以及控制层方法就不写了,相信对于熟悉Spring SpringMVC Mybaits的你应该是轻而易举的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值