gpt4 book ai didi

java - 如何在 Java 中执行 2 个选择查询?

转载 作者:太空宇宙 更新时间:2023-11-04 13:00:41 25 4
gpt4 key购买 nike

我需要你的帮助来处理我正在 Eclipse 上工作的代码。当我尝试在 Java 中执行 2 个选择查询时,它似乎不起作用,我搜索了互联网,但找不到解决方案。我需要执行 2 个选择,因为我需要从数据库中获得的 2 个表中的数据。

表 1:问题表 2:选择

嗯,第一个查询似乎工作正常,因为我可以在执行时找到我的项目。表 2 中的项目给了我一个执行结果“未找到‘selid’列。”。//Selid 列在表 2 中。

我将错误的代码发布在底部,以便您可以帮助我。提前致谢。

public void doGet(HttpServletRequest req, HttpServletResponse res)
throws IOException, ServletException {


//String connectionURL = "jdbc:mysql://127.0.0.1:3306/newData";// newData is the database
//Connection connection;
Connection conn=null;

String dbName="teddb";

res.setContentType("text/html");
res.setCharacterEncoding("utf-8");
PrintWriter out = res.getWriter();
//String dbUserName="root";
//String dbPassword="root";

try{



String qid = "";
String question = "";
String sel1 = "";
String sel2 = "";
String sel3 = "";
String correct = "";
String selid ="";
String sel="";






Connection dbCon;


Class.forName(driver);
dbCon = DriverManager.getConnection(dbURL);
ResultSet rs;
ResultSet rs2;
Statement stmt;
Statement stmt2;



stmt = dbCon.createStatement();
stmt2 = dbCon.createStatement();

String qry = "";
String qry2 = "";



qry = "select * from questions";
qry2 = "select * from selections";

rs = stmt.executeQuery(qry);
stmt = dbCon.prepareStatement(qry);


rs2 = stmt2.executeQuery(qry2);
stmt2 = dbCon.prepareStatement(qry2);



String[] columns = new String[] { "qid",
"question_text" , "selid" , "selection_text" ,};


Random rn = new Random();
int range = 2 - 1 + 1;
int randomNum = rn.nextInt(range) + 1;

out.println(randomNum);



while (rs.next()) {

for (int i = randomNum; i <= randomNum; i++) {
question = rs.getString(columns[1]);
sel1 = rs.getString(columns[2]);
sel2 = rs.getString(columns[3]);

}
}

PreparedStatement pstmt;

for (int z=1;z<=3;z++){

selid = String.valueOf(rs.getString(columns[2]));
pstmt = dbCon.prepareStatement(qry2 + " where qid = ? and selid ='z'");
pstmt.setString(1, qid);
rs2 = pstmt.executeQuery();

while (rs2.next()) {

for (int i = randomNum; i <= randomNum; i++) {

if (z==1)
sel1 = rs.getString(columns[3]);
else if (z==2)
sel2 = rs.getString(columns[3]);
else
sel3 = rs.getString(columns[3]);

}
}
}

out.println("<!DOCTYPE html>"+
"<html><body>"+
"<form method=\"post\" action=\"demoServlet\">"+
"<b><h1>Ερώτηση</h1></b> <br><br>"+
"<b><h1>"+question+" </h1></b> <br><br>"+
"<b> 1: </b> <input type=\"radio\" name=\"iscorrect\" value=\"" + sel1 + "\"/><br>"+
"<b> 2: </b> <input type=\"radio\" name=\"iscorrect\" value=\"" + sel2 + "\"/> <br>"+
"<b> 3: </b> <input type=\"radio\" name = \"iscorrect\" value=\"" + sel3 + "\"/><br><br>"+

"<br><input type=\"submit\" name=\"submit\" value=\"Απάντηση\"/>"+
"</form></body></html>");






dbCon.commit();

String msg=" ";



rs.close();
rs2.close();
stmt.close();
dbCon.close();
}
catch (Exception e){
out.println(e);
}

概念是我有 2 个表格,我正在制作一个表格供用户回答一些问题。我正在执行这两个表,然后尝试通过提交将变量放入表单中。在同一个 servlet 中,DoPost 将在 DoGet 之后生效。

这是表格的示例。

questions      | selections
qid | question | qid | | selid | selection_text |correct
q1 | 1+1? | q1 1 5 0
q1 2 2 1 // true
q1 3 4 0

最佳答案

改变

rs = stmt.executeQuery(qry);
rs2 = stmt.executeQuery(qry2);

rs = stmt.executeQuery(qry);//first query
rs2 = stmt2.executeQuery(qry2);//second query

关于java - 如何在 Java 中执行 2 个选择查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34977838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com