gpt4 book ai didi

java - 具有数据库访问功能的 JSP 测验应用程序

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

我正在开发一个 Java 测验应用程序。该申请将包含 20 个问题,采用以下形式之一:

What is the english word for the german word xxxx?

What is the germanword of the english word xxxx?

我创建了一个数据库,其中包含一个单词表和一个用于向该表添加单词的页面。该表由以下列组成: germanWord、gender、englishWord

我的问题是,在每个问题上,我想从该数据库中随机选择一个单词来形成问题,例如:

What is the german word of the english word wordTable.getEnglishName?

最后,这个问题是一个多项选择问题,所以我是否可以在 4 个可能的答案之一中插入一个命令,从为该问题选择的同一条目中获取相关答案?

<input type="radio" name="q1Answer" value="A"/><label for="A">A) fixed answer</label><br/>
<input type="radio" name="q1Answer" value="B"/><label for="B">B) fixed answer</label><br/>
<input type="radio" name="q1Answer" value="C"/><label for="C">C) *get name from the database*</label><br/>
<input type="radio" name="q1Answer" value="D"/><label for="D">D) fixed answer</label><br/><br/>



package org.me.jsp.beans;

import java.sql.*;
import java.util.*;

public class WordDataBean {


private Connection connection;
private PreparedStatement addWord, getWords, removeWord, getRandEnglishWord;

public WordDataBean() throws Exception {

try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/university2", "root",
"");

getWords = connection.prepareStatement("SELECT * FROM word");

addWord = connection.prepareStatement("INSERT INTO university2.word ( "
+ "germanName, gender, englishName ) " + "VALUES ( ?, ?, ?);");

removeWord = connection.prepareStatement("DELETE FROM university2.student "
+ "WHERE germanName='?';");
getRandEnglishWord= connection.prepareStatement("SELECT englishName FROM word"
+ "ORDER BY RAND() LIMIT 1");
} catch (SQLException sqle) {
sqle.printStackTrace();
}

}

public List<WordBean> getWordList() throws SQLException {
List<WordBean> wordList = new ArrayList<WordBean>();

// obtain list of titles
ResultSet results = getWords.executeQuery();

// get row data
while (results.next()) {
WordBean word = new WordBean();

word.setGermanName(results.getString(1));
word.setGender(results.getString(2));
word.setEnglishName(results.getString(3));

wordList.add(word);
}

return wordList;
}

public void addWord(WordBean word) throws SQLException {
addWord.setString(1, word.getGermanName());
addWord.setString(2, word.getGender());
addWord.setString(3, word.getEnglishName());
addWord.executeUpdate();
}

public void removeWord(WordBean word) throws SQLException{
removeWord.setString(1,word.getGermanName());
removeWord.executeUpdate();
}
public void randomEnglishWord(WordBean word) throws SQLException{
getRandEnglishWord.setString(1, word.getEnglishName());
getRandEnglishWord.executeQuery();
}
protected void finalize() {
try {
getWords.close();
addWord.close();
connection.close();
} catch (SQLException sqlException) {
sqlException.printStackTrace();
}
}
}

这里是一个问题 jsp 页面 q1.jsp 的示例:

<%-- 
Document : q1
Created on : 06-May-2012, 18:54:24
Author : encore
--%>

<!--This JSP acts as the first question in a multiple choice quiz, with the user
asked to submit their answer to the question-->

<?xml version = "1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Big Java Quiz, question 1</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<%if(request.getParameter("choice").equals("N"))
out.print("<meta http-equiv='refresh' content='0;url=options.jsp'/>");
//Redirects user back to index if they did not want to take quiz%>
<form action="q2.jsp" method="POST">
<b>Question 1.</b> What is the German noun for the English word ______?<br/><br/>
<input type="radio" name="q1Answer" value="A"/><label for="A">A) Exception generator</label><br/>
<input type="radio" name="q1Answer" value="B"/><label for="B">B) Exception manipulator</label><br/>
<input type="radio" name="q1Answer" value="C"/><label for="C">C) Exception handler</label><br/>
<input type="radio" name="q1Answer" value="D"/><label for="D">D) Exception monitor</label><br/><br/>
<input type="submit" value="Submit"/>
</form>
</body>
</html>

最佳答案

假设您将问题提取到列表中:

    List<WordBean> wordList = getWordList();
List<String> answersList = new ArrayList<String>();
Random random = new Random();
Random forAnswers = new Random();

WordBean goodOne = wordList.get(random.nextInt(wordList.size()));
//take it out from the list
wordList.remove(goodOne);
//add it to the answers list
answersList.add(goodOne.getGermanName());
WordBean fakeOne = wordList.get(random.nextInt(wordList.size()));
//take it out from the list
wordList.remove(fakeOne);
//add it to the answers list
answersList.add(fakeOne.getGermanName());
WordBean fakeTwo = wordList.get(random.nextInt(wordList.size()));
//take it out from the list
wordList.remove(fakeTwo);
//add it to the answers list
answersList.add(fakeTwo.getGermanName());

%>What is the english word for the german word <%=goodOne.getGermanName()%>

<%
char letter = 'A';
for (String answer:answersList){
%>
<input type="radio" name="q1Answer" value=""/><label for="<%=letter%>"><%=letter%>)<%=answerList.get(forAnswers.getNextInt(3))> />
<%
//point to the next letter
letter++;
}

关于java - 具有数据库访问功能的 JSP 测验应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10473267/

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