· 9 years ago · Nov 14, 2016, 08:44 PM
1/* Marcin Więckowski
2 * Data: 14-11-2016
3 *
4 * Projekt ten ma za zadanie ułatwić przegląd danego pliku csv w tym:
5 * Wyszukac id, Najpopularniejsze nazwiska, Najstarsze postacie, Personel 3 klubów
6 * Plik baza.csv to plik pochodzący z gry Football Manager, który jest stworzony do aktualizacji aktualnej bazy tej gry. Pliczek ten jest już skonwersowany do csv i jest on oficjalny.
7 *
8 * Po otwarciu pliku aby baza została zaktualizowana z pliku csv TRZEBA! wybrać opcje 1 i pozwolić mu załadować dane.
9 * Następnie można się bawić programem opcjami od 2 do 5, a 6 opcja usuwa całą bazę.
10*/
11
12import java.io.*;
13import java.nio.*;
14import java.util.*;
15import java.sql.*;
16public class Menju3 {
17 private static String wybor;
18 private static Scanner odczyt;
19 private Statement stat;
20 private Connection lacze;
21 private ResultSet wynik;
22 public static final String DRIVER = "org.sqlite.JDBC";
23 public static final String DB_URL = "jdbc:sqlite:biblioteka.db";
24
25 void sterownik(){
26 try{
27 Class.forName(DRIVER);
28 } catch (ClassNotFoundException e) {
29 System.err.println("Brak sterownika JDBC");
30 e.printStackTrace();
31 }
32
33 try {
34 lacze = DriverManager.getConnection(DB_URL);
35 stat = lacze.createStatement();
36 } catch (SQLException e) {
37 System.err.println("Problem z otwarciem połączenia");
38 e.printStackTrace();
39 }
40 }
41 public void usun(){
42 try {
43 stat.execute("DROP TABLE IF EXISTS postac");
44 } catch (SQLException e) {
45 System.err.println("Tabela nie istnieje");
46 e.printStackTrace();
47 }
48 }
49 public void insert(String id, String imie, String nazwisko, String data_ur, String data_ur2, String pozycja, String klub, String club) {
50 try {
51 stat.execute("INSERT INTO postac VALUES ("+id+",'"+imie+"','"+nazwisko+"','"+data_ur+"','"+data_ur2+"','"+pozycja+"','"+klub+"','"+club+"');");
52 } catch (SQLException e) {
53 System.err.println("Blad przy wprowadzaniu danych");
54 e.printStackTrace();
55 }
56 }
57
58 public void create(){
59 try{
60 stat.execute("CREATE TABLE IF NOT EXISTS postac(id INTEGER PRIMARY KEY AUTOINCREMENT, imie VARCHAR(20), nazwisko VARCHAR(30), data_ur DATE, data_ur2 DATE, pozycja VARCHAR(50), klub VARCHAR(25), club VARCHAR(25))"); }
61 catch(SQLException e){
62 System.err.println("Błąd przy tworzeniu tabeli");
63 e.printStackTrace();
64 }
65 }
66 public void wczyt() {
67 sterownik();
68 String csvFile = "baza.csv";
69 String line = "";
70
71 try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {
72
73 while ((line = br.readLine()) != null) {
74 String[] Menju3 = line.split(";",-1);
75 System.out.println(Menju3[0] + " " + Menju3[1] + " " + Menju3[2] + " " + Menju3[3] + " " + Menju3[4] + " " + Menju3[5] + " " + Menju3[6] + " " + Menju3[7]);
76 insert(Menju3[0],Menju3[1],Menju3[2],Menju3[3],Menju3[4],Menju3[5],Menju3[6],Menju3[7]);
77 }
78
79 } catch (IOException e) {
80 e.printStackTrace();
81 }
82 }
83 public void ide(){
84 odczyt = new Scanner(System.in);
85 System.out.print("Wprowadz id osoby: ");
86 try {
87 int id = odczyt.nextInt();
88 wynik = stat.executeQuery("SELECT id FROM postac WHERE id = "+id+" LIMIT 1");
89 while(wynik.next())
90 {
91 System.out.println(wynik.getString("imie") + " " + wynik.getString("nazwisko") + " " + wynik.getInt("data_ur") + " " + wynik.getString("data_ur2") + " " + wynik.getString("pozycja") + " " + wynik.getString("klub") + " " + wynik.getString("club"));
92 }
93 }
94 catch (SQLException e) {
95 System.err.println("Błąd przy wprowadzaniu id");
96 e.printStackTrace();
97 }
98 }
99 public void old(){
100
101 }
102 public void popular(){
103 odczyt = new Scanner(System.in);
104 System.out.print("Wprowadz szukane nazwisko: ");
105 try {
106 int nazw = odczyt.nextInt();
107 wynik = stat.executeQuery("SELECT COUNT(id_postac) AS zlicz FROM postac WHERE nazwisko="+nazw);
108 System.out.println("Nazwisko "+nazw+" występuje: " +wynik.getInt("zlicz")+" razy");
109 }
110 catch (SQLException e) {
111 System.err.println("Błąd przy wypisaniu");
112 e.printStackTrace();
113 }
114 }
115 public void lech(){
116 try {
117 wynik = stat.executeQuery("SELECT * FROM postac WHERE club='Lech'");
118 while(wynik.next()){
119 System.out.println(wynik.getString("imie") + " " + wynik.getString("nazwisko") + " " + wynik.getInt("data_ur") + " " + wynik.getString("data_ur2") + " " + wynik.getString("pozycja") + " " + wynik.getString("klub") + " " + wynik.getString("club"));
120 }
121 }
122 catch (SQLException e) {
123 System.err.println("Błąd przy wypisaniu");
124 e.printStackTrace();
125 }
126 }
127 public void legia(){
128 try {
129 wynik = stat.executeQuery("SELECT * FROM postac WHERE club='Legia'");
130 while(wynik.next()){
131 System.out.println(wynik.getString("imie") + " " + wynik.getString("nazwisko") + " " + wynik.getInt("data_ur") + " " + wynik.getString("data_ur2") + " " + wynik.getString("pozycja") + " " + wynik.getString("klub") + " " + wynik.getString("club"));
132 }
133 }
134 catch (SQLException e) {
135 System.err.println("Błąd przy wypisaniu");
136 e.printStackTrace();
137 }
138 }
139 public void wisla(){
140 try {
141 wynik = stat.executeQuery("SELECT * FROM postac WHERE club='Wisla'");
142 while(wynik.next()){
143 System.out.println(wynik.getString("imie") + " " + wynik.getString("nazwisko") + " " + wynik.getInt("data_ur") + " " + wynik.getString("data_ur2") + " " + wynik.getString("pozycja") + " " + wynik.getString("klub") + " " + wynik.getString("club"));
144 }
145 }
146 catch (SQLException e) {
147 System.err.println("Błąd przy szukaniu nazwisk");
148 e.printStackTrace();
149 }
150 }
151 public void staff(){
152
153 odczyt = new Scanner(System.in);
154 System.out.println("*Wciśnij zapytany przycisk oraz zaakceptuj poprzez enter*");
155 System.out.println("Aby... ");
156 System.out.println("...wczytać staff Lecha [1]");
157 System.out.println("...wczytać staff Legii [2]");
158 System.out.println("...wczytać staff Wisły [3]");
159 wybor = odczyt.nextLine();
160 switch (wybor){
161 case "1":
162 lech();
163 break;
164 case "2":
165 legia();
166 break;
167 case "3":
168 wisla();
169 break;
170 }
171}
172 public static void main(String[] args){
173 Menju3 baza = new Menju3();
174 try{
175 Class.forName("org.sqlite.JDBC");
176 }catch(ClassNotFoundException e){
177 System.err.println("Brak sterownika JDBC");
178 e.printStackTrace();
179 }
180 do{
181 odczyt = new Scanner(System.in);
182 System.out.println("*Witaj w bazie*");
183 System.out.println("*Wciśnij zapytany przycisk oraz zaakceptuj poprzez enter*");
184 System.out.println("Aby... ");
185 System.out.println("...wczytać dane z pliku do bazy [1]");
186 System.out.println("...wyszukać id dowolnej postaci [2]");
187 System.out.println("...znaleść najbardziej popularne nazwisko [3]");
188 System.out.println("...znaleść najstarsze postaci [4]");
189 System.out.println("...wypisać cały staff danego klubu [5]");
190 System.out.println("...usunąć bazę [6]");
191 System.out.println("...zakończyć prace programu [7]");
192 wybor = odczyt.nextLine();
193 switch (wybor){
194 case "1":
195 baza.create();
196 baza.wczyt();
197 break;
198 case "2":
199 baza.ide();
200 break;
201 case "3":
202 baza.popular();
203 break;
204 case "4":
205 baza.old();
206 break;
207 case "5":
208 baza.staff();
209 break;
210 case "6":
211 baza.usun();
212 break;
213 case "7":
214 System.out.println("Koniec działania programu.");
215 break;
216 default:
217 System.out.println("Nie prawidłowa liczba.");
218 }}while(!wybor.equals("7"));
219}
220}