2011-01-09 5 views
0

私は質問がある、私はjava.sqlをインポートするカスタムクラスがあります。 ;私はjspページを作成しています.JSPページではカスタムクラスのページインポートを行いましたが、カスタムクラスデータベースメソッドを呼び出そうとすると作業ができませんでした。私はjava.sqlのページインポートを行ったときだけです。でしたか? .classファイルにインポートされたカスタムクラスのインポートされたAPIもそうですか?は.classファイルにインポートされたカスタムクラスです。

An error occurred at line: 6 in the jsp file: /resetpw.jsp 
Statement cannot be resolved to a type 
3: 
4: <% 
5: db.connect(); 
6: Statement stmt = db.getConnection().createStatement(); 
7: ResultSet rs = stmt.executeQuery("SELECT * FROM created_accounts"); 
8: 
9: 


An error occurred at line: 7 in the jsp file: /resetpw.jsp 
ResultSet cannot be resolved to a type 
4: <% 
5: db.connect(); 
6: Statement stmt = db.getConnection().createStatement(); 
7: ResultSet rs = stmt.executeQuery("SELECT * FROM created_accounts"); 
8: 
9: 
10: 


Stacktrace: 
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:93) 
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330) 
    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:451) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:319) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:298) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:286) 
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:565) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:309) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 

note The full stack trace of the root cause is available in the Apache Tomcat/5.5.31 logs. 

が編集されました。私がjava.sql。*のページのインポートをしなかった場合、何がエラーになるかを追加しました。

+0

こんにちは、私はちょうど私の質問を編集しました – sutoL

答えて

1

単純なのは、java.sqlパッケージに含まれているStatementクラスとResultsetクラスを使用していることです。したがって、JSPでjava.sqlパッケージをインポートする必要があります。

カスタムクラスのすべてのdb作業を行い、このクラスを必要としないJSPでメソッドを呼び出すと、Jspページでjava.sqlのインポートを省略できます。

1つのクラスにインポートされたAPIは、ファーストクラスを呼び出す別のクラスまたはページでは使用できません。 .classファイルには含まれていません。

あなたは私の意見を得ることを望みます。

1

ハリー・ジョイが正しく、インポート・ステートメントが必要です。ここではJSPページの一部の骨格は次のとおりです。

<%@ page language ="java" %> 
<%@ page import="java.sql.*" %> 
<%@ page import="java.io.*" %> 
<%@ page import="java.util.*" %> 

...some stuff... 

<% 
String paramT1=request.getParameter("t1"); 
String paramT2=request.getParameter("t2"); 
%> 

...some stuff.. 

<% 
try{ 
Class.forName("your_jdbc_drier_class"); 
Connection con=DriverManager.getConnection("connection_url","username","password"); 

PreparedStatement st; 
st = con.prepareStatement("Insert into ch values (1,2)"); 
st.setString(1,fname); 
st.setString(2,lname); 
st.executeUpdate(); 
} 
catch(Exception e1) 
{ 
out.println("cannot display the records"); 
} 
%> 
... some stuff ... 

しかし、これは私が強く、コンテナおよびJSTL SQLでJNDIを使用することをお勧めしたい、動作するはずです。ここでは役に立つかもしれませんいくつかのチュートリアルがあります:

  1. JSTL SQL tutorial from IBM
  2. JSTL SQL without JNDI from JAVA2S
  3. JNDI in Tomcat
関連する問題