· 8 years ago · Jan 04, 2018, 09:12 AM
1 public static boolean checkDriver(String driver) {
2 try {
3 Class.forName(driver).newInstance();
4 return true;
5 } catch (Exception e) {
6 System.out.println("Blad przy ladowaniu sterownika bazy!");
7 return false;
8 }
9 }
10
11 public static Connection getConnection(String kindOfDatabase, String adres, int port, String userName, String password) {
12
13 Connection conn = null;
14 Properties connectionProps = new Properties();
15 connectionProps.put("user", userName);
16 connectionProps.put("password", password);
17 try {
18 conn = DriverManager.getConnection(kindOfDatabase + adres + ":" + port + "/",
19 connectionProps);
20 } catch (SQLException e) {
21 System.out.println("Błąd połączenia z bazą danych! " + e.getMessage() + ": " + e.getErrorCode());
22 System.exit(2);
23 }
24 return conn;
25 }
26
27
28 private static Statement createStatement(Connection connection) {
29 try {
30 return connection.createStatement();
31 } catch (SQLException e) {
32 System.out.println("Błąd createStatement! " + e.getMessage() + ": " + e.getErrorCode());
33 System.exit(3);
34 }
35 return null;
36 }
37
38
39 private static void closeConnection(Connection connection, Statement s) {
40 System.out.print("\nZamykanie polaczenia z bazÄ…:");
41 try {
42 s.close();
43 connection.close();
44 } catch (SQLException e) {
45 System.out
46 .println("BlÄ…d przy zamykaniu polÄ…czenia z bazÄ…! " + e.getMessage() + ": " + e.getErrorCode());;
47 System.exit(4);
48 }
49 System.out.print(" zamknięcie OK");
50 }
51
52
53 private static ResultSet executeQuery(Statement s, String sql) {
54 try {
55 return s.executeQuery(sql);
56 } catch (SQLException e) {
57 System.out.println("Zapytanie nie wykonane! " + e.getMessage() + ": " + e.getErrorCode());
58 }
59 return null;
60 }
61
62 private static int executeUpdate(Statement s, String sql) {
63 try {
64 return s.executeUpdate(sql);
65 } catch (SQLException e) {
66 System.out.println("Zapytanie nie wykonane! " + e.getMessage() + ": " + e.getErrorCode());
67 }
68 return -1;
69 }
70
71
72 public void getDatabase(Statement st) {
73 if (executeUpdate(st,"CREATE DATABASE IF NOT EXISTS MG_JAVA_1105;") == 0)
74 System.out.println("Baza stworzona");
75 else
76 System.out.println("Nie znaleziono bazy");
77
78 if (executeUpdate(st, "USE MG_JAVA_1105;") == 0)
79 System.out.println("Baza wybrana");
80 else {
81 System.out.println("Baza nie istnieje! Tworzymy bazÄ™: MG_JAVA_1105");
82 if (executeUpdate(st, "create Database MG_JAVA_1105 CHARACTER SET utf8 COLLATE utf8_polish_ci;") == 1)
83 System.out.println("Baza utworzona");
84 else
85 System.out.println("Baza nieutworzona!");
86 if (executeUpdate(st, "USE MG_JAVA_1105;") == 0)
87 System.out.println("Baza wybrana");
88 else
89 System.out.println("Baza niewybrana!");
90 }
91
92 if (executeUpdate(st,
93 "CREATE TABLE `questions` (" +
94 " `id` int(11) NOT NULL," +
95 " `question_content` varchar(150) COLLATE utf8_polish_ci NOT NULL," +
96 " `answer_a` varchar(50) COLLATE utf8_polish_ci NOT NULL," +
97 " `answer_b` varchar(50) COLLATE utf8_polish_ci NOT NULL," +
98 " `answer_c` varchar(50) COLLATE utf8_polish_ci NOT NULL," +
99 " `answer_d` varchar(50) COLLATE utf8_polish_ci NOT NULL," +
100 " `correct_answer` varchar(4) NOT NULL" +
101 ") ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;") == 0)
102 System.out.println("Tabela 'Pytania' utworzona");
103 else
104 System.out.println("Tabela 'Pytania' nie utworzona!");
105
106 if (executeUpdate(st,"ALTER TABLE questions ADD PRIMARY KEY (id);") == 0)
107 System.out.println("Dodano klucz dla tabeli 'Pytania'");
108 else
109 System.out.println("Błąd w dodawaniu klucza dla tabeli 'Pytania'");
110
111 if (executeUpdate(st,
112 "CREATE TABLE `student_answers` (" +
113 " `student_id` int(20) NOT NULL," +
114 " `answer_1` varchar(50) COLLATE utf8_polish_ci DEFAULT 'Brak odpowiedzi'," +
115 " `answer_2` varchar(50) COLLATE utf8_polish_ci DEFAULT 'Brak odpowiedzi'," +
116 " `answer_3` varchar(50) COLLATE utf8_polish_ci DEFAULT 'Brak odpowiedzi'," +
117 " `answer_4` varchar(50) COLLATE utf8_polish_ci DEFAULT 'Brak odpowiedzi'," +
118 " `answer_5` varchar(50) COLLATE utf8_polish_ci DEFAULT 'Brak odpowiedzi'," +
119 " `answer_6` varchar(50) COLLATE utf8_polish_ci DEFAULT 'Brak odpowiedzi'," +
120 " `answer_7` varchar(50) COLLATE utf8_polish_ci DEFAULT 'Brak odpowiedzi'," +
121 " `answer_8` varchar(50) COLLATE utf8_polish_ci DEFAULT 'Brak odpowiedzi'," +
122 " `answer_9` varchar(50) COLLATE utf8_polish_ci DEFAULT 'Brak odpowiedzi'," +
123 " `answer_10` varchar(50) COLLATE utf8_polish_ci DEFAULT 'Brak odpowiedzi'," +
124 " `answer_11` varchar(50) COLLATE utf8_polish_ci DEFAULT 'Brak odpowiedzi'," +
125 " `answer_12` varchar(50) COLLATE utf8_polish_ci DEFAULT 'Brak odpowiedzi'," +
126 " `answer_13` varchar(50) COLLATE utf8_polish_ci DEFAULT 'Brak odpowiedzi'," +
127 " `answer_14` varchar(50) COLLATE utf8_polish_ci DEFAULT 'Brak odpowiedzi'," +
128 " `answer_15` varchar(50) COLLATE utf8_polish_ci DEFAULT 'Brak odpowiedzi')" +
129 "ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;") == 0)
130 System.out.println("Tabela 'Odpowiedzi' utworzona");
131 else
132 System.out.println("Tabela 'Odpowiedzi' nie utworzona!");
133
134 if (executeUpdate(st,"ALTER TABLE `student_answers` ADD PRIMARY KEY (`student_id`);") == 0)
135 System.out.println("Dodano klucz dla tabeli 'Odpowiedzi'");
136 else
137 System.out.println("Błąd w dodawaniu klucza dla tabeli 'Odpowiedzi'");
138
139 if (executeUpdate(st,
140 "CREATE TABLE `results` (`student_id` int(20) NOT NULL,`score` int(2) DEFAULT NULL) " +
141 "ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;") == 0)
142 System.out.println("Tabela 'Wyniki' utworzona");
143 else
144 System.out.println("Tabela 'Wyniki' nie utworzona!");
145
146 if (executeUpdate(st,"ALTER TABLE `results` ADD PRIMARY KEY (`student_id`);") == 0)
147 System.out.println("Dodano klucz dla tabeli 'Wyniki'");
148 else
149 System.out.println("Błąd w dodawaniu klucza dla tabeli 'Wyniki'");
150
151 String insertQ = "INSERT INTO `questions` (`id`, `question_content`, `answer_a`, `answer_b`, `answer_c`, `answer_d`, `correct_answer`) VALUES" +
152 "(1, 'Co oznacza skrót USB?', 'Universal Satelite Bus', 'Universal System Bus', 'Universal Serial Bus', 'Universal Softvare Bus', '0010')," +
153 "(2, 'W jakiej firmie Steve Jobs podpatrzyl graficzny interfejs uzytkownika z myszka?', 'Xerox', 'Microsoft', 'Amiga', 'IBM', '1000')," +
154 "(3, 'Która z tych architektur NIE ma zastosowania w budowie komputerów?', 'Architektura Oksfordzka', 'Architektura Princeton', 'Architektura Johna Von Neumana', 'Architektura Harwardzka', '1000')," +
155 "(4, 'Skad pochodzi znak pisarski @ (malpa)', 'z jezyka arabskiego', 'z jezyka greckiego', 'z jezyka lacinskiego', 'stworzono ten symbol na potrzeby e-mailii', '0010')," +
156 "(5, 'Pierwszy pakiet programów analizujacych bezpieczenstwo systemów informatycznych COPS napisal amerykanski programista i byly hacker:', 'Richard Matthew Stallman', 'Agent Steal', 'Eric Steven Raymond', 'Dan Farmer', '0001')," +
157 "(6, 'Kto wymyslil komputer Macintosh ?', 'Bill Gates', 'Steve Jobs', 'Jef Raskin', 'Stephan Gary Wozniak', '0010')," +
158 "(7, 'Rodzajem drukarki uzywanej zazwyczaj w kasach i drukarkach fiskalnych jest:', 'Drukarka produkcyjna', 'Drukarka termotransferowa', 'Drukarka termiczna', 'Drukarka wierszowa', '0010')," +
159 "(8, 'W którym roku zostala wyslana pierwsza wiadomosc e-mail?', '1970', '1973', '1975', '1971', '0001')," +
160 "(9, 'Ekspertem bezpieczenstwa komputerowego w finansowanym przez rzad centrum komputerowym w San Diego oraz konsultantem FBI jest byly haker:', 'Gary McKinnon', 'Kevin David Mitnick', 'Anthony Chris Zboralski', 'Tsutomu Shimomura', '0001')," +
161 "(10, 'Popularna wyszukiwarka Google.com nazywala sie wczesniej:', 'AdWords', 'PageRank', 'BackRub', 'Alphabet', '0010')," +
162 "(11, 'Co to jest \"zip\" ?', 'Rodzaj kodeka muzycznego', 'Rozszerzenie obrazka', 'Format kompresji plików', 'Rozszerzenie dzwieku', '0010')," +
163 "(12, 'Jak nazywa sie podstawowy edytor graficzny Windows?', 'Word', 'Paint', 'Photoshop', 'Gimp!', '0100')," +
164 "(13, 'Do czego sluzy hiperlacze?', 'Do otwierania stron www', 'Do czytania dokumentów', 'Do przyspieszania internetu', 'Do wysylania filmów', '1000')," +
165 "(14, 'Na którym serwerze mozna odtworzyc wideo strumieniowane?', 'o2', 'YouTube', 'Onet', 'Wp', '0100')," +
166 "(15, 'Najpopularniejszy format plików muzycznych to:', 'bmp', 'doc', 'mp3', 'avi', '0010');";
167 executeUpdate(st, insertQ);
168 }