· 9 years ago · Nov 14, 2016, 08:10 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 PreparedStatement prpStat = lacze.prepareStatement("INSERT INTO postac VALUES ("+id+",'"+imie+"','"+nazwisko+"','"+data_ur+"','"+data_ur2+"','"+pozycja+"','"+klub+"','"+club+"');");
52 prpStat.setString(1, id);
53 prpStat.setString(2, imie);
54 prpStat.setString(3, nazwisko);
55 prpStat.setString(4, data_ur);
56 prpStat.setString(5, data_ur2);
57 prpStat.setString(6, pozycja);
58 prpStat.setString(7, klub);
59 prpStat.setString(8, club);
60 prpStat.execute();
61 } catch (SQLException e) {
62 System.err.println("Blad przy wprowadzaniu danych");
63 e.printStackTrace();
64 }
65 }
66 public void create(){
67 try{
68 stat.execute("CREATE TABLE IF NOT EXISTS postac(id INTEGER PRIMARY KEY, imie VARCHAR(20), nazwisko VARCHAR(30), data_ur DATE, data_ur2 DATE, pozycja VARCHAR(50), klub VARCHAR(25), loanclub VARCHAR(25))");
69 }
70 catch(SQLException e){
71 System.err.println("Błąd przy tworzeniu tabeli");
72 e.printStackTrace();
73 }
74 }
75 public void wczyt() {
76 sterownik();
77 String csvFile = "baza.csv";
78 String line = "";
79 usun();
80 create();
81
82 try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {
83
84 while ((line = br.readLine()) != null) {
85 String[] Menju3 = line.split(";",-1);
86 System.out.println(Menju3[0] + " " + Menju3[1] + " " + Menju3[2] + " " + Menju3[3] + " " + Menju3[4] + " " + Menju3[5] + " " + Menju3[6] + " " + Menju3[7]);
87 insert(Menju3[0],Menju3[1],Menju3[2],Menju3[3],Menju3[4],Menju3[5],Menju3[6],Menju3[7]);
88 }
89
90 } catch (IOException e) {
91 e.printStackTrace();
92 }
93 }
94 public void ide(){
95 odczyt = new Scanner(System.in);
96 System.out.print("Wprowadz id osoby: ");
97 try {
98 int id = odczyt.nextInt();
99 wynik = stat.executeQuery("SELECT id FROM postac WHERE id = "+id+" LIMIT 1");
100 while(wynik.next())
101 {
102 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"));
103 }
104 }
105 catch (SQLException e) {
106 System.err.println("Błąd przy wprowadzaniu id");
107 e.printStackTrace();
108 }
109 }
110 public void old(){
111
112 }
113 public void popular(){
114 odczyt = new Scanner(System.in);
115 System.out.print("Wprowadz szukane nazwisko: ");
116 try {
117 int nazw = odczyt.nextInt();
118 wynik = stat.executeQuery("SELECT COUNT(id_postac) AS zlicz FROM postac WHERE nazwisko="+nazw);
119 System.out.println("Nazwisko "+nazw+" występuje: " +result.getInt("zlicz")+" razy");
120 }
121 catch (SQLException e) {
122 System.err.println("Błąd przy szukaniu nazwisk");
123 e.printStackTrace();
124 }
125 }
126 public void lech(){
127
128 }
129 public void legia(){
130
131 }
132 public void wisla(){
133
134 }
135 public void staff(){
136
137 odczyt = new Scanner(System.in);
138 System.out.println("*Wciśnij zapytany przycisk oraz zaakceptuj poprzez enter*");
139 System.out.println("Aby... ");
140 System.out.println("...wczytać staff Lecha [1]");
141 System.out.println("...wczytać staff Legii [2]");
142 System.out.println("...wczytać staff Wisły [3]");
143 wybor = odczyt.nextLine();
144 switch (wybor){
145 case "1":
146 lech();
147 break;
148 case "2":
149 legia();
150 break;
151 case "3":
152 wisla();
153 break;
154 }
155}
156 public static void main(String[] args){
157 Menju3 baza = new Menju3();
158 try{
159 Class.forName("org.sqlite.JDBC");
160 }catch(ClassNotFoundException e){
161 System.err.println("Brak sterownika JDBC");
162 e.printStackTrace();
163 }
164 do{
165 odczyt = new Scanner(System.in);
166 System.out.println("*Witaj w bazie*");
167 System.out.println("*Wciśnij zapytany przycisk oraz zaakceptuj poprzez enter*");
168 System.out.println("Aby... ");
169 System.out.println("...wczytać dane z pliku do bazy [1]");
170 System.out.println("...wyszukać id dowolnej postaci [2]");
171 System.out.println("...znaleść najbardziej popularne nazwisko [3]");
172 System.out.println("...znaleść najstarsze postaci [4]");
173 System.out.println("...wypisać cały staff danego klubu [5]");
174 System.out.println("...usunąć bazę [6]");
175 System.out.println("...zakończyć prace programu [7]");
176 wybor = odczyt.nextLine();
177 switch (wybor){
178 case "1":
179 baza.wczyt();
180 break;
181 case "2":
182 baza.ide();
183 break;
184 case "3":
185 baza.popular();
186 break;
187 case "4":
188 baza.old();
189 break;
190 case "5":
191 baza.staff();
192 break;
193 case "6":
194 baza.usun();
195 break;
196 case "7":
197 System.out.println("Koniec działania programu.");
198 break;
199 default:
200 System.out.println("Nie prawidłowa liczba.");
201 }}while(!wybor.equals("7"));
202}
203}