web应用中的数据源

1、什么是数据源

从字面意思上看就是指数据的源头,我们都知道一般把数据存在数据库中,获取和修改数据等操作也是从数据库中拿取数据的,所以数据的源头应该指存放数据的数据库;那这里说的数据源是指数据库吗?肯定不是的。

我们这里说的数据源是操作数据库的一个抽象概念,体现在我们的代码中就是
c3p0、dbcp、druid等等,这些很多是第三方提供的数据源Jar包,我们在使用的时候要引入对应的数据源。

数据源做的就省略在连接数据库时一系列复杂的操作,我们在使用JDBC操作数据库时要 获取驱动、建立连接 等等一系列复杂的操作,且每次使用都要这样做代码产生了冗余。在使用数据源后,我们直接在数据源中配置连接数据库的信息
然后直接使用数据源获取连接就可以了。

代码如下:

public static void main(String[] args) throws Exception {
        ComboPooledDataSource dataSource = new ComboPooledDataSource();
        dataSource.setDriverClass("com.mysql.cj.jdbc.Driver");
        dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/book?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT");
        dataSource.setUser("root");
        dataSource.setPassword("123456");

        Connection connection = dataSource.getConnection();
        PreparedStatement preparedStatement = connection.prepareStatement("select * from t_book where id = ?");
        preparedStatement.setString(1, "27");
        ResultSet resultSet = preparedStatement.executeQuery();
        while (resultSet.next()) {
            System.out.println(resultSet.getString(1) + " "
                    + resultSet.getString(2) + " "
                    + resultSet.getString(3));
        }
        // 5.关闭连接
        preparedStatement.close();
        connection.close();
    }

2、连接池

数据源分为两类:带连接池的和不带连接池的
在我们不使用连接池的应用中每次操作数据库都要先建立连接,使用完后释放连接。这样做非常耗费资源。在使用连接池后应用会先建立多个连接,有使用需要的时候就取一个连接,使用完后不释放连接,而是把连接方回连接池,供下一个需要连接到数据库的程序使用,这样就节省了很多资源,不用反复创建和释放连接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值