选择

时间:2015-11-29 08:49:37

标签: java oracle oracle-sqldeveloper

我正在使用Oracle SQL Developer和Java应用程序。我想向DB询问这个查询:

select * from vocabolario, vocaboli_help where verbo=1 and 
 vocabolario.id = vocaboli_help.id and vocaboli_help.usato = 0

当我从SQL开发人员运行它时,查询有效,但是当从Eclipse运行它时stmt.executeQuery(string),其中stmt是Statement对象,它会抛出以下异常:SQL命令未正确结束。 我在字符串的末尾添加了一个分号,但它不起作用。

我将stmt.executeQuery(string)与其他查询一起使用,在这些情况下没有问题。我能看到的唯一区别是,在这种情况下,我在where中有AND条件。

Java代码:

private final static String NOME_DATABASE = "VOCABOLARIO", NOME_DATABASE_HELP ="VOCABOLI_HELP";
String type ="verbo";
    String query = "SELECT * FROM " + NOME_DATABASE + ", " + NOME_DATABASE_HELP +" WHERE " + type + " = 1 " +
                "AND " + NOME_DATABASE +".ID = " + NOME_DATABASE_HELP +".ID AND "+NOME_DATABASE_HELP+".USATO = 0";
    System.out.println(query);
    int cont = 0; 
    String result=""; 
    try {
        ResultSet res = statement.executeQuery(query);
        while(res.next()) {
            String cod = res.getString("ID").trim();
            String voc = res.getString("VOCABOLO").trim();
            String trad = res.getString("TRADUZIONE").trim();

            if(cont == n)
                result = cod + "," + voc + "," + trad;

            cont++; 
        }
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return result; 

`

2 个答案:

答案 0 :(得分:1)

public class HelloWorld extends HttpServlet {
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
      throws ServletException, IOException {
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    String title = "Reading  Request Parameters";

    out.println(
                "<HTML>\n" +
                "<HEAD><TITLE>" + title + "</TITLE></HEAD>\n"+
                "<H1 ALIGN=\"CENTER\">" + title + "</H1>\n" +
                "<UL>\n" +
                "  <LI><B>P1</B>: "
                + request.getParameter("P1") + "\n" +"</BODY></HTML>");
  }
}

你只需要一个简单的连接。

VOCABOLI_HELP或vocabolario_help您的代码和您的帖子不同

答案 1 :(得分:0)

谢谢大家,问题出在第二个表的名称中,但我认为这取决于Java代码sintax,正如@are建议的那样。 我更新了代码:

private static final String NOME_DATABASE_HELP = "VOCABOLIHELP"

我还修改了数据库中的表名,现在它可以工作了。我认为名称中的下划线存在问题(问题只出现在我所说的Java中),我不知道为什么。