SpringBoot配置Mybatis的三种方式

仅供参考:
*第一种:新建一个maven工程,配置pom和application.properties文件在这里这是插入图片描述*springBootConfig:
在这里插入图片描述
springConfig:
在这里插入图片描述
springMvc:
在这里插入图片描述

pom.xml:`

4.0.0

<!-- 继承springboot -->
<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>1.5.2.RELEASE</version>
</parent>
<groupId>com.youzhong</groupId>
<artifactId>ssm-boot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>

<dependencies>
	<!-- 热部署 -->
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-devtools</artifactId>
		<optional>true</optional>
	</dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-web</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>
	<!-- jsp标签库 -->
	<dependency>
		<groupId>javax.servlet</groupId>
		<artifactId>jstl</artifactId>
	</dependency>
	<!-- springboot,mybatis 整合包 -->
	<dependency>
	    <groupId>org.mybatis.spring.boot</groupId>
	    <artifactId>mybatis-spring-boot-starter</artifactId>
	    <version>1.3.0</version>
	</dependency>
	<!-- mysql 驱动包 -->
	<dependency>
	    <groupId>mysql</groupId>
	    <artifactId>mysql-connector-java</artifactId>
	</dependency>	
</dependencies>
<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
		</plugin>
	</plugins>
</build>

`
application.properties文件:

server.port=9090
server.context-path=/
#rizhi
logging.file=D:/mylog/log.log
logging.level.org.springframework.web = DEBUG
##
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
# \u6570\u636E\u6E90\u914D\u7F6E
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/spring?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
# mybatis \u914D\u7F6E
#mybatis.config-location=classpath:mybatis/mybatis-config.xml
mybatis.mapper-locations=classpath:/mapper/*.xml

第二种:
1 创建maven,搭建springboot环境
2 在pom.xml文件中引入依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    
	<!-- mysql 驱动包 -->
	<dependency>
	    <groupId>mysql</groupId>
	    <artifactId>mysql-connector-java</artifactId>
	</dependency>
	
	<!-- 使用数据源 -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.0.14</version>
    </dependency>
	 <!-- mybatis -->
    <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>

3 创建jdbc.properties
##for mysql
jdbc.driver=com.mysql.jdbc.Driver
#jdbc.url=jdbc:mysql://60.220.247.94:3306/czsctest?useUnicode=true&characterEncoding=UTF-8
jdbc.jdbcUrl=jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=UTF-8
#jdbc.url=jdbc:mysql://60.220.247.94:3306/czsctest
jdbc.username=root
jdbc.password=root

4 创建JdbcConfig.java类,通过@ConfigurationProperties读取jdbc.properties属性信息

//前缀 + 属性名称 === 属性文件的key

@Component
@ConfigurationProperties(prefix="jdbc")
public class JdbcConfig {
	
	private String driver;//jdbc.driver=
	private String jdbcUrl;//jdbc.jdbcUrl=
	private String username;//jdbc.username
	private String password;//jdbc.password		
	。。。。
	
	}

5 创建datasource 配置类
@Configuration
public class DataSourceConfig {
@Autowired
private JdbcConfig jdbcConfig;
@Bean(“dataSource”)
public DruidDataSource buildDataSource(){
DruidDataSource dataSource = new DruidDataSource();

	dataSource.setUrl(jdbcConfig.getJdbcUrl());
	dataSource.setUsername(jdbcConfig.getUsername());
	dataSource.setDriverClassName(jdbcConfig.getDriver());
	dataSource.setPassword(jdbcConfig.getPassword());
	return dataSource;
}

}

6 创建mybaits的配置类
@Configuration
@PropertySource(“classpath:jdbc.properties”)
public class MybaitisConfig {
@Autowired
private DataSource dataSource;
//spring与mybaits整合
//1 配置datasoruce
//2 创建meybiats的sqlsessionfacory
//3 扫描mybats的接口mapper接口
@Bean(“sqlSessionFactory”)
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {

        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        // 设置数据源
        sqlSessionFactoryBean.setDataSource(dataSource);

        // 设置mybatis的主配置文件

// sqlSessionFactoryBean.setConfigLocation(new ClassPathResource(“mybatis/mybatis-config.xml”));

        ResourcePatternResolver  resolver = new PathMatchingResourcePatternResolver();
        
        Resource[] resources = resolver.getResources("classpath:/mapper/*.xml");
        
        sqlSessionFactoryBean.setMapperLocations(resources);

        // 设置别名包
        sqlSessionFactoryBean.setTypeAliasesPackage("com.light.springboot.domain");

        return sqlSessionFactoryBean.getObject();
    }
@Bean
public  MapperScannerConfigurer  buildMapperScannerConfigurer(){
	
	MapperScannerConfigurer config = new MapperScannerConfigurer();
	
	//设置扫描的mapper的接口包
	config.setBasePackage("com.yzit.plateform.dao");
	
	config.setSqlSessionFactoryBeanName("sqlSessionFactory");
	
	return config;
}

}

7 创建数据库以及表
8 mybaits代码生成mapper接口以及mapper.xml

9 创建service、接口以及实现类

10 创建controller
//@RestController == @controller +@responbody
@RestController
public class RoleController {
@Autowired
private RoleService roleService;

@RequestMapping("/role/v_list.do")
public List<Role> findAll(){
	return roleService.findAll();	
}

}
11 创建springmvc的配置

@Configuration
@ComponentScan({“com.yzit.plateform.controller”,“com.yzit.plateform.service”})
@MapperScan(value=“com.yzit.plateform.dao”)
public class SpringConfig {

}
12 创建springboot的启动类
@SpringBootApplication
public class SpringBootConfig {
public static void main(String[] args) {
SpringApplication.run(SpringBootConfig.class, args);
}
}
第三种:

1 创建maven,搭建springboot环境

2 在pom.xml文件中引入依赖

org.springframework.boot spring-boot-starter-aop org.springframework.boot spring-boot-starter-jdbc
	<!-- mysql 驱动包 -->
	<dependency>
	    <groupId>mysql</groupId>
	    <artifactId>mysql-connector-java</artifactId>
	</dependency>
	
	<!-- 使用数据源 -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.0.14</version>
    </dependency>
	 <!-- mybatis -->
    <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>

3 创建jdbc.properties
##for mysql
jdbc.driver=com.mysql.jdbc.Driver
#jdbc.url=jdbc:mysql://60.220.247.94:3306/czsctest?useUnicode=true&characterEncoding=UTF-8
jdbc.jdbcUrl=jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=UTF-8
#jdbc.url=jdbc:mysql://60.220.247.94:3306/czsctest
jdbc.username=root
jdbc.password=root
4 创建spring-mybagti的配置文件

<bean
	class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
	<property name="locations">
		<list>
			<value>classpath:jdbc.properties</value>
		</list>
	</property>
</bean>
<!-- 第一步骤 配置数据源 -->
<!-- 阿里 druid数据库连接池 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
	destroy-method="close">
	<!-- 数据库基本信息配置 -->
	<property name="driverClassName" value="${jdbc.driver}"></property>
	<property name="url" value="${jdbc.url}"></property>
	<property name="username" value="${jdbc.username}"></property>
	<property name="password" value="${jdbc.password}"></property>
	<property name="filters" value="${filters}" />
	<!-- 最大并发连接数 -->
	<property name="maxActive" value="${maxActive}" />
	<!-- 初始化连接数量 -->
	<property name="initialSize" value="${initialSize}" />
	<!-- 配置获取连接等待超时的时间 -->
	<property name="maxWait" value="${maxWait}" />
	<!-- 最小空闲连接数 -->
	<property name="minIdle" value="${minIdle}" />
	<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
	<property name="timeBetweenEvictionRunsMillis" value="${timeBetweenEvictionRunsMillis}" />
	<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
	<property name="minEvictableIdleTimeMillis" value="${minEvictableIdleTimeMillis}" />
	<property name="validationQuery" value="${validationQuery}" />
	<property name="testWhileIdle" value="${testWhileIdle}" />
	<property name="testOnBorrow" value="${testOnBorrow}" />
	<property name="testOnReturn" value="${testOnReturn}" />
	<property name="maxOpenPreparedStatements" value="${maxOpenPreparedStatements}" />
	<!-- 打开removeAbandoned功能 -->
	<property name="removeAbandoned" value="${removeAbandoned}" />
	<!-- 1800秒,也就是30分钟 -->
	<property name="removeAbandonedTimeout" value="${removeAbandonedTimeout}" />
	<!-- 关闭abanded连接时输出错误日志 -->
	<property name="logAbandoned" value="${logAbandoned}" />
</bean>

<!-- 数据源配置, 不使用连接池 -->
<!-- <bean id="dataSource"
	class="org.springframework.jdbc.datasource.DriverManagerDataSource">
	<property name="driverClassName" value="${jdbc.driver}" />
	<property name="url" value="${jdbc.url}" />
	<property name="username" value="${jdbc.username}" />
	<property name="password" value="${jdbc.password}" />
</bean> -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	<!--dataSource属性指定要用到的连接池 -->
	<property name="dataSource" ref="dataSource" />
	<!--configLocation属性指定mybatis的核心配置文件 -->
	<!-- <property name="configLocation" value="classpath:mybatis_config.xml" 
		/> -->
	<!-- 所有配置的mapper文件 -->
	<!-- <property name="mapperLocations" value="classpath*:com/yzit/plateform/mapper/*.xml" 
		/> -->
	<property name="mapperLocations">
		<list>
			<value>classpath*:/mapper/*Mapper.xml</value>
		</list>
	</property>
</bean>

<!-- mybatis扫描包,生成该接口的代理实现类,并交给spring管理 -->
<bean id="MapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
	<property name="basePackage" value="com.yzit.*.dao"></property>
</bean>

<!-- 事务控制 -->
<bean id="transactionManager"
	class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
	<property name="dataSource" ref="dataSource" />
</bean>

<!-- 使用annotation注解方式配置事务 -->

<!-- <tx:annotation-driven transaction-manager="transactionManager" /> -->

<!-- AOP配置事物 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
	<tx:attributes>
		<tx:method name="insert*" propagation="REQUIRED" read-only="false"
			rollback-for="java.lang.Exception" />
		<tx:method name="del*" propagation="REQUIRED" read-only="false"
			rollback-for="java.lang.Exception" />
		<tx:method name="update*" propagation="REQUIRED" read-only="false"
			rollback-for="java.lang.Exception" />
		<tx:method name="save*" propagation="REQUIRED" read-only="false"
			rollback-for="java.lang.Exception" />
		<tx:method name="batchDel*" propagation="REQUIRED"
			read-only="false" rollback-for="java.lang.Exception" />
		<tx:method name="*" propagation="NOT_SUPPORTED" read-only="true" />
	</tx:attributes>
</tx:advice>
<!-- 配置AOP切面 -->
<aop:config>
	<aop:pointcut id="pc"
		expression="execution(* com.yzit.*.service..*.*(..))" />
	<aop:advisor pointcut-ref="pc" advice-ref="txAdvice" />
</aop:config>

5 在springconfig配置类使用importresource注解加载步骤4创建spring-mybaits配置文件
@Configuration
@ComponentScan({“com.yzit.plateform.controller”,“com.yzit.plateform.service”})
@MapperScan(value=“com.yzit.plateform.dao”)
@ImportResource(value = { “classpath:spring-context-mybaits.xml” })
public class SpringConfig {

}

猜你喜欢

转载自blog.csdn.net/qq_43049310/article/details/85194551