麻烦帮我看下这个报错是哪里的问题

来源:-

zoeyqq

2016-03-23 16:21

求大神解答。。。。。


报错信息:

java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@172.17.11.60:1521:HDQTLS

at java.sql.DriverManager.getConnection(DriverManager.java:596)

at java.sql.DriverManager.getConnection(DriverManager.java:215)

at util.DBHelper.getConnection(DBHelper.java:34)

at dao.ItemsDAO.getAllItems(ItemsDAO.java:22)

at org.apache.jsp.index_jsp._jspService(index_jsp.java:173)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)


at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)

at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2500)

at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2489)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Thread.java:745)



代码如下:

package util;


import java.sql.Connection;

import java.sql.DriverManager;


public class DBHelper {

   

private static final String driver = "oracle.jdbc.driver.OracleDriver"; //数据库驱动

//连接数据库的URL地址

private static final String url="jdbc:oracle:thin:@172.17.11.60:1521:HDQTLS"; 

private static final String username="dbusrmkt";//数据库的用户名

private static final String password="futuremkt";//数据库的密码

    

private static Connection conn=null;

//静态代码块负责加载驱动

static 

{

try

{

Class.forName(driver);

}

catch(Exception ex)

{

ex.printStackTrace();

}

}

//单例模式返回数据库连接对象

public static Connection getConnection() throws Exception

{

if(conn==null)

{

conn = DriverManager.getConnection(url, username, password);

return conn;

}

return conn;

}

public static void main(String[] args) {

try

{

  Connection conn = DBHelper.getConnection();

  if(conn!=null)

  {

  System.out.println("数据库连接正常!");

  }

  else

  {

  System.out.println("数据库连接异常!");

  }

}

catch(Exception ex)

{

ex.printStackTrace();

}

}

}


PS:以上我run了一遍能返回---数据库连接正常!  这个提示


package dao;


import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.util.ArrayList;


import util.DBHelper;


import entity.Items;


//商品的业务逻辑类

public class ItemsDAO {


// 获得所有的商品信息

public ArrayList<Items> getAllItems() {

Connection conn = null;

PreparedStatement stmt = null;

ResultSet rs = null;

ArrayList<Items> list = new ArrayList<Items>(); // 商品集合

try {

conn = DBHelper.getConnection();

String sql = "select * from items;"; // SQL语句

stmt = conn.prepareStatement(sql);

rs = stmt.executeQuery();

while (rs.next()) {

Items item = new Items();

item.setId(rs.getInt("id"));

item.setName(rs.getString("name"));

item.setCity(rs.getString("city"));

item.setNumber(rs.getInt("number"));

item.setPrice(rs.getInt("price"));

item.setPicture(rs.getString("picture"));

list.add(item);// 把一个商品加入集合

}

return list; // 返回集合。

} catch (Exception ex) {

ex.printStackTrace();

return null;

} finally {

// 释放数据集对象

if (rs != null) {

try {

rs.close();

rs = null;

} catch (Exception ex) {

ex.printStackTrace();

}

}

// 释放语句对象

if (stmt != null) {

try {

stmt.close();

stmt = null;

} catch (Exception ex) {

ex.printStackTrace();

}

}

}


}


// 根据商品编号获得商品资料

public Items getItemsById(int id) {

Connection conn = null;

PreparedStatement stmt = null;

ResultSet rs = null;

try {

conn = DBHelper.getConnection();

String sql = "select * from items where id=?;"; // SQL语句

stmt = conn.prepareStatement(sql);

stmt.setInt(1, id);

rs = stmt.executeQuery();

if (rs.next()) {

Items item = new Items();

item.setId(rs.getInt("id"));

item.setName(rs.getString("name"));

item.setCity(rs.getString("city"));

item.setNumber(rs.getInt("number"));

item.setPrice(rs.getInt("price"));

item.setPicture(rs.getString("picture"));

return item;

} else {

return null;

}


} catch (Exception ex) {

ex.printStackTrace();

return null;

} finally {

// 释放数据集对象

if (rs != null) {

try {

rs.close();

rs = null;

} catch (Exception ex) {

ex.printStackTrace();

}

}

// 释放语句对象

if (stmt != null) {

try {

stmt.close();

stmt = null;

} catch (Exception ex) {

ex.printStackTrace();

}

}


}

}

//获取最近浏览的前五条商品信息

public ArrayList<Items> getViewList(String list)

{

System.out.println("list:"+list);

ArrayList<Items> itemlist = new ArrayList<Items>();

int iCount=5; //每次返回前五条记录

if(list!=null&&list.length()>0)

{

   String[] arr = list.split(",");

   System.out.println("arr.length="+arr.length);

   //如果商品记录大于等于5条

   if(arr.length>=5)

   {

      for(int i=arr.length-1;i>=arr.length-iCount;i--)

      {

     itemlist.add(getItemsById(Integer.parseInt(arr[i])));  

      }

   }

   else

   {

    for(int i=arr.length-1;i>=0;i--)

    {

    itemlist.add(getItemsById(Integer.parseInt(arr[i])));

    }

   }

   return itemlist;

}

else

{

return null;

}

}


}




=======jsp如下==============================

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>

<%@ page import="entity.Items"%>

<%@ page import="dao.ItemsDAO"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <base href="<%=basePath%>">

    

    <title>My JSP 'index.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">    

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">

<!--

<link rel="stylesheet" type="text/css" href="styles.css">

-->

<style type="text/css">

  div{

     float:left;

     margin: 10px;

  }

  div dd{

     margin:0px;

     font-size:10pt;

  }

  div dd.dd_name

  {

     color:blue;

  }

  div dd.dd_city

  {

     color:#000;

  }

</style>

  </head>

  

  <body>

    <h1>商品展示</h1>

    <hr>

  

    <center>

    <table width="750" height="60" cellpadding="0" cellspacing="0" border="0">

      <tr>

        <td>

          

          <!-- 商品循环开始 -->

           <% 

               ItemsDAO itemsDao = new ItemsDAO(); 

               ArrayList<Items> list = itemsDao.getAllItems();

               if(list!=null&&list.size()>0)

               {

              for(int i=0;i<list.size();i++)

              {

                 Items item = list.get(i);

           %>   

          <div>

             <dl>

               <dt>

                 <a href="details.jsp?id=<%=item.getId()%>"><img src="images/<%=item.getPicture()%>" width="120" height="90" border="1"/></a>

               </dt>

               <dd class="dd_name"><%=item.getName() %></dd> 

               <dd class="dd_city">产地:<%=item.getCity() %>&nbsp;&nbsp;价格:¥ <%=item.getPrice() %></dd> 

             </dl>

          </div>

          <!-- 商品循环结束 -->

        

          <%

                   }

              } 

          %>

        </td>

      </tr>

    </table>

    </center>

  </body>

</html>


写回答 关注

2回答

  • zoeyqq
    2016-03-29 10:38:24

    http://img.mukewang.com/56f9ea7d0001eb8308600537.jpg

    回复 隔壁的小萧:如图

  • zoeyqq
    2016-03-24 15:40:22

    找到答案了,是oracle的驱动包没添加上

    隔壁的小萧

    我发生了和你一样的错误,什么叫驱动包没添加上

    2016-03-26 11:40:54

    共 1 条回复 >

JAVA遇见HTML——JSP篇

Java Web入门级教程JSP,带你轻松的学习JSP基础知识

248276 学习 · 3207 问题

查看课程

相似问题