在Java開發中,經常需要涉及到題目和選項的管理。為了方便管理和統計,我們通常需要將這些數據導入到數據庫中。那么,如何實現Java題目和選項的導入數據庫呢?下面就來詳細介紹。
首先,我們需要創建對應的數據表,可以使用SQL語句進行創建。例如:
CREATE TABLE question ( id int(11) NOT NULL AUTO_INCREMENT, title varchar(255) NOT NULL, PRIMARY KEY (id) ); CREATE TABLE option ( id int(11) NOT NULL AUTO_INCREMENT, content varchar(255) NOT NULL, question_id int(11) NOT NULL, is_answer tinyint(4) NOT NULL DEFAULT '0', PRIMARY KEY (id), KEY question_id (question_id), CONSTRAINT option_ibfk_1 FOREIGN KEY (question_id) REFERENCES question (id) );
其中,question表存儲題目信息,option表存儲選項信息。question_id是option表與question表之間的外鍵關聯。
接著,我們可以編寫Java代碼,實現將題目和選項數據導入到數據庫中。首先需要創建數據源和連接池:
// 創建數據源 ComboPooledDataSource dataSource = new ComboPooledDataSource(); dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test"); dataSource.setUser("root"); dataSource.setPassword("123456"); // 創建連接池 Connection conn = null; PreparedStatement pstmt = null; try { conn = dataSource.getConnection(); } catch (SQLException e) { e.printStackTrace(); }
然后,需要將題目和選項數據逐條插入到數據庫中:
String sql = "INSERT INTO question(title) VALUES(?)"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, "Java語言中,下列哪一項不是Java基本數據類型?"); pstmt.executeUpdate(); sql = "SELECT LAST_INSERT_ID()"; pstmt = conn.prepareStatement(sql); ResultSet rs = pstmt.executeQuery(); int questionId = 0; if (rs.next()) { questionId = rs.getInt(1); } sql = "INSERT INTO option(content, question_id, is_answer) VALUES(?, ?, ?)"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, "string"); pstmt.setInt(2, questionId); pstmt.setBoolean(3, false); pstmt.executeUpdate(); pstmt.setString(1, "int"); pstmt.setInt(2, questionId); pstmt.setBoolean(3, true); pstmt.executeUpdate(); pstmt.setString(1, "boolean"); pstmt.setInt(2, questionId); pstmt.setBoolean(3, false); pstmt.executeUpdate(); pstmt.setString(1, "char"); pstmt.setInt(2, questionId); pstmt.setBoolean(3, false); pstmt.executeUpdate();
以上的代碼實現的是將一道選擇題導入到數據庫中。首先向question表中插入題目信息,然后獲取插入的題目id,接著插入選項信息。需要注意的是,在插入選項信息的時候,需要將正確答案的is_answer字段設置為true。
通過以上步驟,Java題目和選項的導入數據庫操作就完成了。有了這個功能,我們可以輕松地進行Java題目和選項管理了。