开发准备:

1.导入jar包:

ioc基本jar

jdbcTemplate基本jar

c3p0基本jar

别忘了mysql数据库驱动jar

原始程序代码:不使用配置文件方式(IOC)生成访问数据库对象

  1. package org.dao;
  2. import java.beans.PropertyVetoException;
  3. import org.springframework.jdbc.core.JdbcTemplate;
  4. import org.springframework.jdbc.datasource.DriverManagerDataSource;
  5. import com.mchange.v2.c3p0.ComboPooledDataSource;
  6.  
  7. public class Dao {
  8. public void add(){
  9. /*
  10. //使用spring框架中的jdbcTemplate完成数据库的访问
  11.  
  12. //设置数据库的信息
  13. DriverManagerDataSource dmds=new DriverManagerDataSource();
  14. dmds.setDriverClassName("com.mysql.jdbc.Driver");
  15. dmds.setUrl("jdbc:mysql://localhost:3306/c3p0jdbctemplate");
  16. dmds.setUsername("root");
  17. dmds.setPassword("jay571018");
  18.  
  19. //创建JdbcTemplate对象 设置数据源
  20. JdbcTemplate jdbcTemplate=new JdbcTemplate(dmds);
  21.  
  22. //调用方法 实现数据库的访问
  23. String sql="insert into User(name,password) values(?,?)";
  24. jdbcTemplate.update(sql,"joke",520);
  25. */
  26.  
  27. //使用c3p0连接池 配置数据库的信息 然后创建JdbcTemplate对象 设置数据源 完成对数据库访问
  28. ComboPooledDataSource datesourse=new ComboPooledDataSource();
  29. try {
  30. datesourse.setDriverClass("com.mysql.jdbc.Driver");
  31. } catch (PropertyVetoException e) {
  32. // TODO Auto-generated catch block
  33. e.printStackTrace();
  34. }
  35. datesourse.setJdbcUrl("jdbc:mysql://localhost:3306/c3p0jdbctemplate");
  36. datesourse.setUser("root");
  37. datesourse.setPassword("jay571018");
  38. //创建JdbcTemplate对象 设置数据源
  39. JdbcTemplate jdbcTemplate=new JdbcTemplate(datesourse);
  40.  
  41. //调用方法 实现数据库的访问
  42. String sql="insert into User(name,password) values(?,?)";
  43. jdbcTemplate.update(sql,"joke",520);
  44. System.out.println("增加了一条信息。。。。。。。");
  45. }
  46. }
  1. package org.service;
  2. import org.dao.*;
  3. public class Service {
  4. //想在service中调用dao对象的add方法 创建dao对象 生成对应的set方法
  5. private Dao dao;
  6.  
  7. //生成set方法 注入dao对象
  8. public void setDao(Dao dao){
  9. this.dao=dao;
  10. }
  11. public void add(){
  12. dao.add();
  13. }
  14. }
  1. package org.test;
  2. import org.junit.Test;
  3. import org.service.Service;
  4. import org.springframework.context.ApplicationContext;
  5. import org.springframework.context.support.ClassPathXmlApplicationContext;
  6.  
  7. public class TestDemo {
  8. @Test
  9. public void testDemo(){
  10. ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
  11. Service s=(Service) ac.getBean("service");
  12. s.add();
  13. }
  14. }
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:aop="http://www.springframework.org/schema/aop"
  6. xmlns:tx="http://www.springframework.org/schema/tx"
  7. xsi:schemaLocation="http://www.springframework.org/schema/beans
  8. http://www.springframework.org/schema/beans/spring-beans.xsd
  9. http://www.springframework.org/schema/context
  10. http://www.springframework.org/schema/context/spring-context.xsd
  11. http://www.springframework.org/schema/aop
  12. http://www.springframework.org/schema/aop/spring-aop.xsd
  13. http://www.springframework.org/schema/tx
  14. http://www.springframework.org/schema/tx/spring-tx.xsd">
  15. <bean id="dao" class="org.dao.Dao"></bean>
  16. <bean id="service" class="org.service.Service">
  17. <property name="dao" ref="dao"></property>
  18. </bean>
  19. </beans>

改进程序代码:使用配置文件方式(IOC)生成访问数据库对象

需要注意的是:使用配置文件生成bean对象时,在的类中一定需要有属性对应的set方法以及无参构造方法(不写的话默认有一个无参构造),否则无法完成注入,

两者缺一不可,因为使用set注入的时候,spring先调用了构造方法实例化对象,然后才对对象中的属性进行了注入。

另外IOC注入方式有两种,一种set方式,另外一种是构造注入,构造注入的时候当然需要构造函数(有参数)。

  1. package org.dao;
  2. import java.beans.PropertyVetoException;
  3.  
  4. import org.springframework.jdbc.core.JdbcTemplate;
  5. import org.springframework.jdbc.datasource.DriverManagerDataSource;
  6.  
  7. import com.mchange.v2.c3p0.ComboPooledDataSource;
  8.  
  9. public class Dao {
  10. private JdbcTemplate jdbcTemplate;
  11.  
  12. //设置set方法 为了之后的注入
  13. public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
  14. this.jdbcTemplate = jdbcTemplate;
  15. }
  16. public void add(){
  17. String sql="insert into User(name,password) values(?,?)";
  18. jdbcTemplate.update(sql,"joke2",520);
  19. System.out.println("增加了一条信息。。。。。。。");
  20. }
  21. }
  1. package org.service;
  2. import org.dao.*;
  3. public class Service {
  4. //想在service中调用dao对象的add方法 创建dao对象 生成对应的set方法
  5. private Dao dao;
  6.  
  7. //生成set方法 注入dao对象
  8. public void setDao(Dao dao){
  9. this.dao=dao;
  10. }
  11. public void add(){
  12. dao.add();
  13. }
  14. }
  1. package org.test;
  2. import org.junit.Test;
  3. import org.service.Service;
  4. import org.springframework.context.ApplicationContext;
  5. import org.springframework.context.support.ClassPathXmlApplicationContext;
  6.  
  7. public class TestDemo {
  8. public static void main(String args[]){
  9. ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
  10. Service s=(Service) ac.getBean("service");
  11. s.add();
  12. }
  13. }
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:aop="http://www.springframework.org/schema/aop"
  6. xmlns:tx="http://www.springframework.org/schema/tx"
  7. xsi:schemaLocation="http://www.springframework.org/schema/beans
  8. http://www.springframework.org/schema/beans/spring-beans.xsd
  9. http://www.springframework.org/schema/context
  10. http://www.springframework.org/schema/context/spring-context.xsd
  11. http://www.springframework.org/schema/aop
  12. http://www.springframework.org/schema/aop/spring-aop.xsd
  13. http://www.springframework.org/schema/tx
  14. http://www.springframework.org/schema/tx/spring-tx.xsd">
  15. <!-- 创建连接池 配置连接池的属性值 -->
  16. <bean id="ds" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  17. <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
  18. <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/c3p0jdbctemplate"></property>
  19. <property name="user" value="root"></property>
  20. <property name="password" value="jay571018"></property>
  21. </bean>
  22.  
  23. <!-- dao中注入jdbctemplate对象 -->
  24. <bean id="dao" class="org.dao.Dao">
  25. <property name="jdbcTemplate" ref="jdbctemplate"></property>
  26. </bean>
  27.  
  28. <!-- service中注入dao对象 -->
  29. <bean id="service" class="org.service.Service">
  30. <property name="dao" ref="dao"></property>
  31. </bean>
  32.  
  33. <!-- 创建jdbctemplate对象 并且向其中注入连接池对象 dateSource是该对象中数据源的属性 -->
  34. <bean id="jdbctemplate" class="org.springframework.jdbc.core.JdbcTemplate">
  35. <property name="dataSource" ref="ds"></property>
  36. </bean>
  37.  
  38. </beans>

注入关系:

1.因为service类需要调用dao类中的方法,所以在service中生成了一个dao对象,并且存在set方法

  1. <!-- service中注入dao对象 -->
  2. 29 <bean id="service" class="org.service.Service">
  3. 30 <property name="dao" ref="dao"></property>
  4. 31 </bean>
  5.  
  6. 2.在dao类中要对数据库进行操作,所以创建jdbcTemplate对象,并且生成set方法
  1. 23 <!-- dao中注入jdbctemplate对象 -->
  2. 24 <bean id="dao" class="org.dao.Dao">
  3. 25 <property name="jdbcTemplate" ref="jdbctemplate"></property>
  4. 26 </bean>
  1. 3.但是jdbcTemplate没有设置数据源,所以我们导入了数据库连接池,而且在配置文件中直接生成了c3p0连接池对象,就是用于jdbcTemplate对象的实例化
  1. 33 <!-- 创建jdbctemplate对象 并且向其中注入连接池对象 dateSource是该对象中数据源的属性 -->
  2. 34 <bean id="jdbctemplate" class="org.springframework.jdbc.core.JdbcTemplate">
  3. 35 <property name="dataSource" ref="ds"></property>
  4. 36 </bean>
  5.  
  1. 4. <!-- 创建连接池 配置连接池的属性值 -->
  1. <bean id="ds" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  2. 17 <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
  3. 18 <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/c3p0jdbctemplate"></property>
  4. 19 <property name="user" value="root"></property>
  5. 20 <property name="password" value="jay571018"></property>
  6. 21 </bean>

以上就完成了对数据库的访问(向数据库中插入了一条记录),个人练习总结,请多指教。

-----------------------------------------

欢迎大家转载,但请注明原创链接:http://www.cnblogs.com/Joke-Jay/p/6502507.html

 

Spring框架中 配置c3p0连接池 完成对数据库的访问的更多相关文章

  1. Spring框架中 配置c3p0连接池

    开发准备: 1.导入jar包: ioc基本jar jdbcTemplate基本jar c3p0基本jar 别忘了mysql数据库驱动jar 原始程序代码:不使用配置文件方式(IOC)生成访问数据库对象 ...

  2. Spring boot中配置HikariCP连接池

    # jdbc_config datasourcespring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasourc ...

  3. (七)Spring 配置 c3p0 连接池

    目录 在 Spring 核心配置文件中配置 c3p0 连接池 配置 JdbcTemplate 对象 在 service 层注入 userDao 在 UserDao 里面注入 JdbcTemplate ...

  4. JNDI和在tomcat中配置DBCP连接池 元数据的使用 DBUtils框架的使用 多表操作

    1 JNDI和在tomcat中配置DBCP连接池 JNDI(Java Naming and Directory Interface),Java命名和目录接口,它对应于J2SE中的javax.namin ...

  5. 在 Spring Boot 中使用 HikariCP 连接池

    上次帮小王解决了如何在 Spring Boot 中使用 JDBC 连接 MySQL 后,我就一直在等,等他问我第三个问题,比如说如何在 Spring Boot 中使用 HikariCP 连接池.但我等 ...

  6. Spring_day03--Spring配置c3p0连接池和dao使用jdbcTemplate

    Spring配置c3p0连接池和dao使用jdbcTemplate 1 spring配置c3p0连接池 第一步 导入jar包 第二步 创建spring配置文件,配置连接池 原始方式 (1)把代码在配置 ...

  7. Hibernate -- 配置c3p0连接池, 事务隔离级别, 管理session

    知识点1:配置c3p0连接池(了解) * 引入c3p0-0.9.1.jar * 在hibernate.cfg.xml文件中增加如下配置 <!-- C3P0连接池设定--> <!-- ...

  8. Hibernate的配置中,c3p0连接池相关配置

    一.配置c3p0 1.导入 hibernate-c3po连接池包,Maven地址是:http://mvnrepository.com/artifact/org.hibernate/hibernate- ...

  9. Hibernate配置C3P0连接池

    引入C3PO包 在hibernate.cfg.xml文件中配置 <!-- 数据库连接池的使用 --> <!-- 选择使用C3P0连接池 --> <property nam ...

随机推荐

  1. instanceof typeof

    //清单 6. JavaScript instanceof 运算符代码 function instance_of(L, R) {//L 表示左表达式,R 表示右表达式 var O = R.protot ...

  2. 360路由器+花生壳实现外网访问SVN服务器

    注册花生壳账号 花生壳注册地址:https://console.oray.com/passport/register.html?fromurl=http%3A%2F%2Fhsk.oray.com%2F ...

  3. OSG开发概览(转载)

    OSG开发概览 1 OSG基础知识 Ø OSG是Open Scene Graphic 的缩写,OSG于1997年诞生于以为滑翔机爱好者之手,Don burns  为了对滑翔机的飞行进行模拟,对open ...

  4. plupload 异步上传插件使用心得

    plupload 可以不依赖jquery,并且提供了 html5,flash,silverlight,html4 多种上传模式,使用起来比较简单,上一篇博客中介绍了其主要参数哈函数 一.简化用法 &l ...

  5. 使用滚动条(ActionBar)

    活动条(ActionBar)是Android3.0的重要更新之一.ActionBar位于传统标题栏的位置,也就是显示屏幕的顶部.ActionBar可显示应用的图标和Activity标题——也就是前面应 ...

  6. thinkphp 配置项总结

    'URL_PATHINFO_DEPR'=>'-',//修改URL的分隔符 'TMPL_L_DELIM'=>'<{', //修改左定界符 'TMPL_R_DELIM'=>'}&g ...

  7. Java Swing jpanel paint方法执行两次的问题

    Java Swing jpanel paint方法执行两次的问题: 在其他环境下执行了两次,自己测试怎么都是执行了一次,记录一下这个问题:需要后继工作: 可能是进行各种参数设置的时候导致了paint方 ...

  8. 如何从mysql中将数据导入到sqlserver

    本文讨论如何把MySQL的数据库导入到SQL Server中,所以首先你需要把两种数据库都安装了,再进行以下步骤. 一.为 MySQL安装ODBC驱动 1. 下载MySQL ODBC Connecto ...

  9. 在C++中反射调用.NET(三)

    在.NET与C++之间传输集合数据 上一篇<在C++中反射调用.NET(二)>中,我们尝试了反射调用一个返回DTO对象的.NET方法,今天来看看如何在.NET与C++之间传输集合数据. 使 ...

  10. css3 UI 修饰——回顾

    1.box-shadow 属性向框添加一个或者多个阴影. 语法: box-shadow: h-shadow v-shadow blur spread color inset h-shadow 必须,水 ...