Java 将JSP中的值添加到MySQL中的另一个表中
我试图从前端JSP和另一个名为Java 将JSP中的值添加到MySQL中的另一个表中,java,mysql,jsp,jdbc,Java,Mysql,Jsp,Jdbc,我试图从前端JSP和另一个名为questions的表向名为questionpaper的表中添加一些细节 在表questionpaper中,我有一个名为ExamID的列,我必须从另一个名为question的表中为该列添加一个ExamID column值。此ExamId值必须与从JSP页面添加的数据同时添加。添加JSP页面中的数据时没有任何错误,但是不能同时添加ExamId public int QuestionPaper(Questions paramQues) { // TODO Aut
questions
的表向名为questionpaper
的表中添加一些细节
在表questionpaper
中,我有一个名为ExamID
的列,我必须从另一个名为question
的表中为该列添加一个ExamID column
值。此ExamId值
必须与从JSP页面添加的数据同时添加。添加JSP页面中的数据时没有任何错误,但是不能同时添加ExamId
public int QuestionPaper(Questions paramQues) {
// TODO Auto-generated method stub
String query ="insert into questionpaper(Question,Opt1,Opt2,Opt3,Opt4,Answer,Marks,NegMarks,ExamId)values(?,?,?,?,?,?,?,?,?)";
int status=0;
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/onlineexam", "root", "admin");
PreparedStatement stat1 = con.prepareStatement(query);
if((paramQues.getAns1()!=null)&&(paramQues.getAns2()!=null)&&(paramQues.getAns3()!=null)&&(paramQues.getAns4()!=null)&&(paramQues.getMarks()!=null)&&(paramQues.getNegM()!=null)&&(paramQues.getQues()!=null))
{
System.out.println("implementation "+paramQues.getOption());
System.out.println("Marks-->"+paramQues.getMarks());
System.out.println("Ans->>"+paramQues.getAns1());
stat1.setString(1,paramQues.getQues());
stat1.setString(2,paramQues.getAns1());
stat1.setString(3,paramQues.getAns2());
stat1.setString(4,paramQues.getAns3());
stat1.setString(5,paramQues.getAns4());
stat1.setString(6,paramQues.getOption());
stat1.setInt(7,paramQues.getMarks());
stat1.setInt(8,paramQues.getNegM());
System.out.println("Ans->>"+paramQues.getAns1());
String query2="SELECT * FROM questions ORDER BY ExamId DESC LIMIT 1";
PreparedStatement stat2 = con.prepareStatement(query2);
ResultSet rs1 = stat2.executeQuery(query2);
Integer Examid= rs1.getInt("ExamId");
System.out.println("exam id-->"+Examid);
stat1.setInt(9,Examid);
stat1.executeUpdate();
Integer TotalQues= rs1.getInt("TotalQuestions");
String query3="SELECT * FROM questionpaper ORDER BY PaperId DESC LIMIT 1";
PreparedStatement stat3 = con.prepareStatement(query3);
ResultSet rs2 = stat3.executeQuery(query3);
Integer PaperId= rs2.getInt("PaperId");
if(PaperId<=TotalQues)
status=1;
else
status=0;
}
}
catch (Exception e)
{
System.out.println("Exception in FacultyTry->" + e);
}
return status;
}
您已经提到,您的表包含
ExamID
列&您正在SQL查询中使用ExamID
。以下任一查询包含错误的列名
您的SQL查询:
String query ="insert into questionpaper(Question,Opt1,Opt2,Opt3,Opt4,Answer,Marks,
NegMarks,ExamId)values(?,?,?,?,?,?,?,?,?)";
OR
String query2="SELECT * FROM questions ORDER BY ExamId DESC LIMIT 1";
必需的SQL查询:
Answer:l
j
d
d
options-->o3
Marks-->2
NegMarks-->1
implementation o3
Marks-->2
Ans->>l
Ans->>l
Exception in FacultyTry->java.sql.SQLException
String query ="insert into questionpaper(Question,Opt1,Opt2,Opt3,Opt4,Answer,Marks,
NegMarks,ExamID)values(?,?,?,?,?,?,?,?,?)";
OR
String query2="SELECT * FROM questions ORDER BY ExamID DESC LIMIT 1";
在您的代码中,您不需要准备一个没有由
?
表示的参数的语句
使用该语句执行查询
ResultSet rs1 = stat1.executeQuery(query2);
或
在catch语句中,使用e.printStackTrace(System.out)打印堆栈跟踪,并正确识别哪一行出现异常,然后发布该行是您的表名
questions
还是question
?您检查过SQL查询了吗?是否包含正确的表名和列名?
Statement stat2 = con.createStatement();
ResultSet rs1 = stat2.executeQuery(query2);