数据源的配置简单介绍
数据源
是指数据库应用程序所使用的数据库或者数据库服务器。
数据源的作用
数据源是一种用来提高数据库连接性能的常规手段,数据源会负责维持一个数据库连接池,当程序创建数据源实例时,系统会一次性地创建多个数据库连接,并把这些数据库连接保存在连接池中。当程序需要进行数据库访问时,无须重新获得数据库连接,而是从连接池中取出一个空闲的数据库连接,当程序使用数据库连接访问结束后,无须关闭数据库连接,而是将数据库连接归还给连接池即可。通过这种方式,就可比避免频繁地获取数据库连接,关闭数据库连接所导致的性能下降。
常见的数据源(连接池):
DBCP、C3P0、BoneCP、Druid等。
Spring配置数据源(连接池)开发步骤
- 导入数据源的坐标和数据库驱动坐标。
- 创建数据源对象。
- 设置数据源的基本连接数据。
- 使用数据源获取连接资源和归还连接资源。
数据源的手动创建(以Druid为例)。
<!---->
<!--导入druid的坐标-->
<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.10</version>
</dependency>
<!--导入mysql数据库驱动坐标-->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.39</version>
</dependency>
创建Druid连接池
@Test
public void testDruid() throws Exception {//创建数据源DruidDataSource dataSource = new DruidDataSource();//设置数据库连接参数dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/hzh"); dataSource.setUsername("root");dataSource.setPassword("root");//获得连接对象Connection connection = dataSource.getConnection(); System.out.println(connection);
}
提取jdbc.properties配置文件
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/hzh
jdbc.username=root
jdbc.password=root
读取jdbc.properties配置文件创建连接池
@Test
public void testC3P0ByProperties() throws Exception {//加载类路径下的jdbc.propertiesResourceBundle rb = ResourceBundle.getBundle("jdbc");DruidDataSource dataSource = new DruidDataSource();dataSource.setDriverClass(rb.getString("jdbc.driver")); dataSource.setJdbcUrl(rb.getString("jdbc.url")); dataSource.setUser(rb.getString("jdbc.username")); dataSource.setPassword(rb.getString("jdbc.password"));Connection connection = dataSource.getConnection(); System.out.println(connection);
}
spring 配置数据源
可以将DataSource的创建权交由Spring容器去完成
DataSource有无参构造方法,而Spring默认就是通过无参构造方法实例化对象的
DataSource要想使用需要通过set方法设置数据库连接信息,而Spring可以通过set方法进行字符串注入
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="com.mysql.jdbc.Driver"/><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/hzh"/><property name="user" value="root"/><property name="password" value="root"/>
</bean>
测试从容器当中获取数据源
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");DataSource dataSource = (DataSource)
applicationContext.getBean("dataSource");
Connection connection = dataSource.getConnection();
System.out.println(connection);
抽取jdbc配置文件
applicationContext.xml加载jdbc.properties配置文件获得连接信息。
首先,需要引入context命名空间和约束路径:
命名空间:xmlns:context=“http://www.springframework.org/schema/context”
约束路径:http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
<context:property-placeholder location="classpath:jdbc.properties"/>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="${jdbc.driver}"/><property name="jdbcUrl" value="${jdbc.url}"/><property name="user" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/>
</bean>
数据源的配置简单介绍相关推荐
- Spring boot自定义拦截器和拦截器重定向配置简单介绍~!
大家好: 本文简单介绍一下用于权限控制的Spring boot拦截器配置,拦截器重定向问题. 开发工具:jdk1.8 idea2017(付费版,网上找的破解教程) 1,首先使用idea创建一个Sp ...
- Tomcatserverhttps协议配置简单介绍
一. 数字签名证书制作 1. 用jdk自带的keytool工具生成证书. 2. 导出证书: 3. 交给CA签名认证: 注意:制作具体步骤演示样例參见附录. 二.改动server.xml文件 改动con ...
- 网络DHCP配置简单介绍
一.DHCP的作用 二.DHCP原理简介 1.DHCP discover :发现包 2.DHCP offer :应答包 3.DHCP request :请求包 4.DHCP ack :确认包 三.DH ...
- CCNA课堂练习二:路由协议EIGRP简单介绍与配置
EIGRP协议是Cisco的私有路由协议,它综合了距离矢量和链路状态2者的优点.它的英文全称是"Enhanced Interior Gateway Routing Protocol" ...
- stm32 GPIO简单介绍及初始化配置(库函数)
前言: 相信,大部分查找GPIO的人,都是刚刚接触STM32的人,而刚接触STM32的人,大部分是从51上来的人,所以我会由浅入深,从51和STM32的区别入手,通过对比这两个处理器的配置方法,来跟大 ...
- JSTL 及 tablibs 的简单介绍和配置方法
JSTL 及 tablibs 的简单介绍和配置方法 jstl 简介 jstl 的全称就是jsp standard tag libraries, 就是jsp里的标准标签库. 引用jstl技术能在jsp种 ...
- HCNA——RIP简单介绍及基本配置
HCNA--RIP简单介绍及基本配置 路由信息协议RIP 路由信息协议RIP(Routing Information Protocol)的简称,它是一种基于距离矢量(Distance-Vector)算 ...
- Apollo架构体系、Apollo运行原理、Apollo配置中心简单介绍(一)
笔者在工作中遇到如下问题,随着程序功能越多,配置文件不断增加,一些功能的开关.服务器地址.接口地址.不同环境的一些配置文件不同,这些在每次发布不同环境.更新项目时都比较繁琐,后来学习微服务时接触到了S ...
- eNSP实验STP简单配置及介绍
STP简单配置及介绍 [学习目标] [理论知识] [实验拓扑] [应用场景] [配置思路] [操作步骤] 步骤1 步骤2 步骤3 方法一: 方法二: 步骤4 步骤5 [实验结果] [学习目标] 1.掌 ...
最新文章
- 使用LaTeX排版如何方便地引用多篇参考文献(不使用插件)
- 以人为本的机器学习:谷歌人工智能产品设计概述 By 机器之心2017年7月17日 12:13 取代了手动编程,机器学习(ML)是一种帮助计算机发现数据中的模式和关系的科学。对于创建个人的和动态的经历
- mysql 性能 比较好_MySQL性能优化的最佳20+条经验
- WinForm登录模块设计开发
- 如何禁用单个FegionClient的Hystrix的支持
- select count(*) from返回的类型_数据分析面试题类型汇总
- Adobe illustrator 设置字体和微调 - 连载 10
- AI加持,华为云视频服务助力企业直播行业
- 微信小程序page设定css,微信小程序——启动,渲染与Page
- ProxySQL(读写分离)部署
- 斯坦福大学CS143编译原理课程笔记:3.编译器的性价比
- crontab定时器
- 自动化测试辅助工具——FirePath
- 电功图matlab,基于Matlab的电力系统输电线路仿真
- 图像处理农业应用sci_SCI征稿通知
- APP推广第一步:五大ASO优化方法
- VS2010出现“automation服务器不能创建对象“
- 计算机硬盘的文件怎么删除文件,电脑硬盘删除文件怎么恢复
- IT名人博客推荐(15个)
- 全球与中国网络连接视频门铃对讲机设备市场深度研究分析报告