Advertisement
Guest User

Untitled

a guest
Jan 20th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.31 KB | None | 0 0
  1. package survey;
  2.  
  3.  
  4. import java.sql.Connection;
  5. import java.sql.DriverManager;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8. import java.sql.Statement;
  9. import java.util.ArrayList;
  10. import java.util.HashMap;
  11.  
  12.  
  13. public class DatabaseHandler {
  14.  
  15. static float[][] resultTable = new float[10][5];
  16. static int pomoc;
  17. static java.sql.Connection connection;
  18.  
  19. public DatabaseHandler()
  20. {
  21. if (checkDriver("com.mysql.jdbc.Driver"))
  22. System.out.println(" ... OK");
  23. else
  24. System.exit(1);
  25. connection = connectToDatabase("jdbc:mysql://", "localhost:3306", "sob", "root", "");
  26. if (connection != null)
  27. System.out.print(" polaczenie OK\n");
  28. }
  29.  
  30.  
  31. public static boolean checkDriver(String driver) {
  32. System.out.print("Sprawdzanie sterownika:");
  33. try {
  34. Class.forName(driver).newInstance();
  35. return true;
  36. } catch (Exception e) {
  37. System.out.println("Error when loading driver!");
  38. return false;
  39. }
  40. }
  41.  
  42. public static Connection connectToDatabase(String kindOfDatabase, String adress,
  43. String dataBaseName, String userName, String password) {
  44. String baza = kindOfDatabase + adress + "/" + dataBaseName;
  45. java.sql.Connection connection = null;
  46. try {
  47. connection = DriverManager.getConnection(baza, userName, password);
  48. } catch (SQLException e) {
  49. System.out.println("Error connecting to database!");
  50. System.exit(1);
  51. }
  52. return connection;
  53. }
  54.  
  55. private static Statement createStatement(Connection connection) {
  56. try {
  57. return connection.createStatement();
  58. } catch (SQLException e) {
  59. System.out.println("Error - > createStatement! " + e.getMessage() + ": " + e.getErrorCode());
  60. System.exit(3);
  61. }
  62. return null;
  63. }
  64.  
  65. private static void closeConnection(Connection connection, Statement s) {
  66. try {
  67. s.close();
  68. connection.close();
  69. } catch (SQLException e) {
  70. System.out
  71. .println("Error closing database! " + e.getMessage() + ": " + e.getErrorCode());;
  72. System.exit(4);
  73. }
  74.  
  75. }
  76.  
  77. private static ResultSet executeQuery(Statement s, String sql) {
  78. try {
  79. return s.executeQuery(sql);
  80. } catch (SQLException e) {
  81. System.out.println("Query couldn't be executed! " + e.getMessage() + ": " + e.getErrorCode());
  82. }
  83. return null;
  84. }
  85. private static int executeUpdate(Statement s, String sql) {
  86. try {
  87. return s.executeUpdate(sql);
  88. } catch (SQLException e) {
  89. System.out.println("Statement couldn't be executed! " + e.getMessage() + ": " + e.getErrorCode());
  90. }
  91. return -1;
  92. }
  93.  
  94. public HashMap<Integer, String> getQuestions()
  95. {
  96. System.out.println("Getting questions from database");
  97. HashMap<Integer, String> questionsMap = new HashMap<>();
  98. Statement sqlStatement = createStatement(connection);
  99. ResultSet result = executeQuery(sqlStatement, "Select * from Questions");
  100.  
  101. try {
  102. while(result.next())
  103. {
  104. Object number = result.getObject(1);
  105. Object question = result.getObject(2);
  106. questionsMap.put(Integer.parseInt(number.toString()), question.toString());
  107. }
  108. }
  109. catch (SQLException e) {
  110. System.out.println("Error getting questions from database! " + e.getMessage() + ": " + e.getErrorCode());
  111. }
  112.  
  113. return questionsMap;
  114. }
  115.  
  116. public HashMap<Integer, ArrayList<String>> getAnswers()
  117. {
  118. System.out.println("Getting answers from database");
  119.  
  120. HashMap<Integer, ArrayList<String>> answerMap = new HashMap<>();
  121.  
  122. Statement sqlStatement = createStatement(connection);
  123. ResultSet result = executeQuery(sqlStatement, "Select * from Answers");
  124.  
  125. try {
  126. while(result.next())
  127. {
  128. ArrayList<String> answers = new ArrayList<>();
  129. Object number = result.getObject(1);
  130. for(int i = 2; i < 7; ++i){
  131. Object question = result.getObject(i);
  132. answers.add(question.toString());
  133.  
  134. }
  135. answerMap.put(Integer.parseInt(number.toString()), answers);
  136.  
  137. }
  138. }
  139. catch (SQLException e) {
  140. System.out.println("Error getting answers from database! " + e.getMessage() + ": " + e.getErrorCode());
  141. }
  142.  
  143. return answerMap;
  144. }
  145.  
  146. public static void sendAnswerToDatabase(String clientID,int questionNumber, String result ){
  147. Statement s = createStatement(connection);
  148. executeUpdate(s, "INSERT INTO Results (Client_ID, Question_Number, Answer)"
  149. + "VALUES ('" + clientID + "'," + questionNumber + ",'" + result + "');");
  150.  
  151. }
  152.  
  153.  
  154. public void getSummary() throws SQLException
  155. {
  156. Statement s = createStatement(connection);
  157. ResultSet result1 = executeQuery(s, "Select count(Client_ID)/10 as zlicz from results");
  158. if(result1.next())
  159. this.pomoc = result1.getInt("zlicz");
  160.  
  161. System.out.println(this.pomoc);
  162. for(int i=1; i<=10; i++) {
  163. for( int j=1; j<=5; j++) {
  164. ResultSet result = executeQuery(s, "Select count(*) as total from results where question_number=" + i + " && answer="+ j);
  165.  
  166. //System.out.println("aa");
  167. if(result.next())
  168. this.resultTable[i-1][j-1] = result.getInt("total");
  169.  
  170. }
  171. }
  172. for(int i=1; i<=10; i++) {
  173. for( int j=1; j<=5; j++) {
  174.  
  175. System.out.println((this.resultTable[i-1][j-1]/this.pomoc)*100 + "%");
  176.  
  177. }
  178. System.out.println();
  179. }
  180. closeConnection(connection, s);
  181. }
  182.  
  183. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement