在spring开发中,c3p0.jar是啥东西,有啥作用,跟我们数据库驱动sqljdbc4.jar有啥不同

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在spring开发中,c3p0.jar是啥东西,有啥作用,跟我们数据库驱动sqljdbc4.jar有啥不同相关的知识,希望对你有一定的参考价值。

在spring配置文件中,老是有错误提示
Class 'com.mchange.v2.c3p0.ComboPooledDataSource' not found

c3p0 就是一个 数据库连接池 ,利用 sqljdbc4 建立与数据库的连接 , 并且管理这些连接,不用每次访问数据库都 重新发出数据库连接请求,只需要在c3p0的连接池中拿一个过来就 可以了,这样可以大大的提高性能。 参考技术A C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,c3p0.jar是它的驱动包,和sqljdbc4.jar一样都是驱动包,他们实现jdbc方式不一样追问

谢谢,那是不是我导入c3p0 .jar 就不用导入sqljdbc4.jar了啊

spring的ioc和aop都是啥??

什么是IoC

Ioc—Inversion of
Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”,那我们来深入分析一下:

控制是什么:传统Java
SE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而IoC是有专门一个容器来创建这些对象,即由Ioc容器来控制对象的创建;谁控制谁?当然是IoC
容器控制了对象;控制什么?那就是主要控制了外部资源获取(不只是对象包括比如文件等)。

为何是反转,哪些方面反转了:有反转就有正转,传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,也就是正转;而反转则是由容器来帮忙创建及注入依赖对象;为何是反转?因为由容器帮我们查找及注入依赖对象,对象只是被动的接受依赖对象,所以是反转;哪些方面反转了?依赖对象的获取被反转了。

IoC能做什么

IoC不是一种技术,只是一种思想,一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合、更优良的程序。传统应用程序都是由我们在类内部主动创建依赖对象,从而导致类与类之间高耦合,难于测试;有了IoC容器后,把创建和查找依赖对象的控制权交给了容器,由容器进行注入组合对象,所以对象与对象之间是松散耦合,这样也方便测试,利于功能复用,更重要的是使得程序的整个体系结构变得非常灵活。

其实IoC对编程带来的最大改变不是从代码上,而是从思想上,发生了“主从换位”的变化。应用程序原本是老大,要获取什么资源都是主动出击,但是在IoC/DI思想中,应用程序就变成被动的了,被动的等待IoC容器来创建并注入它所需要的资源了。

IoC和DI

DI—Dependency
Injection,即“依赖注入”:是组件之间依赖关系由容器在运行期决定,形象的说,即由容器动态的将某个依赖关系注入到组件之中。依赖注入的目的并非为软件系统带来更多功能,而是为了提升组件重用的频率,并为系统搭建一个灵活、可扩展的平台。通过依赖注入机制,我们只需要通过简单的配置,而无需任何代码就可指定目标需要的资源,完成自身的业务逻辑,而不需要关心具体的资源来自何处,由谁实现。

注:如果想要更加深入的了解IoC和DI,请参考大师级人物Martin Fowler的一篇经典文章《Inversion of Control
Containers and the Dependency Injection
pattern》,原文地址:http://www.martinfowler.com/articles/injection.html。

AOP:面向切面编程

什么是AOP:

概念:在软件业,AOP为Aspect Oriented
Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。(百度百科)

简单的说:就是将程序中重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础上,对我们的已有方法进行增强。

AOP的作用和优势:

作用:从定义中来看,就是为了在程序运行期间,不修改源码对已有方法进行增强。

优势:减少重复代码 提交了开发效率 维护方便

实现方式: 就是动态代理的技术

具体的作用:实现事务的控制 日志 和 安全模块

想系统的学习编程可以来我这看看,希望对您有所帮助!~

参考技术A 楼上那位说概念了。我多说下。
IOC就是容器,把创建对象这些东西都放在容器里创建了。你可以把这东西理解成类似工厂模式。
aop就是切面。你可以理解成这个东西就是面对一个方法的,比如一个方法他是做读取数据库的这么个方法,那么在方法的执行的各种时刻,before after, afterrunning,around这些时刻做一些东西,比如在读之前我打印一行日志我准备读了,结束打印一行我读完了,报错的时候打印一个日志我出错了。当然也可以干别的,比如调用别的方法。大致就是这么理解就行了。本回答被提问者采纳
参考技术B ioc是反向控制
AOP是面向切面编程

以上是关于在spring开发中,c3p0.jar是啥东西,有啥作用,跟我们数据库驱动sqljdbc4.jar有啥不同的主要内容,如果未能解决你的问题,请参考以下文章

spring与hibernate整合

SSM整合

hibernate使用c3p0数据源

关于c3p0 的报错:com.mchange.v2.c3p0......

Goods Step01:工具类的编写

SSO单点系列:CAS4.0 CAS整合SpringMVC+MyBatis实现数据库校验(04)