No suitable driver found for jdbc:oracle(已解决,详细见红色字体)

[org.hibernate.util.JDBCExceptionReporter.class 2012-03-13 17:36:09 WARN ] SQL Error: 0, SQLState: 08001
[org.hibernate.util.JDBCExceptionReporter.class 2012-03-13 17:36:09 ERROR ] No suitable driver found for jdbc:oracle:thin:@172.16.146.3:1521:gzdec
[org.hibernate.cfg.SettingsFactory.class 2012-03-13 17:36:09 WARN ] Could not obtain connection metadata
java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@172.16.146.3:1521:gzdec
	at java.sql.DriverManager.getConnection(DriverManager.java:602)
	at java.sql.DriverManager.getConnection(DriverManager.java:154)
	at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:291)
	at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:277)
	at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:259)
	at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:241)
	at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
	at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:72)
	at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1881)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1174)
	at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:825)
	at org.springframework.orm.hibernate3.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:751)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1202)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1172)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:428)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:284)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
	at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:244)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:187)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)



SPRING配置文件:

<!-- SessionFactory的第一种方式:不导入原来配置文件hibernate.cfg.xml -->
	<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSource"></property>
		
		<property name="mappingResources">
			<list>
				<value>com/gzedu/hbm/LcmsMutualDyna.hbm.xml</value>
				<value>com/gzedu/hbm/LcmsTermcourseAct.hbm.xml</value>
				<value>com/gzedu/hbm/LcmsTermcourseActindex.hbm.xml</value>
				<value>com/gzedu/hbm/LcmsTermcourseClass.hbm.xml</value>
				<value>com/gzedu/hbm/LcmsTermCourseinfo.hbm.xml</value>
				<value>com/gzedu/hbm/LcmsTermcourseTask.hbm.xml</value>
				<value>com/gzedu/hbm/LcmsTermcourseTaskChpt.hbm.xml</value>
				<value>com/gzedu/hbm/LcmsUserChoose.hbm.xml</value>
				<value>com/gzedu/hbm/LcmsUserStud.hbm.xml</value>
				<value>com/gzedu/hbm/LcmsCourseChapterinfo.hbm.xml</value>
				<value>com/gzedu/hbm/LcmsTempStudentScore.hbm.xml</value>
			</list>
		</property>
		
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
				<prop key="hibernate.show_sql">false</prop>
				<prop key="characterEncoding">utf-8</prop>
				<prop key="hibernate.c3p0.min_size">2</prop>
				<prop key="hibernate.c3p0.max_size">30</prop>
				<prop key="hibernate.c3p0.timeout">10000</prop>
				<prop key="hibernate.c3p0.max_statements">50</prop>
				<prop key="hibernate.c3p0.idle_test_period">3000</prop>
			</props>
		</property>
	</bean>
	<!-- SessionFactory的第二种方式:导入原来配置文件hibernate.cfg.xml 
	<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="configLocation" value="classpath:hibernate.cfg.xml" />  
        <property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration" />
	</bean>
	-->
	
	<bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName"
            value="oracle.jdbc.driver.OracleDriver">
        </property>
        <!-- 开发库 
        <property name="url"
            value="jdbc:oracle:thin:@xxxx:1521:develop">
        </property>
        <property name="username" value="yya_zyjylcms"></property>
        <property name="password" value="develop"></property>
        -->
        
        <!-- 测试库 -->
        <property name="username" value="yya_zyjylcms"></property>
        <property name="password" value="password"></property>
        <property name="url">
        	<value>jdbc:oracle:thin:@xxx:1521:gzdec</value>
        </property>
    </bean>



Oracle包为ojdbc14.jar已经添加到buildpath中。

 

 

网上的解决方案:

一是:连接URL格式出现了问题(Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/XX","root","XXXX")
二是:驱动字符串出错(com.mysql.jdbc.Driver)

三是Classpath中没有加入合适的mysql_jdbc驱动

但是呢。我都试过了,URL没问题,驱动也没问题。可能是Classpath的问题,然而我试了也不行?问题何在呢?



问题出在此类中:

org.springframework.jdbc.datasource.DriverManagerDataSource
此类没有为oracle的URL找到相应的驱动

修改类为:(使用第三方包)org.apache.commons.dbcp.BasicDataSource

即需要导入包:

commons-dbcp-xx.jar

commons-pool-xx.jar

问题即可解决

<bean id="dataSource"
        class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName"
            value="oracle.jdbc.driver.OracleDriver">
        </property>
        <!-- 开发库 
        <property name="url"
            value="jdbc:oracle:thin:@172.16.172.180:1521:develop">
        </property>
        <property name="username" value="yya_zyjylcms"></property>
        <property name="password" value="develop"></property>
        -->
        
        <!-- 测试库 -->
        <property name="username" value="yya_zyjylcms"></property>
        <property name="password" value="password"></property>
        <property name="url">
        	<value>jdbc:oracle:thin:@172.16.146.3:1521:gzdec</value>
        </property>
    </bean>




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

psyuhen

你的鼓励是我最大的动力谢谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值