spring使用c3p0数据源

Posted kfsrex

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring使用c3p0数据源相关的知识,希望对你有一定的参考价值。

1.导入jar包(c3p0)

 技术图片

 

 

2.在spring配置文件中配置数据源和JdbcTemplate的bean

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

       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">

 

       <!-- 配置数据源(里面存放了若干个连接对象):数据库交互的。    数据源:c3p0,druid(阿里) -->

       <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">

              <property name="user" value="root"/>

              <property name="password" value="123"/>

              <property name="driverClass" value="com.mysql.jdbc.Driver"></property>

              <property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/test"></property>

       </bean>

      

       <!-- 配置springJdbc的模板类 -->

       <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">

              <property name="dataSource" ref="dataSource"></property>

       </bean>

</beans>

3.在单元测试测试

package com.zhiyou100.kfs.test;

 

import java.util.ArrayList;

import java.util.List;

 

import org.junit.jupiter.api.AfterAll;

import org.junit.jupiter.api.BeforeAll;

import org.junit.jupiter.api.Test;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import org.springframework.jdbc.core.BeanPropertyRowMapper;

import org.springframework.jdbc.core.JdbcTemplate;

import org.springframework.jdbc.core.RowMapper;

 

import com.zhiyou100.kfs.bean.User;

 

class TestJdbcTemplate

 

       private static JdbcTemplate jdbcTemplate;

       @BeforeAll

       static void setUpBeforeClass() throws Exception

              jdbcTemplate =(JdbcTemplate)new ClassPathXmlApplicationContext("applicationContext.xml").getBean("jdbcTemplate");

      

 

       @AfterAll

       static void tearDownAfterClass() throws Exception

      

 

       /**

        *   增删改

        */

       @Test

       void testUpdate()

              String sql="insert into tb_user (uusername) value(‘张八‘);";

              jdbcTemplate.update(sql);

      

       /**

        *   多条添加

        */

       @Test

       void testBatchUpdate()

              String sql1="insert into tb_user (uusername) value(?);";

              String sql2="insert into tb_user (uusername) value(‘张十‘);";

              List<Object[]> list=new ArrayList<>();

              String[] uusername1=new String[] new String("张九2");

              String[] uusername2=new String[] new String("张九3");

              jdbcTemplate.batchUpdate(sql1, list);

      

       /**

        *   查询一条记录

        */

       @Test

       void testQueryOne()

              String sql="select * from tb_user where u_id=?;";

              RowMapper<User> rowMapper=new BeanPropertyRowMapper<>(User.class);

              User user=jdbcTemplate.queryForObject(sql, rowMapper,1);

              System.out.println(user);

      

       /**

        *   查询多条记录

        */

       @Test

       void testQueryList()

              String sql="select * from tb_user;";

              RowMapper<User> rowMapper=new BeanPropertyRowMapper<>(User.class);

              List<User> list=jdbcTemplate.query(sql, rowMapper);

              System.out.println(list);

      

       /**

        *   查询单值(有多少条记录)

        */

       @Test

       void testQuerySingtonColumn()

              String sql="select count(u_id) c from tb_user;";

              int a=jdbcTemplate.queryForObject(sql, Integer.class);

              System.out.println(a);

      

以上是关于spring使用c3p0数据源的主要内容,如果未能解决你的问题,请参考以下文章

Spring配置c3p0数据源时出错报:java.lang.NoClassDefFoundError: com/mchange/v2/ser/Indirector

配置Spring数据源c3p0与dbcp

Spring配置数据源的三种方式 (dbcp c3p0 jndi)

Spring c3p0连接池配置

Spring c3p0连接池配置

带有 c3p0 数据库池和故障转移的 Spring Boot JDBCTemplate