spring配置数据源

spring配置数据源

  • 1. 什么是数据源连接池
  • 2. 手动创建数据源(c3p0,druid)
    • 2.1 导入数据库连接驱动,数据源pom坐标
    • 2.2 创建数据源
    • 2.3 配置jdbc.properties, 解耦拿到数据源
  • 3. spring配置数据源
    • 3.1 bean方式创建数据源1
    • 3.2 bean方式创建数据源2
  • 4. 测试spring数据源连接

  • oracle数据库测试用
  • ojdbc6, oracle11.2版本
select * from v$version

1. 什么是数据源连接池

  • 数据源连接池
  1. 用jdbc操作数据库时,会连接数据库,会产生一个数据库连接
  2. 使用第三方jar包,连接数据库时,数据库连接池,会产生多个数据库连接给你使用
  3. 数据源连接池对连接进行管理,需要进行数据库操作时,给出空闲连接
    数据源连接池
  • 数据源(连接池)的作用

    1. 提高程序性能
    2. 事先实例化数据源,初始化部分连接资源
    3. 使用连接资源时从数据源中获取
    4. 使用完毕后将连接资源归还给数据源
  • 常用的数据源连接池

阿里druid
springboot默认连接池 hikaricp

2. 手动创建数据源(c3p0,druid)

2.1 导入数据库连接驱动,数据源pom坐标

        <dependency><groupId>com.oracle.database.jdbc</groupId><!-- 导入Oracle的数据库驱动 --><artifactId>ojdbc6</artifactId><version>11.2.0.4</version></dependency><dependency> <!-- hibernate 数据库连接池--><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version></dependency><dependency> <!-- Alibaba数据库连接池 --><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.10</version></dependency>

2.2 创建数据源

  • 同jdbc拿到数据库连接操作类型,需要数据库驱动,数据库地址,账号,密码
    // 测试手动创建c3p0public void test1() {//ComboPooledDataSource dataSource = new ComboPooledDataSource();Connection conn = null;try {dataSource.setDriverClass("oracle.jdbc.OracleDriver");dataSource.setJdbcUrl("jdbc:oracle:thin:@127.0.0.1:1521:orcl");dataSource.setUser("scott");dataSource.setPassword("scott");conn = dataSource.getConnection();System.out.println(conn);} catch (PropertyVetoException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();} finally {try {if (conn != null)conn.close();} catch (SQLException throwables) {throwables.printStackTrace();}}}// 测试手动创建 druidpublic void test2() {DruidDataSource dataSource = new DruidDataSource();dataSource.setDriverClassName("oracle.jdbc.OracleDriver");dataSource.setUrl("jdbc:oracle:thin:@127.0.0.1:1521:orcl");dataSource.setUsername("scott");dataSource.setPassword("scott");DruidPooledConnection conn = null;try {conn = dataSource.getConnection();System.out.println(conn);} catch (SQLException throwables) {throwables.printStackTrace();} finally {if (conn != null) {try {conn.close();} catch (SQLException throwables) {throwables.printStackTrace();}}}}

2.3 配置jdbc.properties, 解耦拿到数据源

  • 配置信息
jdbc.driver=oracle.jdbc.OracleDriver
jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
jdbc.userName=scott
jdbc.userPassword=scott
  • 读取配置文件连接数据源
   // 配置文件保存jdbc的信息public void test3() {// 利用resourceBundle类解析配置文件ResourceBundle rb = ResourceBundle.getBundle("jdbc");String driver = rb.getString("jdbc.driver");String url = rb.getString("jdbc.url");String userName = rb.getString("jdbc.userName");String userPassword = rb.getString("jdbc.userPassword");// 创建durid 对象DruidDataSource dataSource = new DruidDataSource();dataSource.setDriverClassName(driver);dataSource.setUrl(url);dataSource.setUsername(userName);dataSource.setPassword(userPassword);DruidPooledConnection conn = null;try {conn = dataSource.getConnection();System.out.println(conn);} catch (SQLException throwables) {throwables.printStackTrace();} finally {if (conn != null) {try {conn.close();} catch (SQLException throwables) {throwables.printStackTrace();}}}}

3. spring配置数据源

3.1 bean方式创建数据源1

  • 添加pom依赖
        <dependency> <!-- 导入spring坐标 --><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.0.10.RELEASE</version></dependency>
  • 创建spring配置文件
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="oracle.jdbc.OracleDriver"/><property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/><property name="username" value="scott"/><property name="password" value="scott"/></bean>
  • spring拿到数据源
    // spring 容器产生数据源对象 druidpublic void test4() {ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");DruidDataSource ds = (DruidDataSource) app.getBean("dataSource");DruidPooledConnection connection = null;try {connection = ds.getConnection();System.out.println("connection is connected..." + connection);System.out.println(ds);} catch (SQLException throwables) {throwables.printStackTrace();} finally {try {if (connection != null)connection.close();} catch (SQLException throwables) {throwables.printStackTrace();}}}

3.2 bean方式创建数据源2

  • 使用spring-context 读取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

  • 使用属性加载器读取配置文件
    <!-- 引入spring-context命名空间 和 约束空间 --><context:property-placeholder location="classpath:jdbc.properties"/><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="${jdbc.driver}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.userName}" /><property name="password" value="${jdbc.userPassword}" /></bean>

4. 测试spring数据源连接

connection is connected...oracle.jdbc.driver.T4CConnection@137b2b07
{CreateTime:"2020-07-19 14:40:13",ActiveCount:1,PoolingCount:0,CreateCount:1,DestroyCount:0,CloseCount:0,ConnectCount:1,Connections:[]
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420785.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

centos8安装

一. 下载centos centos下载 下载镜像版 mini版本 二&#xff0c;安装centos8 虚拟机安装 可 打开虚拟机安装centos 选择下载的镜像 配置磁盘大小 配置资源 配置虚拟机内存&#xff0c;处理器个数等. 安装成功后&#xff0c;也可配置

一、Insertion sort

1. 问题 2. 算法 2.1 伪代码 2.2 算法思想 2.3 手工演示 2.4 Python实现 《算法导论》一书数组默认从111开始&#xff0c;这种方式适合算法分析&#xff0c;从000开始适合程序实现&#xff0c;为了能和伪代码一致便于对比&#xff0c;后边所有的Python实现中数组均从111开始。…

Hibernate学习笔记

Hibernate是什么&#xff1a; Hibernate 架构&#xff1a; 下载、安装、必要的 jar包、环境CLASSPAST的设置&#xff08;此步骤省略&#xff09; Hibernate框架的使用步骤&#xff1a;1、创建Hibernate的配置文件&#xff08;hibernate.cfg.xml&#xff09;2、创建持久化类&…

二、Merge sort

1 问题 2 算法 2.1 伪代码 2.2 算法思想 2.3 手工演示 2.4 Python实现 # -*- coding: utf-8 -*- import sysdef merge(A, p, q, r):n1 q - p 1n2 r - qL [0] * (n1 2)R [0] * (n2 2)for i in range(1, n11):L[i] A[pi-1]for j in range(1, n21):R[j] A[qj]L[n11] 6…

三、递归树分析法

1 问题 2 解决思路 使用递归树猜想一个上界&#xff0c;使用归纳法证明上界也是下界。 2.1 使用递归树&#xff08;recursion tree&#xff09;猜想结论&#xff08;不严谨&#xff09; 使用递归树两点&#xff1a;1⃣️逐行展开&#xff1b;2⃣️逐行相加&#xff1b; 逐行…

html5input表单标签新属性

初探h5一&#xff0c;h5 新增表单类型二&#xff0c;新增表单属性三&#xff0c;code demo一&#xff0c;h5 新增表单类型 •email 邮箱地址•url 网络地址•number 数字框•range 滑块•Date pickers (date, month, week, time, datetime, datetime-local) 日期时间框•search…

关于java的JIT知识

1.JIT的工作原理图 工作原理 当JIT编译启用时&#xff08;默认是启用的&#xff09;&#xff0c;JVM读入.class文件解释后&#xff0c;将其发给JIT编译器。JIT编译器将字节码编译成本机机器代码。 通常javac将程序源码编译&#xff0c;转换成java字节码&#xff0c;JVM通过解释…

Storage 使用

关于web项目数据存储1. 存储种类2. localStorage/sessionStorage2.1 概念2.2 api的使用3. 学生curd测试localStorage针对客户端存储讲 ——storage1. 存储种类 1. 分为服务器端和客户端的存储 2. 服务器端&#xff1a;1. 内存存储(临时)application session request pageConte…

spring 基于xml方式配置aop

目录什么是aop模拟aop配置什么是aop 什么是aop 作用 在程序运行期间&#xff0c;在不修改源码的情况下对方法进行功能增强 优势 减少重复代码 提高开发效率 并且便于开发2.aop关键概念 模拟aop 目标接口 package com.lovely.proxy.aop;public interface TargetInterface …

3389爆破DUBrute_2.1

3389专业爆破 DUBrute_2.1.zip http://pan.baidu.com/s/1pJE0t5L转载于:https://www.cnblogs.com/lieyan/p/3859696.html

h5 server send event(sse)

1. sse概述 概念&#xff1a; H5支持使用JS脚本不间断的访问服务器(推送)轮询: 页面使用js的定时器&#xff0c;定时发送请求查询最新数据 使用js将最新数据加载至页面 每发送一次数据&#xff0c;需要建立新的连接 时间间隔由客户端决定 优点&#xff1a;不需要刷新页面、实…