Advertisement
Guest User

Untitled

a guest
Sep 30th, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.86 KB | None | 0 0
  1. import java.sql.ResultSet;
  2. import java.sql.SQLException;
  3. import java.sql.Statement;
  4. import java.util.ArrayList;
  5. import java.util.Date;
  6.  
  7. public class HomeworkDbThread extends Thread {
  8. private ArrayList<HomeworkClass> dataSet = new ArrayList<>();
  9. private Statement stmt;
  10. private ThreadCallback callback;
  11.  
  12. public HomeworkDbThread(Statement statement, ThreadCallback callback) {
  13. this.stmt = statement;
  14. this.callback = callback;
  15. }
  16.  
  17. @Override
  18. public void run() {
  19. try {
  20. String sql = "SELECT id, name, lesson, grade, time FROM class";
  21. ResultSet rs = stmt.executeQuery(sql);
  22.  
  23. while (rs.next()) {
  24. //getting values
  25. int id = rs.getInt("id");
  26. String name = rs.getString("name");
  27. String lesson = rs.getString("lesson");
  28. int grade = rs.getInt("grade");
  29. Date time = rs.getDate("time");
  30.  
  31. dataSet.add(new HomeworkClass(
  32. id,
  33. name,
  34. lesson,
  35. grade,
  36. time
  37. ));
  38. }
  39.  
  40. if (callback != null)
  41. callback.onDataFetched(dataSet);
  42. } catch (SQLException e) {
  43. if (callback != null)
  44. callback.onError(e);
  45. } finally {
  46. if (callback != null)
  47. callback.onEnd();
  48. }
  49. }
  50. }
  51.  
  52.  
  53. import java.util.Date;
  54.  
  55. public class HomeworkClass {
  56. private Integer id;
  57. private String name;
  58. private String lesson;
  59. private Integer grade;
  60. private Date date;
  61.  
  62. public HomeworkClass() {
  63. }
  64.  
  65. public HomeworkClass(Integer id, String name, String lesson, Integer grade, Date date) {
  66. this.id = id;
  67. this.name = name;
  68. this.lesson = lesson;
  69. this.grade = grade;
  70. this.date = date;
  71. }
  72.  
  73. public Integer getId() {
  74. return id;
  75. }
  76.  
  77. public void setId(Integer id) {
  78. this.id = id;
  79. }
  80.  
  81. public String getName() {
  82. return name;
  83. }
  84.  
  85. public void setName(String name) {
  86. this.name = name;
  87. }
  88.  
  89. public String getLesson() {
  90. return lesson;
  91. }
  92.  
  93. public void setLesson(String lesson) {
  94. this.lesson = lesson;
  95. }
  96.  
  97. public Integer getGrade() {
  98. return grade;
  99. }
  100.  
  101. public void setGrade(Integer grade) {
  102. this.grade = grade;
  103. }
  104.  
  105. public Date getDate() {
  106. return date;
  107. }
  108.  
  109. public void setDate(Date date) {
  110. this.date = date;
  111. }
  112.  
  113. @Override
  114. public String toString() {
  115. return "HomeworkClass{" +
  116. "id=" + id +
  117. ", name='" + name + '\'' +
  118. ", lesson='" + lesson + '\'' +
  119. ", grade=" + grade +
  120. ", date=" + date +
  121. '}';
  122. }
  123. }
  124.  
  125.  
  126. import java.lang.Class;
  127. import java.sql.*;
  128. import java.util.ArrayList;
  129. import java.util.Date;
  130. import java.util.Scanner;
  131.  
  132. public class Homework {
  133. static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
  134. static final String DB_URL = "jdbc:mysql://localhost:3306/students";
  135. static final String USER = "root";
  136. static final String PASS = "";
  137.  
  138. public static void main(String[] args) {
  139. Scanner in = new Scanner(System.in);
  140. Connection conn = null;
  141. Statement stmt = null;
  142. String sql;
  143.  
  144. //showing information for input
  145. info();
  146. int response = in.nextInt();
  147.  
  148. try {
  149.  
  150. Class.forName(JDBC_DRIVER);
  151. System.out.println("Connecting to database...");
  152.  
  153. conn = DriverManager.getConnection(DB_URL, USER, PASS);
  154. stmt = conn.createStatement();
  155.  
  156. switch (response) {
  157. case 1: // list all students info
  158. Connection finalConn = conn;
  159. Statement finalStmt = stmt;
  160.  
  161. ThreadCallback callback = new ThreadCallback() {
  162. @Override
  163. public void onDataFetched(ArrayList<HomeworkClass> dataSet) {
  164. for (HomeworkClass homeworkClass : dataSet) {
  165. System.out.println(homeworkClass.toString());
  166. }
  167. }
  168.  
  169. @Override
  170. public void onError(SQLException ex) {
  171. ex.printStackTrace();
  172. }
  173.  
  174. @Override
  175. public void onEnd() {
  176. //disconnect from database
  177. disconncetDb(finalConn, finalStmt);
  178. }
  179. };
  180.  
  181. HomeworkDbThread dbThread = new HomeworkDbThread(stmt, callback);
  182. dbThread.start();
  183. break;
  184.  
  185. case 2: // Insert new info
  186. ArrayList<HomeworkClass> dataSetForInsert = new ArrayList<>();
  187.  
  188. HomeworkClass homeworkClass = new HomeworkClass();
  189. homeworkClass.setName("");
  190.  
  191. System.out.println("Please Enter student's name: ");
  192. String newName = in.next();
  193. System.out.println("Lesson's name: ");
  194. String newLesson = in.next();
  195. System.out.println("Student's grade: ");
  196. int newGrade = in.nextInt();
  197. sql = "INSERT INTO class(name, lesson, grade) VALUES('" + newName + "','" + newLesson + "'," + newGrade + ")";
  198. stmt.execute(sql);
  199. System.out.println("new information added successfully!");
  200. disconncetDb(conn, stmt);
  201. break;
  202.  
  203. case 3: // Delete info
  204. System.out.println("Please enter the Student's ID which you want to DELETE: ");
  205. int studentId = in.nextInt();
  206. sql = "DELETE FROM class WHERE id=" + studentId;
  207. stmt.execute(sql);
  208. disconncetDb(conn, stmt);
  209. break;
  210.  
  211. case 4: // update info
  212. System.out.println("What do you want to update? (name, lesson or grade");
  213. String answer = in.next();
  214. switch (answer) {
  215. case "name":
  216. System.out.println("Please enter Student's ID which you want to update: ");
  217. int updateID = in.nextInt();
  218.  
  219. System.out.println("Enter the name: ");
  220. String updateName = in.next();
  221.  
  222. sql = "UPDATE class SET name='" + updateName + "' WHERE id=" + updateID;
  223. stmt.execute(sql);
  224. System.out.println("Student's name updated by ID of " + updateID);
  225. break;
  226. case "lesson":
  227. System.out.println("Please enter Student's ID which you want to update: ");
  228. updateID = in.nextInt();
  229.  
  230. System.out.println("Enter the name: ");
  231. String updateLesson = in.next();
  232.  
  233. sql = "UPDATE class SET lesson='" + updateLesson + "' WHERE id=" + updateID;
  234. stmt.execute(sql);
  235. System.out.println("Student's lesson updated by ID of " + updateID);
  236. break;
  237. case "grade":
  238. System.out.println("Please enter Student's ID which you want to update: ");
  239. updateID = in.nextInt();
  240.  
  241. System.out.println("Enter the name: ");
  242. int updateGrade = in.nextInt();
  243.  
  244. sql = "UPDATE class SET grade=" + updateGrade + " WHERE id=" + updateID;
  245. stmt.execute(sql);
  246. System.out.println("Student's grade updated by ID of " + updateID);
  247. break;
  248. default:
  249. System.out.println("Incorrect input, you can choose only between name, lesson or grade.");
  250. break;
  251. }
  252. disconncetDb(conn, stmt);
  253. break;
  254. default: // exit mode
  255. System.out.println("OK");
  256. break;
  257. }
  258.  
  259. } catch (ClassNotFoundException e) {
  260. e.printStackTrace();
  261. } catch (SQLException e) {
  262. e.printStackTrace();
  263. }
  264.  
  265. }
  266.  
  267. public static void info() {
  268. System.out.println(
  269. "Enter:" +
  270. "\n 1: To list all students info" +
  271. "\n 2: To add new student info" +
  272. "\n 3: To delete student info" +
  273. "\n 4: To update student info" +
  274. "\n 5: EXIT"
  275. );
  276. System.out.println("Your input is: ");
  277. }
  278.  
  279. public static void disconncetDb(Connection conn, Statement stmt) {
  280. try {
  281. stmt.close();
  282. } catch (SQLException e) {
  283. e.printStackTrace();
  284. }
  285.  
  286. try {
  287. conn.close();
  288. } catch (SQLException e) {
  289. e.printStackTrace();
  290. }
  291.  
  292. System.out.println("Disconnected from database.");
  293. }
  294. }
  295.  
  296. import java.sql.SQLException;
  297. import java.util.ArrayList;
  298.  
  299. public interface ThreadCallback {
  300. void onDataFetched(ArrayList<HomeworkClass> dataSet);
  301.  
  302. void onEnd();
  303.  
  304. void onError(SQLException ex);
  305. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement