servlet中连接oracle数据库问题

lijun1991607 2014-03-19 08:52:43
package com.msb.Servlet.test;

import javax.servlet.*;
import javax.servlet.http.*;

import java.io.*;
import java.sql.*;

public class ShowRs extends HttpServlet {

@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

Connection conn = null;
Statement stmt = null;
ResultSet rs = null;

response.setContentType("text/html");
response.setCharacterEncoding("gb2312");
PrintWriter out = response.getWriter();

out.println("<table border=1>");
out.println("<tr><td>Content:</td></tr>");
try {
Class.forName("oracle.jdbc.OracleDriver");
//conn = DriverManager.getConnection("jdbc:mysql://localhost/bbs?user=root&password=12345678");
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL", "scott", "Windows");
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM EMP");
while(rs.next()){
out.println("<tr>");
out.println("<td>" + rs.getString("ENAME") + "</td>");
out.println("</tr>");
}
out.println("</table>");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if(rs != null) {
rs.close();
rs = null;
}
if(stmt != null) {
stmt.close();
stmt= null;
}
if(conn != null) {
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}

}
...全文
351 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
microhex 2015-01-08
  • 打赏
  • 举报
回复
Class.forName("oracle.jdbc.driver.OracleDriver");
omama1016 2015-01-08
  • 打赏
  • 举报
回复
要重新部署你的服务器,并且重新启动。
张小胖不胖 2014-03-20
  • 打赏
  • 举报
回复
引用 10 楼 lijun1991607 的回复:
[quote=引用 8 楼 y172158950 的回复:] 这2个玩意有关系么? 连不上数据库就连不上,怪Servlet干啥
在普通类上面能连接 在servlet类中无法连接[/quote] 如果是在Servlet中连接的话,先得页面向servlet发送请求,才可能会连接上吧,不然什么执行doGet()?对吧,很少有在servlet中连接数据库的。。。
lijun1991607 2014-03-20
  • 打赏
  • 举报
回复
引用 8 楼 y172158950 的回复:
这2个玩意有关系么? 连不上数据库就连不上,怪Servlet干啥
在普通类上面能连接 在servlet类中无法连接
lijun1991607 2014-03-20
  • 打赏
  • 举报
回复
引用 4 楼 quniandongtian 的回复:
不要犯低级的错误, 对于连接数据库这块不是太熟悉的话,写加载驱动这句话的时候:Class.forName()括号中先不写双引号,这样,就会自动提示出来了,最后再把双引号加上
不是这里的问题,我做了两个测试 总觉得是 tomcat没有加载这个驱动或者是没有连接到oracle数据库 总之不是代码上面的问题
dai_ 2014-03-20
  • 打赏
  • 举报
回复
这2个玩意有关系么? 连不上数据库就连不上,怪Servlet干啥
loveunittesting 2014-03-20
  • 打赏
  • 举报
回复
com.study.servlet.TestOracle 哪儿有个这个类啊,你这不玩呢吗?
小灯光环 2014-03-20
  • 打赏
  • 举报
回复
是楼上说的那么回事,建议你打点把类点出来,就不容易出错了。
-江沐风- 2014-03-20
  • 打赏
  • 举报
回复
引用 3 楼 quniandongtian 的回复:
Class.forName("oracle.jdbc.driver.OracleDriver"); 兄弟啊,你少了个driver
不错。
张小胖不胖 2014-03-20
  • 打赏
  • 举报
回复
不要犯低级的错误, 对于连接数据库这块不是太熟悉的话,写加载驱动这句话的时候:Class.forName()括号中先不写双引号,这样,就会自动提示出来了,最后再把双引号加上
张小胖不胖 2014-03-20
  • 打赏
  • 举报
回复
Class.forName("oracle.jdbc.driver.OracleDriver"); 兄弟啊,你少了个driver
bj_java001 2014-03-20
  • 打赏
  • 举报
回复

啥也不说了,看图吧。
lijun1991607 2014-03-19
  • 打赏
  • 举报
回复
另 在普通类中连接数据库 没一点问题。
lijun1991607 2014-03-19
  • 打赏
  • 举报
回复
老是出现
2014-3-19 20:46:17 org.apache.catalina.core.ApplicationContext log
信息: Marking servlet TestOracle as unavailable
2014-3-19 20:46:17 org.apache.catalina.core.StandardWrapperValve invoke
严重: Allocate exception for servlet TestOracle
java.lang.ClassNotFoundException: com.study.servlet.TestOracle
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
	at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:532)
	at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:514)
	at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:133)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1137)
	at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:858)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:136)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
	at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1822)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:619)
请问该怎么处理啊

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧