· 6 years ago · May 13, 2019, 01:16 PM
1package bachelorutkast12;
2
3import java.awt.EventQueue;
4import java.awt.event.ActionEvent;
5import java.awt.event.ActionListener;
6
7import java.io.BufferedWriter;
8import java.io.FileWriter;
9import java.io.IOException;
10import java.io.PrintWriter;
11
12import java.sql.Connection;
13import java.sql.DriverManager;
14import java.sql.PreparedStatement;
15import java.sql.ResultSet;
16import java.sql.Timestamp;
17
18import java.util.ArrayList;
19import java.util.Date;
20import java.util.Random;
21
22import javax.swing.JButton;
23import javax.swing.JComponent;
24import javax.swing.JFrame;
25import javax.swing.JPanel;
26import javax.swing.JScrollPane;
27import javax.swing.JTable;
28import javax.swing.JTextArea;
29import javax.swing.JTextField;
30import javax.swing.border.EmptyBorder;
31import net.proteanit.sql.DbUtils;
32
33public class BachelorUtkast12 extends JFrame implements ActionListener {
34
35 private JPanel contentPane;
36 private JTable table;
37
38 Connection con = null;
39
40 public BachelorUtkast12() throws Exception {
41 Connection con = getConnection();
42 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
43 setBounds(100, 100, 600, 500);
44 contentPane = new JPanel();
45// contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); //ingen funksjon
46 setContentPane(contentPane);
47 contentPane.setLayout(null);
48
49 JButton btnLoadTable = new JButton("Load database");
50 btnLoadTable.addActionListener(new ActionListener() {
51 public void actionPerformed(ActionEvent arg0) {
52 try {
53 String query = "select * from oversikt";
54 PreparedStatement pst = con.prepareStatement(query);
55 ResultSet rs = pst.executeQuery();
56 table.setModel(DbUtils.resultSetToTableModel(rs)); //bruker her en klasse fra rs2xml.jar som jeg fant i en youtube video
57 //dette var for aa spare arbeid her og naa, maa dokumenteres
58
59 } catch (Exception e) {
60 e.printStackTrace();
61 }
62
63 }
64 });
65 btnLoadTable.setBounds(10, 70, 150, 50);
66 contentPane.add(btnLoadTable);
67
68 JScrollPane scrollPane = new JScrollPane();
69 scrollPane.setBounds(160, 70, 400, 300);
70 contentPane.add(scrollPane);
71
72 table = new JTable();
73 scrollPane.setViewportView(table);
74
75 try { //Dette fungerer for aa faa returnverdien fra getAvg metoden inn i textfield
76 double average = getAvg();
77 JTextField showAvg = new JTextField("Average weight: " + average);
78 JScrollPane showAvgPane = new JScrollPane(showAvg); //i tilfelle tallet blir for stort til aa vises i skjermen vil jscrollpane vise scrollbar horisontalt
79 showAvgPane.setBounds(160, 10, 250, 50);
80 contentPane.add(showAvgPane);
81
82 } catch (Exception e) {
83 System.out.println("Error e: " + e);
84 }
85
86 }
87
88// ResultSet hei;
89 public static void main(String[] args) throws Exception { //endra her fraa interruptedException til exception for aa kunne kalle paa createTable(); metode
90
91 EventQueue.invokeLater(new Runnable() {
92 public void run() {
93 try {
94 BachelorUtkast12 frame = new BachelorUtkast12();
95 frame.setVisible(true);
96 } catch (Exception e) {
97 e.printStackTrace();
98 }
99 }
100 });
101// getConnection(); // for aa kople til mysql, gjer dette bare en gang
102//
103//// javax.swing.SwingUtilities.invokeLater(new Runnable() {
104//// public void run() {
105//// createAndShowGUI();
106//// }
107//
108// JFrame frame = new JFrame("HMI");
109//
110// JPanel HMI3 = new JPanel();
111// HMI3.setLayout(null);
112//
113// frame.setVisible(true);
114// frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
115// frame.add(HMI3);
116//
117// JButton getAverage = new JButton("Get average");
118// getAverage.setBounds(10, 230, 150, 50);
119// HMI3.add(getAverage);
120//
121// frame.setSize(1000, 1000);
122////
123//// getId();
124//// getAvg();
125////
126// try { //Dette fungerer for aa faa returnverdien fra getAvg metoden inn i textfield
127// double average = getAvg();
128// JTextField showAvg = new JTextField("Average: " + average);
129// showAvg.setBounds(250, 230, 200, 50);
130// HMI3.add(showAvg);
131//
132// } catch (Exception e) {
133// System.out.println("Error e: " + e);
134// }
135// try { //Dette fungerer for aa faa returnverdien fra getId metoden inn i textfield
136// int id = getId();
137// JTextField showId = new JTextField("Number of units: " + id);
138// showId.setBounds(250, 280, 200, 50);
139// HMI3.add(showId);
140//
141// } catch (Exception e) {
142// System.out.println("Error e: " + e);
143// }
144//
145// try {
146// int id = getId();
147// int numLeft = getNumLeft();
148// int numRight = getNumRight();
149// int weight = getWeight();
150// String place = getPlace();
151//
152// JTextArea showAll = new JTextArea(" Id is: " + id + " | Num. in left: " + numLeft + " | Num in right: " + numRight + " | Weight: " + weight + " | Placement: " + place + " ");
153//
154// JScrollPane showAllPane = new JScrollPane(showAll);
155// showAllPane.setBounds(250, 330, 200, 50);
156// HMI3.add(showAllPane);
157//
158// } catch (Exception e) {
159// System.out.println("Error: " + e);
160// }
161////// get();
162// createAndShowGUI();
163// }
164 }
165
166 //Metode for aa skrive til CSV fil
167 public static void saveRecord(String inputVekt, String plassering, String ts, String lagretKode, String filepath) {
168 try {
169 FileWriter fw = new FileWriter(filepath, true);
170 BufferedWriter bw = new BufferedWriter(fw);
171 PrintWriter pw = new PrintWriter(bw);
172
173 pw.println(inputVekt + "," + plassering + "," + ts + "," + lagretKode);
174 pw.flush();
175 pw.close();
176 } catch (IOException E) {
177 System.out.println("Error: " + E);
178 }
179
180 }
181
182 public static ArrayList<String> get() throws Exception {
183// try {
184 Connection con = getConnection();
185 PreparedStatement statement = con.prepareStatement("SELECT id, TalHogre, TalVenstre, vekt, plassering FROM oversikt"); // ("SELECT * FROM iamalive"); (stjerna * vil hente ID trur eg)
186
187 ResultSet result = statement.executeQuery();
188
189 ArrayList<String> array = new ArrayList<String>();
190 while (result.next()) {
191 System.out.println(result.getString("id"));
192 System.out.println(" ");
193 System.out.println(result.getString("TalHogre"));
194 System.out.println(" ");
195 System.out.println(result.getString("TalVenstre"));
196 System.out.println(" ");
197 System.out.println(result.getString("vekt"));
198 System.out.println(" ");
199 System.out.println(result.getString("plassering"));
200 array.add(result.getString("vekt"));
201
202 }
203 System.out.println("All records have been selected!");
204 return array;
205
206// } catch (Exception e) {
207// System.out.println("ArrayList error: " + e);
208// }
209// return null;
210 }
211
212 public static int getMaxId() throws Exception { //Denne er egt feilfri, kan bruke denna (finner kun siste id)
213 Connection con = getConnection();
214 PreparedStatement statement = con.prepareStatement("SELECT MAX(id) FROM oversikt");
215 ResultSet result = statement.executeQuery();
216 result.next();
217// System.out.println("Average is: "+(result.getDouble(1)));
218 return result.getInt(1);
219
220 }
221
222 public static int getId() throws Exception { //Denne er egt feilfri, kan bruke denna (finner kun siste id)
223 Connection con = getConnection();
224 PreparedStatement statement = con.prepareStatement("SELECT id FROM oversikt");
225 ResultSet result = statement.executeQuery();
226 while (result.next()) {
227 return result.getInt(1);
228 }
229
230// System.out.println("Average is: "+(result.getDouble(1)));
231 return 0;
232
233 }
234
235 public static String getPlace() throws Exception { //Denne er egt feilfri, kan bruke denna
236 Connection con = getConnection();
237 PreparedStatement statement = con.prepareStatement("SELECT plassering FROM oversikt"); //kan hente id for seg selv og plassering her
238 ResultSet result = statement.executeQuery();
239// result.next();
240 while (result.next()) {
241 return result.getString(1);
242 }
243// System.out.println("Average is: "+(result.getDouble(1)));
244 return null;
245
246 }
247
248 public static int getNumLeft() throws Exception {
249 Connection con = getConnection();
250 PreparedStatement statement = con.prepareStatement("SELECT talVenstre FROM oversikt");
251
252 ResultSet result = statement.executeQuery();
253// result.next();
254 while (result.next()) {
255 return result.getInt(1);
256 }
257 return 0;
258 }
259
260 public static int getNumRight() throws Exception {
261 Connection con = getConnection();
262 PreparedStatement statement = con.prepareStatement("SELECT talHogre FROM oversikt");
263
264 ResultSet result = statement.executeQuery();
265// result.next();
266 while (result.next()) {
267 return result.getInt(1);
268 }
269 return 0;
270 }
271
272 public static int getWeight() throws Exception {
273 Connection con = getConnection();
274 PreparedStatement statement = con.prepareStatement("SELECT vekt FROM oversikt");
275
276 ResultSet result = statement.executeQuery();
277// result.next();
278 while (result.next()) {
279 return result.getInt(1);
280 }
281 return 0;
282 }
283
284 public static double getAvg() throws Exception { //Denne er egt feilfri, kan bruke denna
285 Connection con = getConnection();
286 PreparedStatement statement = con.prepareStatement("SELECT AVG(vekt) FROM oversikt");
287 ResultSet result = statement.executeQuery();
288 result.next();
289// System.out.println("Average is: "+(result.getDouble(1)));
290 return result.getDouble(1);
291
292 }
293
294 public static void createTable() throws Exception {
295 try {
296 Connection con = getConnection();
297 PreparedStatement create = con.prepareStatement("CREATE TABLE IF NOT EXISTS oversikt(id int NOT NULL AUTO_INCREMENT, TalHogre int(255), TalVenstre int(255), vekt varchar(255), plassering varchar(255), PRIMARY KEY(id))");
298 //LINJA OVER MAA ENDRAST SIDA VARCHAR ER FEIL FOR KUN TAL, PROV INTEGER KANSKJE
299 create.executeUpdate();
300 } catch (Exception e) {
301 System.out.println("createTable error |||| " + e);
302 } finally {
303 System.out.println("Function Complete - Table Created");
304 };
305 }
306
307 public static void post(int hogre, int venstre, int inputVekt, String plassering) throws Exception {
308
309 try {
310 Connection con = getConnection();
311 PreparedStatement posted = con.prepareStatement("INSERT INTO oversikt (TalHogre, TalVenstre, vekt, plassering) VALUES ('" + hogre + "', '" + venstre + "', '" + inputVekt + "', '" + plassering + "')");
312
313 posted.executeUpdate(); //Update er aa manipulere data, med query saa mottar(receive) vi data iflg youtube video
314 } catch (Exception e) {
315 System.out.println("post() error |||| " + e);
316 } finally {
317 System.out.println("Insert Completed");
318 }
319
320 }
321
322 public static Connection getConnection() throws Exception {
323 try {
324 String driver = "com.mysql.jdbc.Driver";
325 String url = "jdbc:mysql://localhost:3306/testdb?useTimeZone=true&serverTimezone=UTC"; //denne linjen maa kommenteres i sluttrapport og evt presentasjon da jeg maatte legge inn timezone for at serverkommunikasjon skulle fungere
326 String username = "root";
327 String password = "Sikkertpassord01";
328 Class.forName(driver);
329
330 Connection conn = DriverManager.getConnection(url, username, password);
331 System.out.println("Connected");
332 return conn;
333 } catch (Exception e) {
334 System.out.println("getConnection error |||| " + e);
335
336 }
337 return null;
338 }
339
340 @Override
341 public void actionPerformed(ActionEvent e) { //denna kjem fram naar eg velge implement all abstract methods for klassen
342 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
343 }
344
345}