数据源

是指数据库应用程序所使用的数据库或者数据库服务器。

数据源的作用

​ 数据源是一种用来提高数据库连接性能的常规手段,数据源会负责维持一个数据库连接池,当程序创建数据源实例时,系统会一次性地创建多个数据库连接,并把这些数据库连接保存在连接池中。当程序需要进行数据库访问时,无须重新获得数据库连接,而是从连接池中取出一个空闲的数据库连接,当程序使用数据库连接访问结束后,无须关闭数据库连接,而是将数据库连接归还给连接池即可。通过这种方式,就可比避免频繁地获取数据库连接,关闭数据库连接所导致的性能下降。

常见的数据源(连接池):

DBCP、C3P0、BoneCP、Druid等。

Spring配置数据源(连接池)开发步骤
  1. 导入数据源的坐标和数据库驱动坐标。
  2. 创建数据源对象。
  3. 设置数据源的基本连接数据。
  4. 使用数据源获取连接资源和归还连接资源。
数据源的手动创建(以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>

数据源的配置简单介绍相关推荐

  1. Spring boot自定义拦截器和拦截器重定向配置简单介绍~!

    大家好: 本文简单介绍一下用于权限控制的Spring boot拦截器配置,拦截器重定向问题. 开发工具:jdk1.8   idea2017(付费版,网上找的破解教程) 1,首先使用idea创建一个Sp ...

  2. Tomcatserverhttps协议配置简单介绍

    一. 数字签名证书制作 1. 用jdk自带的keytool工具生成证书. 2. 导出证书: 3. 交给CA签名认证: 注意:制作具体步骤演示样例參见附录. 二.改动server.xml文件 改动con ...

  3. 网络DHCP配置简单介绍

    一.DHCP的作用 二.DHCP原理简介 1.DHCP discover :发现包 2.DHCP offer :应答包 3.DHCP request :请求包 4.DHCP ack :确认包 三.DH ...

  4. CCNA课堂练习二:路由协议EIGRP简单介绍与配置

    EIGRP协议是Cisco的私有路由协议,它综合了距离矢量和链路状态2者的优点.它的英文全称是"Enhanced Interior Gateway Routing Protocol" ...

  5. stm32 GPIO简单介绍及初始化配置(库函数)

    前言: 相信,大部分查找GPIO的人,都是刚刚接触STM32的人,而刚接触STM32的人,大部分是从51上来的人,所以我会由浅入深,从51和STM32的区别入手,通过对比这两个处理器的配置方法,来跟大 ...

  6. JSTL 及 tablibs 的简单介绍和配置方法

    JSTL 及 tablibs 的简单介绍和配置方法 jstl 简介 jstl 的全称就是jsp standard tag libraries, 就是jsp里的标准标签库. 引用jstl技术能在jsp种 ...

  7. HCNA——RIP简单介绍及基本配置

    HCNA--RIP简单介绍及基本配置 路由信息协议RIP 路由信息协议RIP(Routing Information Protocol)的简称,它是一种基于距离矢量(Distance-Vector)算 ...

  8. Apollo架构体系、Apollo运行原理、Apollo配置中心简单介绍(一)

    笔者在工作中遇到如下问题,随着程序功能越多,配置文件不断增加,一些功能的开关.服务器地址.接口地址.不同环境的一些配置文件不同,这些在每次发布不同环境.更新项目时都比较繁琐,后来学习微服务时接触到了S ...

  9. eNSP实验STP简单配置及介绍

    STP简单配置及介绍 [学习目标] [理论知识] [实验拓扑] [应用场景] [配置思路] [操作步骤] 步骤1 步骤2 步骤3 方法一: 方法二: 步骤4 步骤5 [实验结果] [学习目标] 1.掌 ...

最新文章

  1. 使用LaTeX排版如何方便地引用多篇参考文献(不使用插件)
  2. 以人为本的机器学习:谷歌人工智能产品设计概述 By 机器之心2017年7月17日 12:13 取代了手动编程,机器学习(ML)是一种帮助计算机发现数据中的模式和关系的科学。对于创建个人的和动态的经历
  3. mysql 性能 比较好_MySQL性能优化的最佳20+条经验
  4. WinForm登录模块设计开发
  5. 如何禁用单个FegionClient的Hystrix的支持
  6. select count(*) from返回的类型_数据分析面试题类型汇总
  7. Adobe illustrator 设置字体和微调 - 连载 10
  8. AI加持,华为云视频服务助力企业直播行业
  9. 微信小程序page设定css,微信小程序——启动,渲染与Page
  10. ProxySQL(读写分离)部署
  11. 斯坦福大学CS143编译原理课程笔记:3.编译器的性价比
  12. crontab定时器
  13. 自动化测试辅助工具——FirePath
  14. 电功图matlab,基于Matlab的电力系统输电线路仿真
  15. 图像处理农业应用sci_SCI征稿通知
  16. APP推广第一步:五大ASO优化方法
  17. VS2010出现“automation服务器不能创建对象“
  18. 计算机硬盘的文件怎么删除文件,电脑硬盘删除文件怎么恢复
  19. IT名人博客推荐(15个)
  20. 全球与中国网络连接视频门铃对讲机设备市场深度研究分析报告

热门文章

  1. 实现手机归属地查询页面
  2. 今年今日==我的生日
  3. 使用Canvas 实现手机端签名
  4. 新闻稿编辑公司哪家好
  5. 转转闲鱼交易猫源码搭建教程
  6. 安装Docker、Harbor、Jenkins、Gitlab
  7. 【BW16 应用篇】安信可BW16模组与开发板更新固件烧录说明
  8. 原来问题在这里-我的memory leak诊断历程
  9. 解决CAD启动假死卡死
  10. 千寻发布“昆仑镜”,成为全球首个万物互联时代构筑时空智能“新基建”的底座...