开发准备:

1.导入jar包:

ioc基本jar

jdbcTemplate基本jar

c3p0基本jar

别忘了mysql数据库驱动jar

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

 package org.dao;
import java.beans.PropertyVetoException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource; public class Dao {
public void add(){
/*
//使用spring框架中的jdbcTemplate完成数据库的访问 //设置数据库的信息
DriverManagerDataSource dmds=new DriverManagerDataSource();
dmds.setDriverClassName("com.mysql.jdbc.Driver");
dmds.setUrl("jdbc:mysql://localhost:3306/c3p0jdbctemplate");
dmds.setUsername("root");
dmds.setPassword("jay571018"); //创建JdbcTemplate对象 设置数据源
JdbcTemplate jdbcTemplate=new JdbcTemplate(dmds); //调用方法 实现数据库的访问
String sql="insert into User(name,password) values(?,?)";
jdbcTemplate.update(sql,"joke",520);
*/ //使用c3p0连接池 配置数据库的信息 然后创建JdbcTemplate对象 设置数据源 完成对数据库访问
ComboPooledDataSource datesourse=new ComboPooledDataSource();
try {
datesourse.setDriverClass("com.mysql.jdbc.Driver");
} catch (PropertyVetoException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
datesourse.setJdbcUrl("jdbc:mysql://localhost:3306/c3p0jdbctemplate");
datesourse.setUser("root");
datesourse.setPassword("jay571018");
//创建JdbcTemplate对象 设置数据源
JdbcTemplate jdbcTemplate=new JdbcTemplate(datesourse); //调用方法 实现数据库的访问
String sql="insert into User(name,password) values(?,?)";
jdbcTemplate.update(sql,"joke",520);
System.out.println("增加了一条信息。。。。。。。");
}
}
 package org.service;
import org.dao.*;
public class Service {
//想在service中调用dao对象的add方法 创建dao对象 生成对应的set方法
private Dao dao; //生成set方法 注入dao对象
public void setDao(Dao dao){
this.dao=dao;
}
public void add(){
dao.add();
}
}
 package org.test;
import org.junit.Test;
import org.service.Service;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestDemo {
@Test
public void testDemo(){
ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
Service s=(Service) ac.getBean("service");
s.add();
}
}
 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<bean id="dao" class="org.dao.Dao"></bean>
<bean id="service" class="org.service.Service">
<property name="dao" ref="dao"></property>
</bean>
</beans>

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

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

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

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

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

注入关系:

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

    <!-- service中注入dao对象 -->
29 <bean id="service" class="org.service.Service">
30 <property name="dao" ref="dao"></property>
31 </bean> 2.在dao类中要对数据库进行操作,所以创建jdbcTemplate对象,并且生成set方法
23     <!-- dao中注入jdbctemplate对象 -->
24 <bean id="dao" class="org.dao.Dao">
25 <property name="jdbcTemplate" ref="jdbctemplate"></property>
26 </bean>
3.但是jdbcTemplate没有设置数据源,所以我们导入了数据库连接池,而且在配置文件中直接生成了c3p0连接池对象,就是用于jdbcTemplate对象的实例化
33     <!-- 创建jdbctemplate对象  并且向其中注入连接池对象  dateSource是该对象中数据源的属性 -->
34 <bean id="jdbctemplate" class="org.springframework.jdbc.core.JdbcTemplate">
35 <property name="dataSource" ref="ds"></property>
36 </bean>
4. <!-- 创建连接池  配置连接池的属性值 -->    
     <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>

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

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

欢迎大家转载,但请注明原创链接: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. MyEclipse 自动换行

    打开Eclipse的Window菜单,然后Preferences->Java->Code Style->Formatter->Edit/Show(根据不同版本可用的按钮会不一样 ...

  2. 创建 github 仓库

    1. 创建入口 在右上角找到 “+” 然后,选择 “New repository” 进行创建. 2. 填入信息 输入名字和描述 . 选择 “Initialize this repository wit ...

  3. 小结IE6的坑

    1.z-index在position:relative/absolute等定位属性设置后还是无效,会导致top栏的导航栏目的子菜单被下面的层遮住,无法显示:解决办法:?http://www.wufan ...

  4. 如何使用PDO查询Mysql来避免SQL注入风险?ThinkPHP 3.1中的SQL注入漏洞分析!

    当我们使用传统的 mysql_connect .mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失去控制.虽然可以用mysql_real_escape_ ...

  5. Spark算子总结及案例

    spark算子大致上可分三大类算子: 1.Value数据类型的Transformation算子,这种变换不触发提交作业,针对处理的数据项是Value型的数据. 2.Key-Value数据类型的Tran ...

  6. c#使用DotNetZip封装类操作zip文件(创建/读取/更新)实例

    DotnetZip是一个开源类库,支持.NET的任何语言,可很方便的创建,读取,和更新zip文件.而且还可以使用在.NETCompact Framework中.  下载地址在这里:http://dot ...

  7. Tomcat 使用过程中的一些技巧

    url中文地址乱码 原因: tomcat默认的在url传输时是用iso8859-1编码. 解决方案一: 在使用get传输参数时,将参数中的中文转换成url格式,也就是使用urlEncode和urlDe ...

  8. LazyInitializationException--由于session关闭引发的异常

    1,页面中进行person.department.departmentName的读取 2,Action 中只读取了person,事务作用在Service的方法中 3,后台会有org.hibernate ...

  9. FP Tree算法原理总结

    在Apriori算法原理总结中,我们对Apriori算法的原理做了总结.作为一个挖掘频繁项集的算法,Apriori算法需要多次扫描数据,I/O是很大的瓶颈.为了解决这个问题,FP Tree算法(也称F ...

  10. 警告1909。无法创建快捷方式VMware Workstation Pro.Ink。解决方法(附 VMware_workstation 12的安装方法)

    电脑之前装过VMware 10,很长时间没用就卸载了,也没有在意卸载的干不干净,直到最近需要用Linux系统,重新安装了VMware 12,就出现下面这样的情况: 警告1909.无法创建快捷方式VMw ...