spring与各种数据库连接配置及驱动
4. MySQL
vbean id="dataSource" class="mons.dbcp.BasicDataSource" Destroy-method="close">
vproperty name="driverClassName" value="com.mysql.jdbc.Driver" />
vproperty name="url" value="jdbc:mysql:〃localhost:3309/sampledb"/> vpropertyname="username" value="test"/> vproperty name="password" value="test"/> v/bean>
Spring
1. Oracle
vbean id="dataSource" class="mons.dbcp.BasicDataSourcei" destroy-method="close">
vproperty name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/> vproperty name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" /> vproperty name="username" value="test"/>
vproperty name="password" value="test"/> v/bean>
value="jdbc:Microsoft:sqlserver:〃localhost:1433;DatabaseName=testDB"/> vproperty name="username" value="test" /> vproperty name="password" value="test" />
5. HSQLDB
vbean id="dataSource" class="mons.dbcp.BasicDataSource" Destroy-method="close">
vproperty name="driverClassName" value="org.hsqldb.jdbcDriver"/> vproperty name="url" value="jdbc:hsqldb:hsql:〃localhost:9902"/> vproperty name="username" value="test"/>
vproperty name="password" value="test"/>
v/bean>
2. DB2
vbeanቤተ መጻሕፍቲ ባይዱid="dataSource" class="mons.dbcpBasicDataSource" Destroy-method="close">
vproperty name="driverClassName" value="com.ibm.db2.app.DB2Driver"/> vproperty name="url" value="jdbc:db2//localhost:5000/testDB"/> vproperty name="username" value="test"/>
vproperty name="password" value="test"/>
v/bean>
3. SQL Server
vbean id="dataSource" class="mons.dbcp.BasicDataSource"
Destroy-method="close"> vproperty name="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/> vproperty name="url"
Springboot+SpringCloud实战(微课版)06-第六章
Springboot整合JPA
② 在application.yml文件中配置数据源信息和JPA信息,其中JPA配置中的hibernate配置 ddl-auto: update表示会根据@Entity实体类自动更新数据库表的结构,如程序清单6-21所 示。
① 在pom.xml文件中添加Druid依赖。 ② 在application.yml文件中通过type属性配置使用的数据源为DruidDataSource
SpringBoot整合数据源
SpringBoot整合数据源
③ 创建一个配置类DataSourceConfig并添加@Configuration注解,使用@Bean注解在Spring容 器中创建一个DataSource Bean 进行管理,如程序清单6-10所示。
SpringBoot整合数据源
2.添加配置 数据源相关配置可以在核心配置文件application.properties中配置(如程序清单6-2所示),也可以 在application.yml文件中配置(如程序清单6-3所示)。
SpringBoot整合数据源
补充说明:数据源的driverClassName 会根据mysql-connector-java依赖的版本而变化,在mysqlconnector-java 5中driverClassName 为com.mysql.jdbc.Driver,而在mysql-connectorjava 6及以上版本中driverClassName 为com.mysql.cj.jdbc.Driver,并且要求在url中需要配置 serverTimezone(时区信息),serverTimezone可配置UTC、Asia/Shanghai等。配置完以上信息 之后,我们就可以在代码中使用默认的数据源进行数据库的相关操作。
spring的DriverManagerDataSource与apache的BasicDataSource
spring的DriverManagerDataSource与apache的BasicDataSource(转)情况是这样的。
2008-3-18 1:08:26 org.apache.tomcat.util.threads.ThreadPool logFull严重: All threads (150) are currently busy, waiting. Increase maxThreads (150) or check the servlet status重新启动服务器之后,问题依然存在。
分析得出以下可能情况1.连接数达到了150的最大上限2.服务器端响应用户请求的时间过长导致3.连接池的配置数出了问题分析:1.1个用户访问是OK的,当用2个用户对localhost进行访问,所以根本不可能达到并发访问线程的150的上限,所以应该不是数据库的原因,排除了第一种可能2.之前访问的JSP已经经过多次访问,所以不可能是第一次访问编译,运行而导致的请求时间过长的原因,第二情况也否定。
到此,经过分析可以确定的是连接池出了问题...首先有2个知识点需要再弄的更清楚一些DriverManager与DataSource 连接数据库有何区别?DriverManager传统的jdbc连接,通过Class.forName("XXX"),的办法注册之后,就可以DriverManager.getConnection()获得连接了。
DataSource是建立在JNDI服务基础上的,需要application server配置datasource.首先需要注册一个DataSource(一般在/META-INF/context.xml下)然后在web.xml文件中引用这个DataSource,就可以DataSource.getConnection()获得连接,具体操作参考(tomcat 目录里的JNDI Resources小节)DataSource 与DBCP pool(连接池) 的区别?J2EE 服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。
jdbc数据库连接的基本参数
JDBC数据库连接的基本参数1. 什么是JDBC?Java Database Connectivity(JDBC)是一种用于在Java应用程序和数据库之间建立连接的API。
它允许开发人员使用标准的SQL语句来访问和操作数据库。
JDBC提供了一种通用的方式来连接各种类型的数据库,包括关系型数据库(如MySQL、Oracle、SQL Server等)和非关系型数据库(如MongoDB、Redis等)。
2. JDBC连接的基本参数在使用JDBC连接数据库时,需要指定一些基本参数。
以下是常用的JDBC连接参数:•URL:表示要连接的数据库的地址。
不同类型的数据库有不同格式的URL,例如MySQL的URL格式为jdbc:mysql://hostname:port/database,其中hostname为主机名,port为端口号,database为要连接的数据库名称。
•Driver Class:表示要使用的驱动程序类名。
每个数据库供应商都提供了自己特定类型数据库驱动程序类。
•Username:表示要登录到数据库时使用的用户名。
•Password:表示要登录到数据库时使用的密码。
3. JDBC连接示例下面是一个使用JDBC连接MySQL数据库的示例:import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class JdbcExample {public static void main(String[] args) {String url = "jdbc:mysql://localhost:3306/mydatabase";String username = "root";String password = "password";try {// 加载MySQL驱动程序Class.forName("com.mysql.jdbc.Driver");// 建立数据库连接Connection connection = DriverManager.getConnection(url, username,password);// 执行SQL查询或更新操作// 关闭数据库连接connection.close();} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}}}在上面的示例中,我们首先加载MySQL驱动程序,然后使用DriverManager.getConnection()方法来建立与数据库的连接。
springdata+redis配置详解
springdata+redis配置详解springdata设计初衷是位简化数据类型和数据的持久化存储,它并不局限是关系型数据库还是nosql数据库,都提供了简化的数据库连接,让数据获取变得更加的简单。
所有这些的实现有统⼀的api提供。
本⽂主要设置spring-data-redis的相关配置特性:1.RedisTemplate:⾼度封装的,⾃动连接池管理类;2.对数据类型进⾏了归类,封装了操作接⼝类: a) ValueOperations:key-value操作 b) setOperations:set的相关操作 c) ZsetOperations: d) HashOperations:hash数据类型操作 e) ListOperations:list数据类型操作3.对事务进⾏封装,通过容器进⾏控制。
4.序列化机制,提供各种序列化策略选择。
集成配置详解: 1.提供简单封装保存查询操作接⼝,以及实现类。
1public interface RedisCommand {23public void save(String key,String value);45public String get(String key);67public <T> T getObject(String key,Class<T> clazz);89 }View Code1 @Service2public class RedisHandle implements RedisCommand {34 @Autowired5protected RedisTemplate<String, String> redisTemplate;67 @Override8public void save(final String key, final String value) {9 redisTemplate.execute(new RedisCallback<Object>() {10 @Override11public Object doInRedis(RedisConnection connection)12throws DataAccessException {13 connection.set(14 redisTemplate.getStringSerializer().serialize(15 "user.uid." + key), redisTemplate16 .getStringSerializer().serialize(value));17return null;18 }19 });20 }2122 @Override23public String get(final String key) {24return redisTemplate.execute(new RedisCallback<String>() {25 @Override26public String doInRedis(RedisConnection connection)27throws DataAccessException {28byte[] keys = redisTemplate.getStringSerializer().serialize(29 "user.uid." + key);30if (connection.exists(keys)) {31byte[] value = connection.get(keys);32 String name = redisTemplate.getStringSerializer()33 .deserialize(value);34return name;35 }36return null;37 }38 });39 }4041 @Override42public <T> T getObject(String key, Class<T> clazz) {43// TODO Auto-generated method stub44return null;45 }464748 }View Code 2.业务逻辑类1 @Service(value="userRedis")2public class UserRedisImpl implements UserRedis{34 @Autowired5protected RedisHandle handler;67 @Override8public void saveUser(final User user) {9 handler.save(user.getId()+"", JSONObject.toJSONString(user));10 }1112 @Override13public User getUser(final long id) {14 String value =handler.get(id+"");15 User u= JSONObject.parseObject(value, User.class);16return u;17 }18 }View Code 3.测试类:1public class TestUseRedis {23 @SuppressWarnings("resource")4public static void main(String[] args) {5 ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:/spring-redis.xml");6 UserRedis userDAO = (UserRedis)ac.getBean("userRedis");7 System.out.println("userDao"+JSONObject.toJSONString(userDAO));8 User user1 = new User();9 user1.setId(4);10 user1.setName("oba2sssss220a");11 userDAO.saveUser(user1);12 User user2 = userDAO.getUser(2);13 System.out.println(user2.getName());14 }15 }View Code 4.配置⽂件相关:spring-redis:1 <?xml version="1.0" encoding="UTF-8"?>2 <beans xmlns="/schema/beans"3 xmlns:xsi="/2001/XMLSchema-instance" xmlns:p="/schema/p"4 xmlns:context="/schema/context"5 xmlns:jee="/schema/jee" xmlns:tx="/schema/tx"6 xmlns:aop="/schema/aop"7 xsi:schemaLocation="8 /schema/beans /schema/beans/spring-beans.xsd9 /schema/context /schema/context/spring-context.xsd"> 1011 <context:property-placeholder location="classpath:redis.properties" />12 <context:component-scan base-package="com.hoo.report.web.service">13 </context:component-scan>14 <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">15 <property name="maxIdle" value="${redis.maxIdle}" />16 <property name="maxActive" value="${redis.maxActive}" />17 <property name="maxWait" value="${redis.maxWait}" />18 <property name="testOnBorrow" value="${redis.testOnBorrow}" />19 </bean>2021 <bean id="connectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"22 p:host-name="${redis.host}" p:port="${redis.port}" p:password="${redis.pass}" p:pool-config-ref="poolConfig"/> 2324 <bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">25 <property name="connectionFactory" ref="connectionFactory" />26 </bean>2728 </beans>View Codepom引⽤:1 <!-- spring data -->2 <dependency>3 <groupId>org.springframework.data</groupId>4 <artifactId>spring-data-redis</artifactId>5 <version>1.0.2.RELEASE</version>6 </dependency>78 <dependency>9 <groupId>redis.clients</groupId>10 <artifactId>jedis</artifactId>11 <version>2.1.0</version>12 </dependency>View Coderedis.properties:1 redis.host=127.0.0.12 redis.port=63793 redis.pass=45 redis.maxIdle=3006 redis.maxActive=6007 redis.maxWait=10008 redis.testOnBorrow=trueView Code。
《Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)》_课后习题
第一章【思考题】1、请简述Spring框架的优点。
2、请简述什么是Spring的IoC和DI。
【答案】1、Spring框架的优点如下:(1)非侵入式设计:Spring是一种非侵入式(non-invasive)框架,它可以使应用程序代码对框架的依赖最小化。
(2)方便解耦、简化开发:Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护工作都交给Spring容器管理,大大的降低了组件之间的耦合性。
(3)支持AOP:Spring提供了对AOP的支持,它允许将一些通用任务,如安全、事务、日志等进行集中式处理,从而提高了程序的复用性。
(4)支持声明式事务处理:只需要通过配置就可以完成对事务的管理,而无需手动编程。
(5)方便程序的测试:Spring提供了对Junit4的支持,可以通过注解方便的测试Spring 程序。
(6)方便集成各种优秀框架:Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持。
(7)降低了Java EE API的使用难度:Spring对Java EE开发中非常难用的一些API (如:JDBC、JavaMail等),都提供了封装,使这些API应用难度大大降低。
2、IoC的全称是Inversion of Control,中文名称为控制反转。
控制反转就是指在使用Spring框架之后,对象的实例不再由调用者来创建,而是由Spring容器来创建,Spring 容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。
这样,控制权由应用代码转移到了Spring容器,控制权发生了反转。
DI的全称是Dependency Injection,中文称之为依赖注入。
它与控制反转(IoC)的含义相同,只不过这两个称呼是从两个角度描述的同一个概念。
从Spring容器的角度来看,Spring容器负责将被依赖对象赋值给调用者的成员变量,这相当于为调用者注入了它依赖的实例,这就是Spring的依赖注入。
SpringBoot整合Druid实现数据库连接池和监控
SpringBoot整合Druid实现数据库连接池和监控⽬录1、Druid的简介2、创建SpringBoot项⽬与数据表2.1 创建项⽬2.2 创建数据表3、Druid实现数据库连接池3.1 Druid的配置3.2 创建实体类(Entity层)3.3 数据库映射层(Mapper层)3.4 业务逻辑层(Service层)3.5 控制器⽅法(Controller层)3.6 显⽰页⾯(View层)4、Druid实现监控功能1、Druid的简介Druid是Java语⾔中使⽤的⽐较多的数据库连接池。
Druid还提供了强⼤的监控和扩展功能。
下⾯将介绍SpringBoot整合Druid实现数据库连接池和监控功能。
官⽅⽂档:《》2、创建SpringBoot项⽬与数据表【实例】SpringBoot整合Druid实现数据库连接池和监控,使⽤MyBaits操作数据库,获取⽤户信息,如下图:2.1 创建项⽬(1)创建SpringBoot项⽬,项⽬结构如下图:(2)使⽤Maven添加依赖⽂件在pom.xml配置信息⽂件中,添加Druid连接池、MyBatis、MySQL数据库、Thymeleaf模板引擎等相关依赖:<!-- 引⼊Druid连接池 --><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.23</version></dependency><!-- MyBatis与SpringBoot整合依赖 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.3</version></dependency><!-- MySQL的JDBC数据库驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.20</version></dependency><!-- 引⼊Thymeleaf模板引擎 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>2.2 创建数据表使⽤MySQL数据库,创建 tb_user ⽤户信息表,并添加数据。
SpringBoot(七):集成DataSource与Druid监控配置
SpringBoot(七):集成DataSource与Druid监控配置绑定DataSource:Spring Boot默认的数据源是:org.apache.tomcat.jdbc.pool.DataSource,Druid是Java语⾔中最好的数据库连接池,并且能够提供强⼤的监控和扩展功能,⽽且datasource是⼀般项⽬都需要使⽤的功能。
因此,这⾥将学习如何使⽤springboot与druid集成datasource。
springboot2.0.1+alibaba druid组件导⼊maven:1)导⼊alibaba druid组件:<!--druid 依赖--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.9</version></dependency>备注:具体请查看官⽹提供的使⽤介绍:https:///alibaba/druid/tree/master/druid-spring-boot-starter。
2)导⼊mysql驱动包:<!--MySQL Driver驱动包--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency>3)导⼊springboot jpa集成组件:<!-- Spring Boot的JPA依赖包--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency>此时,pom.xml配置内容为:1<?xml version="1.0" encoding="UTF-8"?>2<project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"3 xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd">4<modelVersion>4.0.0</modelVersion>56<groupId>com.dx</groupId>7<artifactId>springboot-helloword</artifactId>8<version>0.0.1-SNAPSHOT</version>9<packaging>jar</packaging>1011<name>springboot-helloword</name>12<description>Demo project for Spring Boot</description>1314<parent>15<groupId>org.springframework.boot</groupId>16<artifactId>spring-boot-starter-parent</artifactId>17<version>2.0.1.RELEASE</version>18<relativePath/><!-- lookup parent from repository -->19</parent>2021<properties>22<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>23<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>24<java.version>1.8</java.version>25</properties>2627<dependencies>28<dependency>29<groupId>org.springframework.boot</groupId>30<artifactId>spring-boot-starter-web</artifactId>31</dependency>32<!--完成get set toString注册 -->33<dependency>34<groupId>org.projectlombok</groupId>35<artifactId>lombok</artifactId>36</dependency>37<!--springboot 热部署⼯具-->38<dependency>39<groupId>org.springframework.boot</groupId>40<artifactId>spring-boot-devtools</artifactId>41<optional>true</optional>42</dependency>43<dependency>44<groupId>org.springframework.boot</groupId>45<artifactId>spring-boot-starter-test</artifactId>46<scope>test</scope>47</dependency>48<dependency>49<groupId>org.springframework.boot</groupId>50<artifactId>spring-boot-starter-thymeleaf</artifactId>51</dependency>52<!--druid 依赖-->53<dependency>54<groupId>com.alibaba</groupId>55<artifactId>druid-spring-boot-starter</artifactId>56<version>1.1.9</version>57</dependency>58<!--MySQL Driver驱动包-->59<dependency>60<groupId>mysql</groupId>61<artifactId>mysql-connector-java</artifactId>62<scope>runtime</scope>63</dependency>64<!-- Spring Boot的JPA依赖包-->65<dependency>66<groupId>org.springframework.boot</groupId>67<artifactId>spring-boot-starter-data-jpa</artifactId>68</dependency>69</dependencies>7071<build>72<plugins>73<plugin>74<groupId>org.springframework.boot</groupId>75<artifactId>spring-boot-maven-plugin</artifactId>76</plugin>77</plugins>78</build>798081</project>View Code⾃定义datasource配置项加载:1)在src/resources/application.properties中添加以下配置信息:# ⾃定义数据库配置信息ername=rootdb.password=rootdb.url=jdbc:mysql://localhost:3306/springboot_helloworddb.driver-class-name=com.mysql.jdbc.Driver2)修改项⽬的启动⼊⼝,添加DataSource的bean注⼊,及标注⾃定义参数配置注⼊:package com.dx.controller;import com.alibaba.druid.pool.DruidDataSource;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.context.annotation.Bean;import javax.sql.DataSource;@SpringBootApplicationpublic class SpringbootHellowordApplication {@Bean@ConfigurationProperties(prefix = "db")public DataSource dateSource() {DruidDataSource dataSource = new DruidDataSource();return dataSource;}public static void main(String[] args) {SpringApplication.run(SpringbootHellowordApplication.class, args);}}这⾥的dateSource() 启到的作⽤就是注⼊datasourcebean,同时加载⾃定义配置项的作⽤。
SpringMVC+Spring+Mybatis框架配置详细步骤(eclipse普通版)
SSI框架搭建SpringMVC3.1.2+Spring3.1.2+Mybatis3.2.6编号:SSI-SMVC3-S3-I3版本:V1.0级别:公开编写时间:2016-02-17目录1 导言 (1)1.1 目的 (1)1.2 范围 (1)1.3 说明 (1)2 搭建SpringMVC (2)2.1 搭建所需jar包 (2)2.2 其他依赖包 (3)2.3 搭建步骤 (4)2.3.1 创建项目 (4)2.3.2 导入jar包 (6)2.3.3 配置web.xml (7)2.3.4 配置spring-servlet.xml (9)2.3.5 配置applicationContext.xml (10)2.3.6 配置log4j.properties (10)3 整合mybatis (11)3.1 整合所需jar包 (11)3.2 其他依赖包 (11)3.3 整合步骤 (11)3.3.1 导入jar包 (11)3.3.2 配置config.properties (12)3.3.3 配置spring-dataSource.xml (12)3.3.4 配置applicationContext.xml (15)3.3.5 配置mybatis-config.xml (16)3.3.6 创建实体model (17)3.3.7 创建实例化dao (19)3.3.8 创建业务服务service (21)3.3.9 创建控制层controller (23)3.3.10 页面代码 (28)3.3.11 启动项目 (37)1导言1.1 目的本文档是根据个人的工作经验搭建的轻量级SSI框架,也是实际应用中比较全面的基础框架,用于指导SSI框架初学者学习搭建SSI框架,希望能给各位使用者提供帮助,同时也希望朋友们尽量去帮助其他人。
1.2 范围本次框架搭建的版本是SpringMVC3.1.2+Spring3.1.2+Mybatis3.2.6,数据库采用的是mysql,在eclipse开发工具下搭建直接搭建的web项目,页面采用的是h5,ajax实现数据访问,如果页面为jsp等,则修改controller的返回类型即可。
springboot配置双数据源MySQL和SqlServer
springboot配置双数据源MySQL和SqlServer1. pom⽂件的驱动jar包加上去,compile 'com.microsoft.sqlserver:mssql-jdbc:6.2.2.jre8'2. application.ymlspring:datasource:master:jdbc-url: jdbc:mysql://10.12.49.55:3306/smartcity-01username: rootpassword: root# 使⽤druid数据源type: com.alibaba.druid.pool.DruidDataSourcedriverClassName: com.mysql.jdbc.Driverother:jdbc-url: jdbc:sqlserver://10.12.49.35:1433;DatabaseName=LandscapingDBusername: sapassword: Sql123#使⽤druid数据源type: com.alibaba.druid.pool.DruidDataSourcedriverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver注意不要使⽤url,要使⽤jdbc-url主数据库配置:package com.pactera.scm.config;import org.apache.ibatis.session.SqlSessionFactory;import org.mybatis.spring.SqlSessionFactoryBean;import org.mybatis.spring.SqlSessionTemplate;import org.mybatis.spring.annotation.MapperScan;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.boot.jdbc.DataSourceBuilder;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Primary;import org.springframework.core.io.support.PathMatchingResourcePatternResolver;import org.springframework.jdbc.datasource.DataSourceTransactionManager;import javax.sql.DataSource;@Configuration@MapperScan(basePackages ="com.pactera.scm.mapper", sqlSessionFactoryRef = "masterSqlSessionFactory")public class MybatisDbMasterConfig {@Primary@Bean(name = "masterDataSource")@ConfigurationProperties(prefix = "spring.datasource.master")public DataSource dataSource() {return DataSourceBuilder.create().build();}@Primary@Bean(name = "masterSqlSessionFactory")public SqlSessionFactory sqlSessionFactory(@Qualifier("masterDataSource") DataSource dataSource) throws Exception {SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();factoryBean.setDataSource(dataSource);factoryBean.setTypeAliasesPackage("com.pactera.scm.entity");factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml"));return factoryBean.getObject();}@Primary@Bean(name = "masterTransactionManager")public DataSourceTransactionManager transactionManager(@Qualifier("masterDataSource") DataSource dataSource) {return new DataSourceTransactionManager(dataSource);}@Bean(name = "masterSqlSessionTemplate")@Primarypublic SqlSessionTemplate testSqlSessionTemplate(@Qualifier("masterSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {return new SqlSessionTemplate(sqlSessionFactory);}} 第⼆数据库配置:package com.pactera.scm.config;import org.apache.ibatis.session.SqlSessionFactory;import org.mybatis.spring.SqlSessionFactoryBean;import org.mybatis.spring.SqlSessionTemplate;import org.mybatis.spring.annotation.MapperScan;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.boot.jdbc.DataSourceBuilder;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.core.io.support.PathMatchingResourcePatternResolver;import org.springframework.jdbc.datasource.DataSourceTransactionManager;import javax.sql.DataSource;@Configuration@MapperScan(basePackages = "com.pactera.scm.otherDB", sqlSessionFactoryRef = "otherSqlSessionFactory")public class MybatisDbOtherConfig {@Bean(name = "otherDataSource")@ConfigurationProperties(prefix = "spring.datasource.other")public DataSource dataSource() {return DataSourceBuilder.create().build();}@Bean(name = "otherTransactionManager")public DataSourceTransactionManager transactionManager(@Qualifier("otherDataSource") DataSource dataSource) {return new DataSourceTransactionManager(dataSource);}@Bean(name = "otherSqlSessionFactory")public SqlSessionFactory basicSqlSessionFactory(@Qualifier("otherDataSource") DataSource basicDataSource) throws Exception { SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();factoryBean.setDataSource(basicDataSource);factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:other/*.xml"));return factoryBean.getObject();}@Bean(name = "otherSqlSessionTemplate")public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("otherSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {return new SqlSessionTemplate(sqlSessionFactory);}}启动类正常些就⾏了,不需要改动,保证能扫描到配置⽂件就⾏@SpringBootApplication@EnableConfigurationProperties@EnableSchedulingpublic class ScmApplication {public static void main(String[] args) {SpringApplication.run(ScmApplication.class, args);}}使⽤:@Resourceprivate AccountMapper accountMapper;直接调⽤就⾏。
springboot配置MySQL数据库连接、Hikari连接池和Mybatis的简单配置方法
springboot配置MySQL数据库连接、Hikari连接池和Mybatis的简单配置⽅法此⽅法为极简配置,⽀持MySQL数据库多库连接、⽀持Hikari连接池、⽀持MyBatis(包括Dao类和xml⽂件位置的配置)。
1、pom.xml中引⼊依赖:<!-- Begin of DB related --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.1.1</version><exclusions><exclusion><groupId>org.apache.tomcat</groupId><artifactId>tomcat-jdbc</artifactId></exclusion></exclusions></dependency><dependency><groupId>com.zaxxer</groupId><artifactId>HikariCP</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!-- End of DB related -->我们使⽤了mybatis-spring-boot-starter,并让它把tomcat-jdbc连接池排除掉,这样spring-boot就会寻找是否有HikariCP可⽤,第⼆个依赖就被找到了,然后mysql-connector也有了。
