Spring连接数据库: 
我的xml是这样的:(请指教!!!!) <bean id="dataSource1" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
<property name="driverClassName"> 
<value>oracle.jdbc.driver.OracleDriver</value> 
</property> 
<property name="url"> 我的javabean是: 
public class DbCon { 
// private static Log log = LogFactory.getLog(initFactory.class); 
private static final String file = "spring_datasource.xml"; 
private static DataSource dataSource1; 
public DbCon() { 
} /** 
* 工厂模式:根据参数不同,获取不同的数据源 
* @param flag String 
* @return Connection 
*/ 
public static Connection getConn(String flag) { 
Connection conn = null; 
ApplicationContext ctx = null; 
DbCon db = null; 
try { 
ctx = new ClassPathXmlApplicationContext(file); 
if (flag.equals("db1")) { 
db = (DbCon) ctx.getBean("databean1"); 
} conn = db.CreateConn(flag); 

catch (Exception e) { 
//log.error("get DBConnection error!"); 
e.printStackTrace(); 

return conn; 
} public void setDataSource1(DataSource dataSource1) { 
this.dataSource1 = dataSource1; 
} public DataSource getDataSource1() { 
return dataSource1; 

/** 
* 从DataSource中获取数据库连接 
* @param flag String 
* @return Connection 
*/ 
private static Connection CreateConn(String flag) { 
Connection conn = null; 
try { 
if (flag.equals("db1")) { 
conn = dataSource1.getConnection(); 


catch (SQLException e) { 
//log.error(e); 
e.printStackTrace(); 

return conn; 
} /** 
* 测试连接 
* @param args String[] 
*/ 
public static void main(String[] args) { 
DbCon t = new DbCon(); 
Connection con = t.getConn("db1"); 
System.out.println(con); 
} } 
<value>jdbc:oracle:thin:@172.18.11.13:1521:UTMES</value> 
</property> 
<property name="username"> 
<value>ims</value> 
</property> 
<property name="password"> 
<value>pw123098</value> 
</property> 
</bean> <bean id="databean1" class="com.DbCon"> 
<property name="dataSource1"> 
<ref bean="dataSource1"/> 
</property> 
</bean> </beans> 

解决方案 »

  1.   

    这是完整的xml:
    <beans><bean id="dataSource1" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
          <property name="driverClassName">
            <value>oracle.jdbc.driver.OracleDriver</value>
            </property>
          <property name="url">
            <value>jdbc:oracle:thin:@172.18.11.13:1521:UTMES</value>
          </property>
          <property name="username">
            <value>ims</value>
            </property>
          <property name="password">
            <value>pw123098</value>
            </property>
    </bean>    <bean id="databean1" class="com.DbCon">
            <property name="dataSource1">
                <ref bean="dataSource1"/>
            </property>
        </bean></beans>
      

  2.   

    这个好像是jsp编译有错误吧,跟数据库没关系
      

  3.   

    谢谢兄弟呀!我用此连接没问题!页面出的来!但换个spring就有问题呢!(请指教!)
    package com;import java.sql.*;
    import javax.sql.DataSource;public class DbCon {
      public DbCon() {
      }  public static Connection getcon() {
      /* Connection dbconn = null;
        javax.naming.Context initCtx = null;
        javax.naming.Context envCtx = null;
        try {
          initCtx = new javax.naming.InitialContext();
          envCtx = (javax.naming.Context) initCtx.lookup("java:comp/env");
          DataSource ds = (DataSource) envCtx.lookup("jdbc/upn");
          dbconn = ds.getConnection();
        }
        catch (Exception ex) {
          return null;
        }
        return dbconn;
      }*/  String jndi = "myjndi";
           Connection dbconn = null;
           try {
          Class.forName("oracle.jdbc.driver.OracleDriver");      try {
            dbconn = DriverManager.getConnection(
                "jdbc:oracle:thin:@172.18.11.13:1521:MESTEST", "ims",
                "pw123098");
          }
          catch (SQLException e1) {
            System.out.println("Error");
            try {
              throw e1;
            }
            catch (SQLException ex) {
            }
          }
        }
        catch (ClassNotFoundException e) {
          try {
            throw new SQLException();
          }
          catch (SQLException ex1) {
          }
        }
         return dbconn;
      }}
      

  4.   

    我又发现这个bean呀编译后!log4j:WARN No appenders could be found for logger (org.springframework.beans.factory.xml.XmlBeanDefinitionReader).log4j:WARN Please initialize the log4j system properly.java.sql.SQLException: ORA-01017: invalid username/password; logon denied
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289) at oracle.jdbc.ttc7.O3log.receive1st(O3log.java:407) at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:259) at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:346) at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:468) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314) at java.sql.DriverManager.getConnection(DriverManager.java:512) at java.sql.DriverManager.getConnection(DriverManager.java:171) at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:234) at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:220) at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:202) at com.DbCon.CreateConn(DbCon.java:69) at com.DbCon.getConn(DbCon.java:42) at com.DbCon.main(DbCon.java:85)null /*这是/** 
                 * 测试连接 
                 * @param args String[] 
                 */ 
                 public static void main(String[] args) { 
                 DbCon t = new DbCon(); 
                 Connection con = t.getConn("db1"); 
                 System.out.println(con); 
      

  5.   

    invalid username/password; logon denied
    =======================================
    如此明显的,用户名和密码不对啊
      

  6.   

    我又发现这个连接没问题了:问题就是
    at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:844) 
    at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:682) 
    at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:317) 
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:370) 
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:473) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:190) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) 
    atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256) 
    atorg.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) 
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) 
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    atorg.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) 
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) 
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) 
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2416) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) 
    atorg.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) 
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171) 
    atorg.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172) 
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) 
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) 
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) 
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) 
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) 
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) 
    at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:601) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392) 
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565) 
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619) 
    at java.lang.Thread.run(Thread.java:534)
      

  7.   

    是我太急!页面不用Spring是好的呀!要用Spring,帮我看看怎么办,大哥!
      

  8.   

    大哥有没有把数据库连接写到XML的例子呀!我是中国人!!!