25

Oracle11gデータベースを使用しています。dbからデータにアクセスしようとすると、エラーjava.sql.SQLException:ORA-03115:サポートされていないネットワークデータ型または表現が表示されていました。このエラーの意味がわかりません。

私のコードは:

 String uname,pass;
    ResultSet rs = null;
    response.setContentType("text/html");
    PrintWriter out=response.getWriter();
  try
  {
    uname=request.getParameter("uname");
    pass=request.getParameter("pass");
    Connection con=prepareConnection();
    String Query="select uname from passmanager where pass=?";
    PreparedStatement ps=con.prepareStatement(Query);
    ps.setString(1,pass);
    rs=ps.executeQuery(Query);
    if (rs.next() && uname.equalsIgnoreCase(rs.getString("uname")) || uname.equalsIgnoreCase(rs.getString("email"))) {
    HttpSession session = request.getSession(true);
    session.setAttribute("uname", rs.getString(1));

    ServletContext context = getServletContext();
    RequestDispatcher dispatcher = context
                    .getRequestDispatcher("/profile");
    dispatcher.forward(request, response);
  }

誰かが私がこの問題を解決するのを手伝ってくれます。

4

3 に答える 3

86

それ以外の:

rs = ps.executeQuery(Query);

実行する必要があります:

rs = ps.executeQuery();

それ以外の場合は、ステートメントの準備を解除し、新しいSQLステートメントを割り当てたため(同じであっても)、すべてのパラメーターが失われます。

于 2013-01-13T11:16:05.390 に答える
0

メール列を追加

select uname, email from passmanager where pass=?
于 2013-01-13T10:39:39.370 に答える
0

このエラーは、結果セットにない名前(この場合はrs.getString( "uname"))でフィールドを取得しようとすると表示されます。

そして、igrが言ったように、(rs.getString( "email")を使用して)電子メールフィールドを取得しようとしていますが、クエリに含まれていないため、これはエラーです。

この会話を見つけたのは、文字列の最後に空白があるフィールド(rs.getString( "uname")の代わりにrs.getString( "uname"))を取得しようとしたときに、アプリケーションで同じエラーが発生したためです。 。

そして、クエリから取得したフィールドの正しい名前を使用して修正します。

お役に立てば幸いです!;)

于 2013-09-20T11:43:55.543 に答える