1
我正在開發一個java測驗應用程序。該應用程序將包括下列形式之一的20個問題:帶數據庫訪問的JSP測驗應用程序
什麼是德語單詞XXXX的英文單詞?
什麼是德語 英語單詞xxxx?
我已經創建了一個包含單詞表和頁面的數據庫,用於向該表添加單詞。 表包括以下欄:germanWord,性別,englishWord
我的問題是,在每一個問題,我想隨機挑選一個詞從數據庫中形成的問題等等,例如:
什麼是英語單詞的德語單詞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>
我發現困難瞭解如何表達該命令以從數據庫獲取值。你想讓我發佈一個問題的jsp頁面的例子來向你展示我迄今爲止的構建方式嗎? –
你的問題基本上是從數據庫中以任意順序得到一個_words_(每個問題一個)量,然後顯示給用戶,對不對? –
由於我的測驗結構有邏輯 '一個jsp頁面的問題 - > sumbit - >轉到下一個問題(發送到下一個jsp)'我會說我只需要從數據庫中每次只獲取一個字 –