使用jsp与Oracle 10g创建JDBC连接

时间:2010-06-25 09:00:09

标签: oracle jsp jdbc

我可以使用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会出错。

4 个答案:

答案 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>&nbsp;</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”

一切顺利