我可以使用java连接到Oracle 10g(使用ojdbc14.jar驱动程序)。但是当我在servlet或扩展名为.jsp的文件中使用相同的代码时,我发现类未找到异常。我无法理解为什么会这样。我们在java和jsp中有不同的JDBC连接字符串吗?这是我使用java和jsp连接到oracle的东西:
Class.forName("oracle.jdbc.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:xe";
//Xe being the database name
String usr = "username";
String pwd = "pwd";
使用java工作正常,但jsp会出错。
答案 0 :(得分:4)
我找到了解决方案......
这很容易......我将特定于oracle数据库和apache tomcat服务器。
从oracle或任何来源下载ojdbc6.jar
将它放在你的tomcat / lib /中(无论你使用xampp还是任何放大器捆绑,它都在那里) 重新启动你的服务器是必须的,否则你只会想知道lolz。
试试这段代码吧!! !!
<%@ page import="java.sql.*" %>
<HTML>
<HEAD>
<TITLE>Simple JSP to Oracle connection Example</TITLE>
</HEAD>
<BODY>
<%
Connection conn = null;
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "tiger");
out.println("connected....!!");
}
catch(Exception e)
{
out.println("Exception : " + e.getMessage() + "");
}
%>
</BODY>
</HTML>
答案 1 :(得分:2)
如果您使用的是CLASSPATH环境变量,那么您的应用服务器会忽略它。这可能就是为什么它“适用于”Java而不是JSP。
我建议你不要那样依赖CLASSPATH。了解如何针对每种情况正确设置它。
我还建议不要将scriptlet代码放在JSP中。这将在短时间内成为维护的噩梦。
如果必须在JSP中放入数据库调用,请了解如何使用JSTL及其<sql>
标记。
答案 2 :(得分:1)
两者之间应该没有真正的区别。是WEB-INF / lib /子目录中的驱动程序jar吗?未找到类的异常通常意味着在类路径中找不到您的jar。
答案 3 :(得分:0)
<%@page import="java.sql.*"%>
<%@page import="oracle.jdbc.driver.*" %>
<%@page import="oracle.sql.*;" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<form id="form1" name="form1" method="get" action="but1.jsp">
<label>
Sr No:<input type="text" name="txt" /></br>
Name: <input type="text" name="txt1" />
</label>
<p> </p>
<p>
<input type="submit" name="but1" id="but1" value="Submit">
</input>
<% String s=request.getParameter("txt");
System.out.print(s);
String s1=request.getParameter("txt1");
Connection con;
Statement st;
ResultSet rs;
try{
System.out.println("hi");
Class.forName("oracle.jdbc.OracleDriver");
System.out.println("1");
con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","oracle-uname","oracle-password");
System.out.println("2");
st=con.createStatement();
System.out.println("3");
String query="insert into table1(srno, name) values ("+s+",'"+s1+"')";
System.out.println("4");
int rRs=st.executeUpdate(query);
System.out.println("5");
String q="Select * from table1 where srno="+s+"";
System.out.println("cats");
rs=st.executeQuery(q);
System.out.println("catty");
while(rs.next())
{
System.out.println("6");
out.println("number is: "+rs.getString(1));%>
</br>
<%out.print("name is: "+rs.getString(2));
}
}
catch(Exception ee)
{
System.out.println(ee.getMessage());
}
%>
</body>
</html>
“JDBC:预言:瘦:@localhost:1521:XE”=路径
设置路径.. 服务&gt;数据库&gt;司机&gt; oracle thin&gt;使用&gt;连接add jar ojdbc6.jar&gt;下一个&gt; jdbc url(在底部)&gt;将uname设置为system,将密码设置为oracle密码&gt;测试连接
jdbc url形成路径,即“jdbc:oracle:thin:@localhost:1521:XE”
一切顺利