Spring数据源配置【扫盲篇】

java1234

共 3983字,需浏览 8分钟

 ·

2020-09-23 18:29

点击上方蓝色字体,选择“标星公众号”

优质文章,第一时间送达

  作者 |  一只胡说八道的猴子 

来源 |  urlify.cn/jEfuIz

66套java从入门到精通实战课程分享

1、Spring系列之数据源的配置

2、数据源,连接池,数据库三者的区别

连接池:这个应该都学习过,比如c3p0,druid等等,连接池的作用是为了提高程序的效率,因为频繁的去创建,关闭数据库连接,会对性能有很大的消耗,所以就有了连接池,连接池顾名思义是存储多个连接的池子,池子中的连接都是创建好的,我们只要拿来使用即可,不用的时候就归还给连接池,这就大大减少了关闭创建连接的时间,提高了效率
数据库:存储数据的地方
数据源:数据源顾名思义是数据的来源,存储了连接数据库所需要的信息,也可以说是用于管理数据库连接池,并不存储真正的数据,仅仅记录了连接哪个数据库,怎么连接。如果把数据库比作一个文件的话,那么数据源存储的就是文件的名称,可以通过文件名称来找到对应的文件,算是一个抽象的映射,一个数据库对应一个数据源,数据源可能是一个连接,也可能是一个连接池
如果你是玫瑰,他就是牛粪

呸呸呸,说错了
如果数据是水,数据库就是水库,数据源就是管道,终端用户看到的数据集是管道里流出来的水。


Spring功能这么强大,怎么可能少的了数据源呢

3、Spring配置数据源

配置步骤
1.导入数据源的坐标与数据库驱动坐标
2.创建数据源对象
3.设置数据源的基本连接信息
4.使用数据源获取连接或归还连接
需要导入的坐标信息
junit


        junit
        junit
        4.13
        test
    

druid


    com.alibaba
    druid
    1.0.9

c3p0


    c3p0
    c3p0
    0.9.1.2

spring—context


    org.springframework
    spring-context
    5.0.3.RELEASE

mysql

  
        mysql
        mysql-connector-java
        5.1.32
    

我先手动配置一波,等一下再用Spring容器经行配置,大家就能看到二者的巨大差别了
手动配置数据源

druid

 public void main() throws Exception{
        //创建数据源
        DruidDataSource druidDataSource = new DruidDataSource();
        //设置连接参数
        druidDataSource.setDriverClassName("com.mysql.jdbc.Driver");
        druidDataSource.setUrl("jdbc:mysql://localhost:3309/one");
        druidDataSource.setUsername("root");
        druidDataSource.setPassword("1234");
        //获取连接对象
        DruidPooledConnection connection = druidDataSource.getConnection();
        System.out.println(connection);
    }

c3p0

 public void test2() throws Exception{
        //创建数据源
        ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();
        //设置连接参数
        comboPooledDataSource.setDriverClass("com.mysql.jdbc.Driver");
        comboPooledDataSource.setJdbcUrl("jdbc:mysql://localhost:3309/one");
        comboPooledDataSource.setUser("root");
        comboPooledDataSource.setPassword("1234");
        //获取连接对象
       comboPooledDataSource.getConnection();
        System.out.println(comboPooledDataSource);
    }

为了降低耦合性之前我们是通过读取配置文件的方法,这里我给大家重新复习一下

首先抽取要配置的信息到配置文件
右端的字符串注意不要加双引号,否则会报错,因为他默认就是字符串

jdbc.Driver=com.mysql.jdbc.Driver
jdbc.Url=jdbc:mysql://localhost:3309/one
jdbc.Username=root
jdbc.Password=1234

再读取配置文件来创建连接池

public void test3() throws  Exception{
//加载路径下的properties
        ResourceBundle bundle = ResourceBundle.getBundle("jdbc");
        //创建数据源
        ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();
        //设置连接参数
        comboPooledDataSource.setDriverClass(bundle.getString("jdbc.Driver"));
        comboPooledDataSource.setJdbcUrl(bundle.getString("jdbc.Url"));
        comboPooledDataSource.setUser(bundle.getString("jdbc.Username"));
        comboPooledDataSource.setPassword(bundle.getString("jdbc.Password"));
        //获取连接对象
        comboPooledDataSource.getConnection();
        System.out.println(comboPooledDataSource);
    }

这样的方式很好的降低了耦合性

重点来了,下面我们来讲讲如何使用Spring来配置数据源


4、Spring配置数据源

将DataSource的创建权交给Spring容器去完成
DataSource有无参构造方法,Spring默认就是通过无参构造方法实例化对象
DataSource要想使用需要通过set方法设置数据库连接信息,Spring可以通过set方法进行注入

在Spring容器中配置Bean

 "dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        "driverClass" value="com.mysql.jdbc.Driver"/>
        "jdbcUrl" value="jdbc:mysql://localhost:3309/one"/>
        "user" value="root"/>
        "password" value="1234"/>
    

到容器中获取资源

public void two() throws SQLException {
        ClassPathXmlApplicationContext classPathXmlApplicationContext = new       ClassPathXmlApplicationContext("applicationcontext.xml");
        DataSource datasource = (DataSource)classPathXmlApplicationContext.getBean("datasource");
        Connection connection = datasource.getConnection();
        System.out.println(connection);

    }


上面的方法是不是还不够方便,我们可以用更方便的,即读取配置文件的方法
我们首先引入命名空间与约束路径

命名空间:xmlns:context="http://www.springframework.org/schema/context"
约束路径:http://www.springframework.org/schema/context                        
http://www.springframework.org/schema/context/spring-context.xsd

容器加载配置文件

配置Bean

"dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        "driverClass" value="${jdbc.driver}">
        "jdbcUrl" value="${jdbc.url}">
        "user" value="${jdbc.username}">
        "password" value="${jdbc.password}">
    

以上就是Spring配置源的一些知识,有志同道合的伙伴可以关注我或者私信我加好友一同学习章,共勉



粉丝福利:108本java从入门到大神精选电子书领取

???

?长按上方锋哥微信二维码 2 秒
备注「1234」即可获取资料以及
可以进入java1234官方微信群



感谢点赞支持下哈 

浏览 33
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报