Guest User

Untitled

a guest
Jan 21st, 2019
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.35 KB | None | 0 0
  1. package school;
  2.  
  3.  
  4. import java.sql.Connection;
  5. import java.sql.DriverManager;
  6. import java.sql.PreparedStatement;
  7. import java.sql.ResultSet;
  8. import java.sql.SQLException;
  9. import java.sql.Statement;
  10. import javax.swing.JTable;
  11.  
  12.  
  13. import java.sql.Connection;
  14. import java.sql.DriverManager;
  15. import java.sql.PreparedStatement;
  16. import java.sql.ResultSet;
  17. import java.sql.SQLException;
  18. import java.sql.Statement;
  19.  
  20.  
  21. public class SQLtest {
  22. private static final String URL = "jdbc:mysql://localhost:3306/school_db?useTimezone=true&serverTimezone=GMT";
  23. private static final String USER = "root";
  24. private static final String PASSWORD = "123456";
  25. private static final String GET_ALL_STUDENTS_QUERY = "SELECT pupil.id, pupil.name, pupil.surname from pupil";
  26. private static final String GET_ALL_MARKS_QUERY = "SELECT pupil.name, pupil.surname, mark_value.valuesn"
  27. + " FROM pupil, mark_value, markn"
  28. + " WHERE pupil.id = mark.pupil_id AND mark.mark_id = mark_value.id ";
  29.  
  30. public static void main(String args[]) {
  31. SQLtest sqltest = new SQLtest();
  32. sqltest.printAllStudents();
  33. sqltest.printAllMarks();
  34. }
  35.  
  36. private void printAllStudents() {
  37. try (Connection con = DriverManager.getConnection(URL, USER, PASSWORD)) {
  38. PreparedStatement stmtGetStudents = con.prepareStatement(GET_ALL_STUDENTS_QUERY);
  39. ResultSet rs = stmtGetStudents.executeQuery();
  40. while (rs.next()) {
  41. int id = rs.getInt(1);
  42. String firstName = rs.getString(2);
  43. String lastName = rs.getString(3);
  44. System.out.println("Students : " + firstName + " " + lastName);
  45. }
  46. } catch (Exception e) {
  47. System.out.println("Ошибка при выборке студентов. " + e.getMessage());
  48. }
  49. }
  50.  
  51. private void printAllMarks() {
  52. try (Connection con = DriverManager.getConnection(URL, USER, PASSWORD)) {
  53. PreparedStatement stmtGetMarks = con.prepareStatement(GET_ALL_MARKS_QUERY);
  54. ResultSet rs = stmtGetMarks.executeQuery();
  55. while (rs.next()) {
  56. String name = rs.getString(1);
  57. String surName = rs.getString(2);
  58. String value = rs.getString(3);
  59. System.out.println(name + " " + surName + " " + value);
  60. }
  61. } catch (Exception e) {
  62. System.out.println("Ошибка при выборке оценок. " + e.getMessage());
  63. }
  64. }
  65. }
  66.  
  67. SELECT pupil.name ,pupil.surname,mark_value.values FROM pupil ,mark_value ,mark WHERE pupil.id=mark.pupil_id AND mark.mark_id=mark_value.id;
  68.  
  69. package school.frames;
  70.  
  71.  
  72. import javax.swing.JFrame;
  73. import javax.swing.JList;
  74. import javax.swing.JScrollPane;
  75. import javax.swing.ScrollPaneConstants;
  76. import school.Main;
  77.  
  78. public class AllStudentFrame extends MyFrame {
  79.  
  80. public AllStudentFrame(JFrame parent){
  81. super("Все студенты", parent, 250, 200);
  82.  
  83. }
  84. @Override
  85. public void showFrame() {
  86. JList<Object> list = new JList<>(Main.getClassesAsArray());
  87. JScrollPane listScroller = new JScrollPane(list);
  88. listScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
  89. listScroller.setBounds(0, 0, 250, 300);
  90. add(listScroller);
  91.  
  92.  
  93.  
  94. setVisible(true);
  95.  
  96.  
  97. }
  98.  
  99. }
  100.  
  101. package school;
  102.  
  103. import school.frames.DeleteStudentFrame;
  104. import school.frames.DeleteClassFrame;
  105. import school.frames.CreateClassFrame;
  106. import school.frames.AddGradeFrame;
  107. import school.frames.AddStudentFrame;
  108. import school.frames.FindStudentFrame;
  109. import school.database.SchoolClass;
  110. import school.database.Student;
  111.  
  112. import javax.management.openmbean.KeyAlreadyExistsException;
  113. import javax.swing.*;
  114. import javax.swing.border.TitledBorder;
  115. import java.awt.*;
  116. import java.awt.event.ComponentAdapter;
  117. import java.awt.event.ComponentEvent;
  118. import java.util.ArrayList;
  119. import java.util.Comparator;
  120. import school.frames.AllStudentFrame;
  121.  
  122. public class Main {
  123.  
  124. private static ArrayList<SchoolClass> classes = new ArrayList<>();
  125.  
  126. private static JFrame mainFrame;
  127. private static JList<SchoolClass> classList;
  128. private static JList<Student> studentList;
  129. private static JTable table;
  130. private static JScrollPane classListPane;
  131. private static JScrollPane studentListPane;
  132. private static JScrollPane tablePane;
  133.  
  134. public static ArrayList<SchoolClass> getClasses() {
  135. return classes;
  136. }
  137.  
  138. public static SchoolClass[] getClassesAsArray() {
  139. return classes.toArray(new SchoolClass[0]);
  140. }
  141.  
  142.  
  143. public static void addClass(SchoolClass schoolClass) throws KeyAlreadyExistsException {
  144. for (SchoolClass c : classes) {
  145. if (c.getName().equals(schoolClass.getName()))
  146. throw new KeyAlreadyExistsException(schoolClass.getName());
  147. }
  148. classes.add(schoolClass);
  149. classes.sort(Comparator.comparing(SchoolClass::toString));
  150. classList.setListData(getClassesAsArray());
  151. }
  152.  
  153.  
  154. public static void deleteClass(SchoolClass schoolClass) {
  155. classes.remove(schoolClass);
  156. classList.setListData(getClassesAsArray());
  157. updateStudentsList();
  158. updateTable();
  159. }
  160.  
  161.  
  162. public static void selectStudent(SchoolClass schoolClass, Student student) {
  163. try {
  164. classList.setSelectedIndex(classes.indexOf(schoolClass));
  165. updateStudentsList();
  166. studentList.setSelectedIndex(schoolClass.getStudents().indexOf(student));
  167. updateTable();
  168. } catch (Exception ignored) {
  169.  
  170.  
  171. }
  172. }
  173.  
  174. public static void updateStudentsList() {
  175. if (classList.getSelectedValue() != null) {
  176. studentList.setListData(classList.getSelectedValue().getStudentsAsArray());
  177. updateTable();
  178. }
  179. }
  180.  
  181.  
  182. public static void updateTable() {
  183. if (tablePane != null) mainFrame.remove(tablePane);
  184. if (studentList.getSelectedValue() != null) {
  185. Student select = studentList.getSelectedValue();
  186. table = select.createTable();
  187. tablePane = new JScrollPane(table);
  188. tablePane.setBounds(300, 0, mainFrame.getWidth() - 300, mainFrame.getHeight());
  189. mainFrame.add(tablePane);
  190. } else {
  191. tablePane = null;
  192. }
  193. mainFrame.validate();
  194. mainFrame.repaint();
  195. }
  196.  
  197. private static JMenuBar createMenuBar() {
  198. JMenuBar menuBar = new JMenuBar();
  199.  
  200. JMenu classMenu = new JMenu("Классы");
  201. JMenuItem createClassItem = new JMenuItem("Создать");
  202. createClassItem.addActionListener(actionEvent -> new CreateClassFrame(mainFrame));
  203. JMenuItem deleteClassItem = new JMenuItem("Удалить");
  204. deleteClassItem.addActionListener(actionEvent -> new DeleteClassFrame(mainFrame));
  205. classMenu.add(createClassItem);
  206. classMenu.add(deleteClassItem);
  207.  
  208. JMenu studentMenu = new JMenu("Ученики");
  209. JMenuItem findStudentItem = new JMenuItem("Найти");
  210. findStudentItem.addActionListener(actionEvent -> new FindStudentFrame(mainFrame));
  211. JMenuItem addStudentItem = new JMenuItem("Добавить");
  212. addStudentItem.addActionListener(actionEvent -> new AddStudentFrame(mainFrame));
  213. JMenuItem showAllStudentItem = new JMenuItem("Вывести всех учеников");
  214. showAllStudentItem.addActionListener(actionEvent -> new AllStudentFrame(mainFrame));
  215. JMenuItem deleteStudentItem = new JMenuItem("Удалить");
  216. deleteStudentItem.addActionListener(actionEvent -> new DeleteStudentFrame(mainFrame));
  217.  
  218. studentMenu.add(findStudentItem);
  219. studentMenu.add(addStudentItem);
  220. studentMenu.add(showAllStudentItem);
  221. studentMenu.add(deleteStudentItem);
  222.  
  223. JMenu gradeMenu = new JMenu("Оценки");
  224. JMenuItem addGradeItem = new JMenuItem("Добавить");
  225. addGradeItem.addActionListener(actionEvent -> new AddGradeFrame(mainFrame));
  226. gradeMenu.add(addGradeItem);
  227.  
  228. menuBar.add(classMenu);
  229. menuBar.add(studentMenu);
  230. menuBar.add(gradeMenu);
  231.  
  232. return menuBar;
  233. }
  234.  
  235. public static void main(String[] args) {
  236. mainFrame = new JFrame("Журнал");
  237. mainFrame.setMinimumSize(new Dimension(960, 720));
  238. mainFrame.setSize(mainFrame.getMinimumSize());
  239.  
  240. mainFrame.setLocationRelativeTo(null);
  241. mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  242. mainFrame.setLayout(null);
  243.  
  244. classList = new JList<>(getClassesAsArray());
  245. classList.setBorder(new TitledBorder("Классы"));
  246. classList.addListSelectionListener(e -> updateStudentsList());
  247. classListPane = new JScrollPane(classList);
  248. classListPane.setBounds(0, 0, 100, mainFrame.getHeight());
  249.  
  250. studentList = new JList<>();
  251. studentList.setBorder(new TitledBorder("Ученики"));
  252. studentList.addListSelectionListener(e -> updateTable());
  253. studentListPane = new JScrollPane(studentList);
  254. studentListPane.setBounds(100, 0, 200, mainFrame.getHeight());
  255.  
  256. mainFrame.add(classListPane);
  257. mainFrame.add(studentListPane);
  258. mainFrame.setJMenuBar(createMenuBar());
  259.  
  260.  
  261. mainFrame.addComponentListener(new ComponentAdapter() {
  262. @Override
  263. public void componentResized(ComponentEvent e) {
  264. super.componentResized(e);
  265. classListPane.setBounds(0, 0, 100, mainFrame.getHeight());
  266. studentListPane.setBounds(100, 0, 200, mainFrame.getHeight());
  267. if (tablePane != null) tablePane.setBounds(300, 0, mainFrame.getWidth() - 300, mainFrame.getHeight());
  268. }
  269. });
  270.  
  271. mainFrame.setVisible(true);
  272. }
  273. }
  274.  
  275. package school.frames;
  276.  
  277. import school.Main;
  278. import school.database.SchoolClass;
  279. import school.database.Student;
  280.  
  281. import javax.swing.*;
  282. import java.awt.*;
  283. import java.awt.event.WindowAdapter;
  284. import java.awt.event.WindowEvent;
  285.  
  286. abstract class MyFrame extends JFrame {
  287.  
  288. private JFrame parent;
  289.  
  290. protected JComboBox<Student> studentBox;
  291.  
  292. public abstract void showFrame();
  293.  
  294. MyFrame(String title, JFrame parent, int width, int height) {
  295. super(title);
  296. this.parent = parent;
  297.  
  298. setSize(width, height);
  299. setResizable(false);
  300. setLocationRelativeTo(null);
  301. setLayout(null);
  302. setAlwaysOnTop(true);
  303. getParent().setEnabled(false);
  304.  
  305. addWindowListener(new WindowAdapter() {
  306. @Override
  307. public void windowClosing(WindowEvent e) {
  308. dispose();
  309. }
  310. });
  311.  
  312. showFrame();
  313. repaint();
  314. }
  315.  
  316. protected JComboBox<SchoolClass> createClassBox() {
  317. JComboBox<SchoolClass> classBox = new JComboBox<>(Main.getClassesAsArray());
  318. classBox.setBounds(150, 10, 90, 25);
  319. classBox.addItemListener(e -> {
  320. SchoolClass selectedClass = (SchoolClass) classBox.getSelectedItem();
  321. remove(studentBox);
  322. studentBox = new JComboBox<>(selectedClass.getStudentsAsArray());
  323. studentBox.setBounds(90, 45, 150, 25);
  324. add(studentBox);
  325. validate();
  326. repaint();
  327. });
  328. return classBox;
  329. }
  330.  
  331. @Override
  332. public Container getParent() {
  333. return parent;
  334. }
  335.  
  336. @Override
  337. public void dispose() {
  338. getParent().setEnabled(true);
  339. super.dispose();
  340. }
  341.  
  342. }
Add Comment
Please, Sign In to add comment