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