Spring - Spring配置文件-Spring配置数据源详解
文章目录
- 一般方式配置数据源
- 数据源(连接池)的作用
- 数据源开发的步骤
- 数据源创建演示(c3p0)
- 创建maven-web骨架项目
- 导入mysql、c3p0、druid、junit坐标
- 创建编写测试类
- 测试运行
- 数据源创建演示(druid)
- 编写测试类
- 测试运行
- 抽出耦合的数据源
- 新建文件
- 编写测试类,加载properties配置文件
- 测试运行
- Spring配置数据源
- 导入Spring坐标
- 创建编写Spring.xml
- 编写测试类
- 测试运行
- 抽取jdbc配置文件
- 编写Spring.xml
- 测试运行
- 总结
一般方式配置数据源
数据源(连接池)的作用
数据源(连接池)是提高程序性能如出现的
事先实例化数据源,初始化部分连接资源
使用连接资源时从数据源中获取
使用完毕后将连接资源归还给数据源
常见的数据源(连接池):DBCP、C3P0、BoneCP、Druid等
数据源开发的步骤
- 导入数据源的坐标和数据库驱动坐标
- 创建数据源对象
- 设置数据源的基本连接数据
- 使用数据源获取连接资源和归还连接资源
数据源创建演示(c3p0)
创建maven-web骨架项目
导入mysql、c3p0、druid、junit坐标
<dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.32</version></dependency><dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.10</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency></dependencies>
创建编写测试类
获取mybatis数据库的连接
package com.taotao.test;import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.junit.Test;import java.beans.PropertyVetoException;
import java.sql.Connection;/*** create by 刘鸿涛* 2022/4/7 0:38*/
public class DataSourceTest {@Test//测试手动创建 c3p0数据源public void test1() throws Exception {ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();comboPooledDataSource.setDriverClass("com.mysql.jdbc.Driver");comboPooledDataSource.setJdbcUrl("jdbc:mysql://localhost:3306/mybatis?");comboPooledDataSource.setUser("root");comboPooledDataSource.setPassword("12345");Connection connection = comboPooledDataSource.getConnection();System.out.println(connection);connection.close();}
}
测试运行
数据源创建演示(druid)
编写测试类
package com.taotao.test;import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidPooledConnection;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.junit.Test;import java.beans.PropertyVetoException;
import java.sql.Connection;/*** create by 刘鸿涛* 2022/4/7 0:38*/
public class DataSourceTest {@Test//测试手动创建 c3p0数据源public void test1() throws Exception {ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();comboPooledDataSource.setDriverClass("com.mysql.jdbc.Driver");comboPooledDataSource.setJdbcUrl("jdbc:mysql://localhost:3306/mybatis?");comboPooledDataSource.setUser("root");comboPooledDataSource.setPassword("12345");Connection connection = comboPooledDataSource.getConnection();System.out.println(connection);connection.close();}@Test//测试手动创建 druid数据源public void test2() throws Exception {DruidDataSource druidDataSource = new DruidDataSource();druidDataSource.setDriverClassName("com.mysql.jdbc.Driver");druidDataSource.setUrl("jdbc:mysql://localhost:3306/mybatis?");druidDataSource.setUsername("root");druidDataSource.setPassword("12345");DruidPooledConnection connection = druidDataSource.getConnection();System.out.println(connection);connection.close();}
}
测试运行
抽出耦合的数据源
新建文件
test - java - resources - jdbc.properties
编写测试类,加载properties配置文件
@Test
//测试手动创建 c3p0数据源(加载properties配置文件)
public void test3() throws Exception {//读取配置文件//ResourceBudle类是jdk util包自带的ResourceBundle rb = ResourceBundle.getBundle("jdbc");String driver = rb.getString("jdbc.driver");String url = rb.getString("jdbc.url");String username = rb.getString("jdbc.username");String password = rb.getString("jdbc.password");//创建数据源对象 设置连接参数ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();comboPooledDataSource.setDriverClass(driver);comboPooledDataSource.setJdbcUrl(url);comboPooledDataSource.setUser(username);comboPooledDataSource.setPassword(password);Connection connection = comboPooledDataSource.getConnection();System.out.println(connection);connection.close();
}
测试运行
Spring配置数据源
可以将DataSource的创建权交由Spring容器去完成
导入Spring坐标
<dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.0.5.RELEASE</version></dependency>
创建编写Spring.xml
text-resources
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="com.mysql.jdbc.Driver"></property><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/mybatis?"></property><property name="user" value="root"></property><property name="password" value="12345"></property></bean>
</beans>
编写测试类
@Test//测试Spring容器产生数据源对象public void test4() throws Exception{//获得Spring xml文件ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");//使用idDataSource dataSource = (DataSource) app.getBean("dataSource");//反射获取,不太安全,比较方便
// DataSource dataSource = app.getBean(DataSource.class);Connection connection = dataSource.getConnection();System.out.println(connection);connection.close();}
测试运行
抽取jdbc配置文件
applicationContext.xml加载jdbc.properties配置文件获取连接信息
首先,需要引入context命名空间和约束路径:
编写Spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!-- 加载外部的properties文件--><context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="${jdbc.driver}"></property><property name="jdbcUrl" value="${jdbc.url}"></property><property name="user" value="${jdbc.username}"></property><property name="password" value="${jdbc.password}"></property></bean>
</beans>
测试运行
总结
- 配置完后,提高耦合性,后期维护起来也相对简单,只需更改properties配置文件,即可对整个项目jdbc连接做出贡献
Spring - Spring配置文件-Spring配置数据源详解相关推荐
- 第十二章 Spring Cloud Config 统一配置中心详解
目录 一.配置问题分析及解决方案 1.问题分析 2.解决方案 二.Spring Cloud Config 介绍 1.Spring Cloud Config特性 2.Spring Cloud Confi ...
- SpringSecurity权限管理框架系列(六)-Spring Security框架自定义配置类详解(二)之authorizeRequests配置详解
1.预置演示环境 这个演示环境继续沿用 SpringSecurit权限管理框架系列(五)-Spring Security框架自定义配置类详解(一)之formLogin配置详解的环境. 2.自定义配置类 ...
- Spring @Scheduled定时任务调度配置的详解
Spring定时器中配置文件中一些配置信息,供各位参考及指正 创建一个包含定时器配置的Spring配置文件:如spring-taskTime.xml.以下均为配置信息: <?xml versio ...
- IntelliJ IDEA 2017 MySQL5 绿色版 Spring 4 Mybatis 3 配置步骤详解(二)
前言 继续上一篇安装教程 首先是MySQL绿色版安装之后其他组件安装,如果篇幅较长会分为多篇深入讲解,随笔属于学习笔记诸多错误还望指出 共同学习. MySQL 5.7 绿色版 我本地安装的是 ...
- spring学习笔记03-spring-DI-依赖注入详解(通过xml配置文件来配置依赖注入)
spring学习笔记03-spring-DI-依赖注入详解 1.概念 2.构造函数注入 3.set方法注入 4.集合的注入 需要被注入的实体对象 package com.itheima.service ...
- 关于Spring 任务调度之task:scheduler与task:executor配置的详解
关于Spring 任务调度之task:scheduler与task:executor配置的详解 其实就是Spring定时器中配置文件中一些配置信息,由于笔者自己是头一次使用,有些配置详细不太明白,随即 ...
- 【夯实Spring Cloud】Spring Cloud分布式配置中心详解
本文属于[夯实Spring Cloud]系列文章,该系列旨在用通俗易懂的语言,带大家了解和学习Spring Cloud技术,希望能给读者带来一些干货.系列目录如下: [夯实Spring Cloud]D ...
- Spring Boot笔记—多线程系列(三)—配置参数详解
前言 前两篇文章,我们已经学会了如何使用spring boot的多线程和自定义线程池.这篇文章,我们要深入了解上一篇文章中线程池的配置具体含义. 准备工作 说明 为了方便观察线程的情况(如执行完毕数量 ...
- Spring Boot 使用 Druid 连接池详解
Spring Boot 使用 Druid 连接池详解 Alibaba Druid 是一个 JDBC 组件库,包含数据库连接池.SQL Parser 等组件,被大量业务和技术产品使用或集成,经历过严苛的 ...
最新文章
- 发现优质免费的区块链在线教程资源,包含PPT和视频资源,全部免费
- 嵌入式中单任务程序典型架构
- gis环境设置在哪_三维GIS平台的可视化应用 (下)
- java 图片上传 预览 demo_图片上传预览
- mysql的代码需要保存吗_php向Mysql数据库保存数据的代码
- 设置环境变量的三种方法【转载】
- diskgenius 单文件_电脑数据恢复及分区管理软件DiskGenius 英文专业版
- pythonajax学习_python学习-- django 2.1.7 ajax 请求
- Download PuTTY: latest release (0.75) pscp
- 48. Element isSupported() 方法
- 某些情况下java md5 base64_encode 与 php md5 base64_encode的签名
- 2017年美国大学生数学建模竞赛E题O奖65123论文解读
- mysql的填充因子_sql server填充因子
- Web端网页QQ临时会话在线咨询
- 01-Weakly supervised consistency
- Redis数据库简介
- 小米如何使用远程管理FTP操作电脑和手机的文件
- 运行uniapp项目,提示uniapp依赖插件还未加载,请稍后重试
- 如何截图翻译?推荐你三种截图翻译的方法
- shell-grep用法