Spring整合JDBC(dbcp,C3P0,Druid,JdbcTemplate )

一、整合数据库连接池dbcp

1.导入jar包

<!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp -->
    <dependency>
      <groupId>commons-dbcp</groupId>
      <artifactId>commons-dbcp</artifactId>
      <version>1.4</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.31</version>
    </dependency>

2.添加配置文件spring.xml

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">

 <!--开启注解-->
    <context:annotation-config/>
    <!--开启组件扫描-->
    <context:component-scan base-package="com.yy"/>

</beans>

3.配置数据源

<--DBCP连接池配置-->
    <!--<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
        <property name="url" value="jdbc:mysql://localhost:3306/ball?serverTimezone=GMT%2B8"></property>
        <property name="username" value="root"></property>
        <property name="password" value="123sa"></property>
        </bean>

4.使用数据库连接池实现原生的jdbc添加用户

@Repository
public class UserDaoImpl implements UserDao {
    @Autowired
    private BasicDataSource dataSource;
    @Override
    public void aa(User user) {
        Connection connection=null;
        try {
            connection = dataSource.getConnection();
            String sql="insert into user values(null,?,?)";
            PreparedStatement ps = connection.prepareStatement(sql);
            ps.setString(1, user.getName());
            ps.setString(2, user.getPwd());
            ps.executeUpdate();
        } catch (Exception e) {
            System.out.println(e);
        }finally {
            try {
                connection.close();
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
    }
}

二、整合数据库连接池C3P0

1.导入jar包

 <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
    <dependency>
      <groupId>com.mchange</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.5.2</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.31</version>
    </dependency>

2.添加配置文件spring.xml

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">

 <!--开启注解-->
    <context:annotation-config/>
    <!--开启组件扫描-->
    <context:component-scan base-package="com.yy"/>

</beans>

3.配置数据源

<!--C3P0连接池配置-->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="com.mysql.cj.jdbc.Driver"></property>
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/ball?serverTimezone=GMT%2B8"></property>
        <property name="user" value="root"></property>
        <property name="password" value="123sa"></property>
    </bean>

4.使用数据库连接池实现原生的jdbc添加用户

@Repository
public class UserDaoImpl implements UserDao {
    @Autowired
    private ComboPooledDataSource dataSource;
    @Override
    public void aa(User user) {
        Connection connection=null;
        try {
            connection = dataSource.getConnection();
            String sql="insert into user values(null,?,?)";
            PreparedStatement ps = connection.prepareStatement(sql);
            ps.setString(1, user.getName());
            ps.setString(2, user.getPwd());
            ps.executeUpdate();
        } catch (Exception e) {
            System.out.println(e);
        }finally {
            try {
                connection.close();
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
    }
}

三、整合数据库连接池Druid

1.导入jar包

<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.2.15</version>
    </dependency>


    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.31</version>
    </dependency>

2.添加配置文件spring.xml

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">

 <!--开启注解-->
    <context:annotation-config/>
    <!--开启组件扫描-->
    <context:component-scan base-package="com.yy"/>

</beans>

3.配置数据源

<!--Druid连接池配置-->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
        <property name="url" value="jdbc:mysql://localhost:3306/ball?serverTimezone=GMT%2B8"></property>
        <property name="username" value="root"></property>
        <property name="password" value="123sa"></property>
    </bean>

4.使用数据库连接池实现原生的jdbc添加用户

@Repository
public class UserDaoImpl implements UserDao {
    @Autowired
    private DruidDataSource dataSource;
    @Override
    public void aa(User user) {
        Connection connection=null;
        try {
            connection = dataSource.getConnection();
            String sql="insert into user values(null,?,?)";
            PreparedStatement ps = connection.prepareStatement(sql);
            ps.setString(1, user.getName());
            ps.setString(2, user.getPwd());
            ps.executeUpdate();
        } catch (Exception e) {
            System.out.println(e);
        }finally {
            try {
                connection.close();
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
    }
}

四、整合spring 内置数据源(JdbcTemplate

1.导入jar包

<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.3.24</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.31</version>
    </dependency>

2.添加配置文件spring.xml

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">

 <!--开启注解-->
    <context:annotation-config/>
    <!--开启组件扫描-->
    <context:component-scan base-package="com.yy"/>

</beans>

3.配置数据源

 <!--JdbcTemplate连接池配置-->
    <bean id="dataSource"
          class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
        <property name="url" value="jdbc:mysql://localhost:3306/ball?serverTimezone=GMT%2B8"></property>
        <property name="username" value="root"></property>
        <property name="password" value="123sa"></property>
    </bean>

4.使用内置数据源实现原生的jdbc添加用户

@Repository
public class UserDaoImpl implements UserDao {
    @Autowired
    private DriverManagerDataSource dataSource;
    @Override
    public void aa(User user) {
        Connection connection=null;
        try {
            connection = dataSource.getConnection();
            String sql="insert into user values(null,?,?)";
            PreparedStatement ps = connection.prepareStatement(sql);
            ps.setString(1, user.getName());
            ps.setString(2, user.getPwd());
            ps.executeUpdate();
        } catch (Exception e) {
            System.out.println(e);
        }finally {
            try {
                connection.close();
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C3P0DBCP 都是连接池技术,可以有效地管理数据库连接,减少连接建立和释放的消耗。Druid 技术比 C3P0DBCP 更加先进,它具有更高的性能和安全性,并且支持对数据库的实时监控和统计分析。 ### 回答2: c3p0DBCP,和Druid都是Java中常用的数据库连接池技术,它们各自有不同的技术侧重和优势。 c3p0连接池是一个开源的JDBC连接池,侧重于提供高性能和可靠的连接池管理。其优势包括: 1. 可以自动缓存和重用数据库连接,避免频繁创建和销毁连接,提高了数据库访问的性能。 2. 提供连接断线自动恢复功能,能够检测并处理数据库连接的断开和超时问题,保证系统的稳定性。 3. 支持连接池的配置和监控,可以通过配置文件或者代码动态调整连接池的参数,满足不同业务需求。 4. 能够处理不同数据库的连接,支持主流数据库如MySQL、Oracle等。 DBCP连接池是Apache Commons项目中的一个模块,侧重于提供简单易用的连接池实现。其优势包括: 1. 配置简单,可以通过简单的配置文件即可完成连接池的创建和管理。 2. 轻量级,与应用程序集成方便,对代码的侵入性较小。 3. 支持基本的连接池功能,如连接的管理、复用和释放。 4. 良好的可扩展性,可以通过集成其他组件来实现更高级的功能。 Druid连接池是阿里巴巴开源的一款高性能、可扩展和功能丰富的数据库连接池,侧重于提供全方位的数据库连接管理。其优势包括: 1. 提供性能监控和统计功能,可以实时监控数据库连接池的状态和性能指标,方便线上问题的排查和性能优化。 2. 支持连接池的防火墙功能,可以通过配置白名单、黑名单等规则来过滤恶意或异常的数据库连接。 3. 内置了SQL防注入功能,能够自动检测和阻止恶意SQL注入攻击。 4. 提供了数据库连接的可视化接口,方便开发人员查看和管理连接池的状态和连接使用情况。 总的来说,c3p0DBCPDruid都是成熟、稳定的数据库连接池技术,根据实际需求和性能要求选择合适的连接池可以提升应用的数据库访问性能和稳定性。 ### 回答3: c3p0DBCPDruid都是常用的数据库连接池技术,它们都有各自的侧重和优势。 c3p0是一种快速而可靠的JDBC连接池,侧重于提供高性能的连接缓存和连接池管理。它可以对JDBC连接进行管理和重用,有效地降低了数据库连接的创建和关闭的消耗。同时,c3p0还支持连接池的配置,可以根据应用的负载情况进行自动调整,保证连接池的稳定性。 DBCP(数据库连接池)也是一种常用的连接池技术,它侧重于提供简单易用的连接池解决方案。DBCP提供了基本的连接池功能,并且可以通过配置文件进行定制。它的优势在于使用简单,不需要过多的配置和调整,适用于一些简单的应用场景。 Druid是阿里巴巴开源的数据库连接池,侧重于提供高性能和可扩展性。它支持了连接池的所有功能,同时还提供了一些监控和统计功能,可以方便地监控和定位问题。Druid还内置了SQL防火墙和统计功能,可以有效地防止SQL注入攻击和性能问题。 总的来说,c3p0DBCPDruid都是优秀的连接池技术,具有各自的特点和优势。根据应用的需求和场景,可以选择合适的连接池技术来提高数据库访问的性能和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值