springboot Mybatis基本数据源配置

第一步:pom文件添加依赖

		<!-- mybatis 相关依赖 -->
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>2.0.0</version>
		</dependency>
		<!--mysql数据库驱动-->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>
		<!--pagehelper  分页插件-->
		<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper-spring-boot-starter</artifactId>
			<version>RELEASE</version>
		</dependency>

第二步:配置文件配置数据源

############### 数据源配置 ########################
# com.mysql.jdbc.Driver是mysql-connector-java 5的版本,com.mysql.cj.jdbc.Driver是新版本使用的
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root

# 连接池配置
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
spring.datasource.maxWait=60000
#配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.timeBetweenEvictionRunsMillis=60000
#配置一个连接在池中最小生存的时间,单位是毫秒
spring.datasource.minEvictableIdleTimeMillis=300000
#用来检测连接是否有效
spring.datasource.validationQuery=SELECT 1
spring.datasource.testWhileIdle=true
#申请连接时执行validationQuery检测连接是否有效,开启了会降低性能
spring.datasource.testOnBorrow=false
#归还连接时执行validationQuery检测连接是否有效,开启了会降低性能
spring.datasource.testOnReturn=false
# 打开PSCache,并且指定每个连接上PSCache的大小
spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20  
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
spring.datasource.filters=stat,wall,log4j
#通过connectProperties属性来打开mergeSql功能;慢SQL记录
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

############# mybatis配置 #####################
# sql语句的xml文件和实体类所在路径
mybatis.mapper-locations=classpath:mybatis/mapper/**/*.xml
mybatis.type-aliases-package=com.zhh.**.domain.*

############# pagehelper分页插件配置 #############
pagehelper.helperDialect=mysql
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
#禁用合理化,如果pageNum<1或pageNum>pages(超过总数时)会返回空数据,不会循环返回最后一页#
pagehelper.reasonable=false

####打印sql
logging.level.org.springframework=WARN
logging.level.com.zhh=DEBUG

第三步:配置完成后演示

以users表为例编写简单的查询流程

3.1 userMapper.xml文件

路径:\src\main\resources\mybatis\mapper\user\UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhh.demo.webs.dao.UserDao">
  <resultMap id="BaseResultMap" type="com.zhh.demo.domain.User">
    <id column="id" jdbcType="INTEGER" property="id" />
    <result column="name" jdbcType="VARCHAR" property="userName" />
    <result column="age" jdbcType="INTEGER" property="age" />
  </resultMap>
  <!-- 简单查询语句 -->
    <select id="queryUserList"  resultMap="BaseResultMap">
        SELECT * FROM users
    </select>
</mapper>

3.2 dao层接口

package com.zhh.demo.webs.dao;
public interface UserDao {
   List<User> queryUserList();
}

3.3 启动类添加mapper扫描注解配置

// dao接口所在包路径
@MapperScan("com.zhh.**.dao")
@SpringBootApplication
public class DemoApplication {
	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}
}

调用dao类接口执行相应的操作

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
可以通过配置多个数据源来实现在Spring Boot中使用MyBatis数据源。以下是一种常见的配置方式: 1. 在`application.properties`文件中配置第一个数据源的连接信息: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/db1 spring.datasource.username=username1 spring.datasource.password=password1 spring.datasource.driver-class-name=com.mysql.jdbc.Driver ``` 2. 创建一个`DataSource`的Bean来管理第一个数据源: ```java @Configuration @MapperScan(basePackages = "com.example.db1.mapper", sqlSessionTemplateRef = "db1SqlSessionTemplate") public class DataSource1Config { @Primary @Bean(name = "db1DataSource") @ConfigurationProperties(prefix = "spring.datasource") public DataSource db1DataSource() { return DataSourceBuilder.create().build(); } @Primary @Bean(name = "db1SqlSessionFactory") public SqlSessionFactory db1SqlSessionFactory(@Qualifier("db1DataSource") DataSource dataSource) throws Exception { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(dataSource); return bean.getObject(); } @Primary @Bean(name = "db1SqlSessionTemplate") public SqlSessionTemplate db1SqlSessionTemplate(@Qualifier("db1SqlSessionFactory") SqlSessionFactory sqlSessionFactory) { return new SqlSessionTemplate(sqlSessionFactory); } } ``` 3. 在`application.properties`文件中配置第二个数据源的连接信息: ```properties spring.second-datasource.url=jdbc:mysql://localhost:3306/db2 spring.second-datasource.username=username2 spring.second-datasource.password=password2 spring.second-datasource.driver-class-name=com.mysql.jdbc.Driver ``` 4. 创建另一个`DataSource`的Bean来管理第二个数据源: ```java @Configuration @MapperScan(basePackages = "com.example.db2.mapper", sqlSessionTemplateRef = "db2SqlSessionTemplate") public class DataSource2Config { @Bean(name = "db2DataSource") @ConfigurationProperties(prefix = "spring.second-datasource") public DataSource db2DataSource() { return DataSourceBuilder.create().build(); } @Bean(name = "db2SqlSessionFactory") public SqlSessionFactory db2SqlSessionFactory(@Qualifier("db2DataSource") DataSource dataSource) throws Exception { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(dataSource); return bean.getObject(); } @Bean(name = "db2SqlSessionTemplate") public SqlSessionTemplate db2SqlSessionTemplate(@Qualifier("db2SqlSessionFactory") SqlSessionFactory sqlSessionFactory) { return new SqlSessionTemplate(sqlSessionFactory); } } ``` 这样就配置了两个数据源,分别对应两个不同的数据库。你可以根据自己的需求配置更多的数据源。在使用时,可以在具体的Mapper接口上使用`@Qualifier`注解指定要使用的数据源,例如: ```java @Mapper @Qualifier("db1SqlSessionTemplate") public interface UserMapper1 { // ... } @Mapper @Qualifier("db2SqlSessionTemplate") public interface UserMapper2 { // ... } ``` 这样就可以根据需要选择不同的数据源来执行对应的SQL操作了。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值