· 8 years ago · Jan 21, 2018, 03:46 PM
1package ligalegend;
2
3import java.sql.Connection;
4import java.sql.DriverManager;
5import java.sql.PreparedStatement;
6import java.sql.ResultSet;
7import java.sql.SQLException;
8import java.sql.Statement;
9import java.util.LinkedList;
10import java.util.List;
11
12import model.Zawodnik;
13import model.Bohater;
14
15public class LigaLegend {
16
17 public static final String DRIVER = "org.sqlite.JDBC";
18 public static final String DB_URL = "jdbc:sqlite:biblioteka.db";
19
20 private Connection conn;
21 private Statement stat;
22
23 public LigaLegend() {
24 try {
25 Class.forName(LigaLegend.DRIVER);
26 } catch (ClassNotFoundException e) {
27 System.err.println("Brak sterownika JDBC");
28 e.printStackTrace();
29 }
30
31 try {
32 conn = DriverManager.getConnection(DB_URL);
33 stat = conn.createStatement();
34 } catch (SQLException e) {
35 System.err.println("Problem z otwarciem polaczenia");
36 e.printStackTrace();
37 }
38
39 createTables();
40 }
41
42 public boolean createTables() {
43 String createZawodnicy = "CREATE TABLE IF NOT EXISTS zawodnicy (id_zawodnika INTEGER PRIMARY KEY AUTOINCREMENT, imie varchar(20), nazwisko varchar(20), nickk varchar(20), dataUrodzenia varchar(100), KDA int, zabiteStworyNaMinute)";
44 String createBohaterowie = "CREATE TABLE IF NOT EXISTS bohaterowie (id_bohatera INTEGER PRIMARY KEY AUTOINCREMENT, nazwa varchar(20), rola varchar(20), aleja varchar(6), cena int)";
45 String createWybory = "CREATE TABLE IF NOT EXISTS wybory (id_wybierz INTEGER PRIMARY KEY AUTOINCREMENT, id_zawodnika int, id_bohatera int)";
46 try {
47 stat.execute(createZawodnicy);
48 stat.execute(createBohaterowie);
49 stat.execute(createWybory);
50 } catch (SQLException e) {
51 System.err.println("Blad przy tworzeniu tabeli");
52 e.printStackTrace();
53 return false;
54 }
55 return true;
56 }
57
58 public boolean insertZawodnik(String imie, String nazwisko, String nickk, String dataUrodzenia, int KDA, int zabiteStworyNaMinute) {
59 try {
60 PreparedStatement prepStmt = conn.prepareStatement(
61 "insert into zawodnicy values (NULL, ?, ?, ?, ?, ?, ?);");
62 prepStmt.setString(1, imie);
63 prepStmt.setString(2, nazwisko);
64 prepStmt.setString(3, nickk);
65 prepStmt.setString(4, dataUrodzenia);
66 prepStmt.setInt(3, KDA);
67 prepStmt.setInt(3, zabiteStworyNaMinute);
68 prepStmt.execute();
69 } catch (SQLException e) {
70 System.err.println("Blad przy wstawianiu zawodnika");
71 e.printStackTrace();
72 return false;
73 }
74 return true;
75 }
76
77 public boolean insertBohater(String nazwa, String rola, String aleja, int cena) {
78 try {
79 PreparedStatement prepStmt = conn.prepareStatement(
80 "insert into bohaterowie values (NULL, ?, ?, ?, ?);");
81 prepStmt.setString(1, nazwa);
82 prepStmt.setString(2, rola);
83 prepStmt.setString(3, aleja);
84 prepStmt.setInt(4, cena);
85 prepStmt.execute();
86 } catch (SQLException e) {
87 System.err.println("Blad przy wstawianiu bohatera");
88 return false;
89 }
90 return true;
91 }
92
93 public boolean insertWybierz(int idZawodnik, int idBohater) { //
94 try {
95 PreparedStatement prepStmt = conn.prepareStatement(
96 "insert into wybory values (NULL, ?, ?);");
97 prepStmt.setInt(1, idZawodnik);
98 prepStmt.setInt(2, idBohater);
99 prepStmt.execute();
100 } catch (SQLException e) {
101 System.err.println("Blad przy wybieraniu");
102 return false;
103 }
104 return true;
105 }
106
107 public List<Zawodnik> selectZawodnicy() {
108 List<Zawodnik> zawodnicy = new LinkedList<Zawodnik>();
109 try {
110 ResultSet result = stat.executeQuery("SELECT * FROM zawodnicy");
111 int id;
112 String imie, nazwisko, nickk, dataUrodzenia;
113 int KDA, zabiteStworyNaMinute;
114
115 while(result.next()) {
116 id = result.getInt("id_zawodnika");
117 imie = result.getString("imie");
118 nazwisko = result.getString("nazwisko");
119 nickk = result.getString("nickk");
120 dataUrodzenia = result.getString("dataUrodzenia");
121 KDA = result.getInt("KDA");
122 zabiteStworyNaMinute = result.getInt("zabiteStworyNaMinute");
123 zawodnicy.add(new Zawodnik(id, imie, nazwisko, nickk, dataUrodzenia, KDA, zabiteStworyNaMinute));
124 }
125 } catch (SQLException e) {
126 e.printStackTrace();
127 return null;
128 }
129 return zawodnicy;
130 }
131
132 public List<Bohater> selectBohaterowie() {
133 List<Bohater> bohaterowie = new LinkedList<Bohater>();
134 try {
135 ResultSet result = stat.executeQuery("SELECT * FROM bohaterowie");
136 int id;
137 String nazwa, rola, aleja;
138 int cena;
139 while(result.next()) {
140 id = result.getInt("id_bohatera");
141 nazwa = result.getString("nazwa");
142 rola = result.getString("rola");
143 aleja = result.getString("aleja");
144 cena = result.getInt("cena");
145 bohaterowie.add(new Bohater(id, nazwa, rola, aleja, cena));
146 }
147 } catch (SQLException e) {
148 e.printStackTrace();
149 return null;
150 }
151 return bohaterowie;
152 }
153
154 public void closeConnection() {
155 try {
156 conn.close();
157 } catch (SQLException e) {
158 System.err.println("Problem z zamknieciem polaczenia");
159 e.printStackTrace();
160 }
161 }
162}