Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.88 KB | None | 0 0
  1. Интерфейс AbstractController:
  2. package DAO;
  3.  
  4. import java.sql.Connection;
  5. import java.sql.SQLException;
  6.  
  7. public interface AbstractController<E> {
  8. E add(Connection connection,E e) throws SQLException;
  9. boolean update(Connection connection,E e) throws SQLException;
  10. }
  11.  
  12. Класс DepartmentDAO:
  13. package DAO;
  14.  
  15. import Enity.Department;
  16.  
  17. import java.sql.Connection;
  18. import java.sql.PreparedStatement;
  19. import java.sql.SQLException;
  20.  
  21. public class DepartmentDAO implements AbstractController<Department> {
  22.  
  23. @Override
  24. public Department add(Connection connection, Department department) throws SQLException {
  25. String sql = "insert into department (id_university,id_faculty,name) values (?,?,?)";
  26. try (PreparedStatement statement = connection.prepareStatement(sql)) {
  27. statement.setInt(1,department.getId_university());
  28. statement.setInt(2,department.getId_faculty());
  29. statement.setString(3,department.getName());
  30. statement.execute();
  31. } catch (SQLException e) {
  32. e.getMessage();
  33. }
  34. return department;
  35. }
  36.  
  37. @Override
  38. public boolean update(Connection connection, Department department) throws SQLException {
  39. try(PreparedStatement statement = connection.prepareStatement("update department set name = '" +
  40. department.getName() +"' where id = " + department.getId() + ";")) {
  41. statement.executeUpdate();
  42. } catch (SQLException e) {
  43. e.printStackTrace();
  44. return false;
  45. }
  46. return true;
  47. }
  48. }
  49.  
  50. Класс FacultyDAO:
  51. package DAO;
  52.  
  53. import Enity.Faculty;
  54.  
  55. import java.sql.Connection;
  56. import java.sql.PreparedStatement;
  57. import java.sql.SQLException;
  58.  
  59. public class FacultyDAO implements AbstractController<Faculty> {
  60.  
  61. @Override
  62. public Faculty add(Connection connection, Faculty faculty) throws SQLException {
  63. String sql = "insert into faculty (id_university,name) values (?,?)";
  64. try (PreparedStatement statement = connection.prepareStatement(sql)) {
  65. statement.setInt(1,faculty.getId_university());
  66. statement.setString(2,faculty.getName());
  67. statement.execute();
  68. } catch (SQLException e) {
  69. e.getMessage();
  70. }
  71. return faculty;
  72. }
  73.  
  74. @Override
  75. public boolean update(Connection connection, Faculty faculty) throws SQLException {
  76. try(PreparedStatement statement = connection.prepareStatement("update faculty set name = '" +
  77. faculty.getName() +"' where id = " + faculty.getId() + ";")) {
  78. statement.executeUpdate();
  79. } catch (SQLException e) {
  80. e.printStackTrace();
  81. return false;
  82. }
  83. return true;
  84. }
  85. }
  86.  
  87. Класс UniversityDAO:
  88. package DAO;
  89.  
  90. import Enity.University;
  91.  
  92. import java.sql.*;
  93.  
  94. public class UniversityDAO implements AbstractController<University> {
  95.  
  96. @Override
  97. public University add(Connection connection, University university) throws SQLException {
  98. String sql = "insert into university (name,address) values (?,?)";
  99.  
  100. try (PreparedStatement statement = connection.prepareStatement(sql)) {
  101. statement.setString(1,university.getName());
  102. statement.setString(2,university.getAddress());
  103. statement.execute();
  104. } catch (SQLException e) {
  105. e.getMessage();
  106. }
  107. return university;
  108. }
  109.  
  110. @Override
  111. public boolean update(Connection connection, University university) throws SQLException {
  112. try(PreparedStatement statement = connection.prepareStatement("update university set name = '" +
  113. university.getName() +"',address='"+university.getAddress()+"' where id = " + university.getId() + ";")) {
  114. statement.executeUpdate();
  115. } catch (SQLException e) {
  116. e.printStackTrace();
  117. return false;
  118. }
  119. return true;
  120. }
  121. }
  122.  
  123. Класс Department:
  124. package Enity;
  125.  
  126. public class Department {
  127. private int id;
  128. private int id_university;
  129. private int id_faculty;
  130. private String name;
  131.  
  132. public Department(){
  133. }
  134.  
  135. public Department(int id){
  136. this.id=id;
  137. }
  138.  
  139. public Department(int id,int id_university,int id_faculty ,String name){
  140. this.id=id;
  141. this.id_university=id_university;
  142. this.id_faculty=id_faculty;
  143. this.name=name;
  144. }
  145.  
  146. public Department(int id_university,int id_faculty,String name)
  147. {
  148. this.id_university=id_university;
  149. this.id_faculty=id_faculty;
  150. this.name=name;
  151. }
  152.  
  153. public Department(String name){
  154. this.name=name;
  155. }
  156.  
  157. public int getId(){return id;}
  158.  
  159. public int getId_university(){return id_university;}
  160.  
  161. public int getId_faculty(){return id_faculty;}
  162.  
  163. public String getName(){return name;}
  164.  
  165. public void setId(int id){this.id=id;}
  166.  
  167. public void setId_university(int id_university){this.id_university=id_university;}
  168.  
  169. public void setId_faculty(int id_faculty){this.id_faculty=id_faculty;}
  170.  
  171. public void setName(String name){this.name=name;}
  172.  
  173. @Override
  174. public String toString(){return name;}
  175. }
  176.  
  177. Класс Faculty:
  178. package Enity;
  179.  
  180. public class Faculty {
  181. private int id;
  182. private int id_university;
  183. private String name;
  184.  
  185. public Faculty(){
  186. }
  187.  
  188. public Faculty(int id,int id_university, String name){
  189. this.id=id;
  190. this.id_university=id_university;
  191. this.name=name;
  192. }
  193.  
  194. public Faculty(int id_university,String name){
  195. this.id_university=id_university;
  196. this.name=name;
  197. }
  198.  
  199.  
  200. public Faculty(String name){
  201. this.name=name;
  202. }
  203.  
  204. public int getId(){return id;}
  205.  
  206. public int getId_university(){return id_university;}
  207.  
  208. public String getName(){return name;}
  209.  
  210. public void setId(int id){this.id=id;}
  211.  
  212. public void setId_university(int id_university){this.id_university=id_university;}
  213.  
  214. public void setName(String name){this.name=name;}
  215.  
  216. @Override
  217. public String toString(){return name;}
  218. }
  219.  
  220. Класс University:
  221. package Enity;
  222.  
  223. public class University {
  224. private int id;
  225. private String name;
  226. private String address;
  227.  
  228. public University(){
  229. }
  230.  
  231. public University(int id,String name, String address){
  232. this.id=id;
  233. this.name=name;
  234. this.address=address;
  235. }
  236.  
  237. public University(String name, String address){
  238. this.name=name;
  239. this.address=address;
  240. }
  241.  
  242. public int getId(){return id;}
  243.  
  244. public String getName(){
  245. return name;
  246. }
  247.  
  248. public String getAddress(){
  249. return address;
  250. }
  251.  
  252. public void setId(int id){this.id=id;}
  253.  
  254. public void setName(String name) {
  255. this.name = name;
  256. }
  257.  
  258. public void setAddress(String address){this.address=address;}
  259.  
  260. @Override
  261. public String toString(){
  262. return name;
  263. }
  264. }
  265.  
  266. Класс ConnectDataBase:
  267. import java.sql.Connection;
  268. import java.sql.DriverManager;
  269. import java.sql.SQLException;
  270.  
  271. public final class ConnectDataBase {
  272.  
  273. public static Connection connDataBase() {
  274. final String URL = "jdbc:postgresql://127.0.0.1:5432/course";
  275. final String USERNAME = "postgres";
  276. final String PASSWORD = "S123456s";
  277.  
  278. Connection connection = null;
  279. try {
  280. Class.forName("org.postgresql.Driver");
  281. connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
  282. System.out.println("Соединение с БД установленно!");
  283. } catch (ClassNotFoundException | SQLException ex) {
  284. System.err.println("Нет коннекта к базе: " + ex);
  285. }
  286. return connection;
  287. }
  288. }
  289.  
  290. Класс GUI:
  291. import DAO.DepartmentDAO;
  292. import DAO.FacultyDAO;
  293. import DAO.UniversityDAO;
  294. import Enity.Department;
  295. import Enity.Faculty;
  296. import Enity.University;
  297.  
  298. import javax.swing.*;
  299. import java.awt.event.*;
  300. import java.sql.*;
  301.  
  302. public class GUI extends JDialog {
  303. Connection connection =ConnectDataBase.connDataBase();
  304. private DefaultListModel dlmUniversity = new DefaultListModel<>();
  305. private DefaultListModel dlmFaculty = new DefaultListModel<>();
  306. private DefaultListModel dlmDepartment = new DefaultListModel<>();
  307. UniversityDAO universityDAO = new UniversityDAO();
  308. FacultyDAO facultyDAO = new FacultyDAO();
  309. DepartmentDAO departmentDAO = new DepartmentDAO();
  310. String getNameUni;
  311. String getNameFacu;
  312. String getNameDepa;
  313. int getId_uni;
  314. int getId_facu;
  315. int getId_depa;
  316. private JPanel contentPane;
  317. private JButton addUniversity;
  318. private JButton updateUniversity;
  319. private JList listUniversity;
  320. private JList listFaculty;
  321. private JList listDepartment;
  322. private JButton addFaculty;
  323. private JButton updateFaculty;
  324. private JButton addDepartment;
  325. private JButton updateDepartment;
  326. private JButton selectUni;
  327. private JButton selectFaculty;
  328. private JButton selectDepartment;
  329.  
  330. public GUI() throws SQLException {
  331.  
  332. addUniversity.addActionListener(new ActionListener() {
  333. public void actionPerformed(ActionEvent e) {
  334. University university = new University(JOptionPane.showInputDialog(contentPane,"Введите название вуза"),JOptionPane.showInputDialog(contentPane,"Введите адрес вуза"));
  335. try {
  336. dlmUniversity.add(dlmUniversity.getSize(),universityDAO.add(connection,university) );
  337. } catch (SQLException ex) {
  338. ex.printStackTrace();
  339. }
  340. validate();
  341. }
  342. });
  343.  
  344. addFaculty.addActionListener(new ActionListener() {
  345. @Override
  346. public void actionPerformed(ActionEvent e) {
  347. Faculty faculty = new Faculty(getId_uni,JOptionPane.showInputDialog(contentPane,"Введите название факультета"));
  348. try {
  349. dlmFaculty.add(dlmFaculty.getSize(),facultyDAO.add(connection,faculty) );
  350. } catch (SQLException ex) {
  351. ex.printStackTrace();
  352. }
  353. validate();
  354. }
  355. });
  356.  
  357. addDepartment.addActionListener(new ActionListener() {
  358. @Override
  359. public void actionPerformed(ActionEvent e) {
  360. Department department = new Department(getId_uni,getId_facu,JOptionPane.showInputDialog(contentPane,"Введите название кафедры"));
  361. try {
  362. dlmDepartment.add(dlmDepartment.getSize(),departmentDAO.add(connection,department) );
  363. } catch (SQLException ex) {
  364. ex.printStackTrace();
  365. }
  366. validate();
  367. }
  368. });
  369.  
  370. updateUniversity.addActionListener(new ActionListener() {
  371. @Override
  372. public void actionPerformed(ActionEvent e) {
  373. University university = new University(getId_uni,JOptionPane.showInputDialog(contentPane,"Введите новое название ВУЗа"),JOptionPane.showInputDialog(contentPane,"Введите новый адрес вуза"));
  374. try {
  375. //University university = new University(getId_uni,JOptionPane.showInputDialog(contents,"Введите новое название ВУЗа"),JOptionPane.showInputDialog(contents,"Введите новый адрес вуза"));
  376. universityDAO.update(connection,university);
  377. dlmUniversity.removeAllElements();
  378. Statement statement = connection.createStatement();
  379. ResultSet resultSet = statement.executeQuery("select name,address from university");
  380. while (resultSet.next()) {
  381. String name = resultSet.getString("name");
  382. String address = resultSet.getString("address");
  383. University university1 = new University(name,address);
  384. dlmUniversity.addElement(university1);
  385. }
  386. } catch (SQLException ex) {
  387. ex.printStackTrace();
  388. }
  389. }
  390. });
  391.  
  392. updateFaculty.addActionListener(new ActionListener() {
  393. @Override
  394. public void actionPerformed(ActionEvent e) {
  395. Faculty faculty = new Faculty(getId_facu,getId_uni,JOptionPane.showInputDialog(contentPane,"Введите новое название Факультета"));
  396. try {
  397. facultyDAO.update(connection,faculty);
  398. dlmFaculty.removeAllElements();
  399. try {
  400. Statement statement = connection.createStatement();
  401. ResultSet resultSet = statement.executeQuery("select name from faculty where id_university="+getId_uni);
  402. while (resultSet.next()) {
  403. String name = resultSet.getString("name");
  404. Faculty faculty1 = new Faculty(name);
  405. dlmFaculty.addElement(faculty1);
  406. }}
  407. catch (SQLException ex){
  408. ex.printStackTrace();
  409. }
  410. } catch (SQLException ex) {
  411. ex.printStackTrace();
  412. }
  413. }
  414. });
  415.  
  416. updateDepartment.addActionListener(new ActionListener() {
  417. @Override
  418. public void actionPerformed(ActionEvent e) {
  419. Department department = new Department(getId_depa,getId_uni,getId_facu,JOptionPane.showInputDialog(contentPane,"Введите новое название Кафедры"));
  420. try {
  421. departmentDAO.update(connection,department);
  422. dlmDepartment.removeAllElements();
  423. try {
  424. Statement statement = connection.createStatement();
  425. ResultSet resultSet = statement.executeQuery("select name from department where id_university="+getId_uni+"and id_faculty="+getId_facu);
  426. while (resultSet.next()) {
  427. String name = resultSet.getString("name");
  428. Department department1 = new Department(name);
  429. dlmDepartment.addElement(department1);
  430. }}
  431. catch (SQLException ex){
  432. ex.printStackTrace();
  433. }
  434. } catch (SQLException ex) {
  435. ex.printStackTrace();
  436. }
  437. }
  438. });
  439.  
  440. selectUni.addActionListener(new ActionListener() {
  441. @Override
  442. public void actionPerformed(ActionEvent e) {
  443. try {
  444. Statement statement = connection.createStatement();
  445. ResultSet resultSet = statement.executeQuery("select address from university where id="+getId_uni);
  446. while (resultSet.next()) {
  447. JOptionPane.showMessageDialog(contentPane,"Адрес: "+resultSet.getString("address"));
  448. }
  449. } catch (SQLException ex) {
  450. ex.printStackTrace();
  451. }
  452.  
  453. }
  454. });
  455.  
  456. Statement statement = connection.createStatement();
  457. ResultSet resultSet = statement.executeQuery("select name,address from university");
  458. while (resultSet.next()) {
  459. String name = resultSet.getString("name");
  460. String address = resultSet.getString("address");
  461. University university = new University(name,address);
  462. dlmUniversity.addElement(university);
  463. }
  464. listUniversity.setModel(dlmUniversity);
  465.  
  466. listUniversity.addMouseListener(new MouseAdapter() {
  467. @Override
  468. public void mouseClicked(MouseEvent e) {
  469. if ( e.getClickCount() == 2 ){
  470. dlmFaculty.removeAllElements();
  471. dlmDepartment.removeAllElements();
  472. getNameUni=listUniversity.getSelectedValue().toString();
  473. try{
  474. PreparedStatement preparedStatement = connection.prepareStatement("select id from university where name=?");
  475. preparedStatement.setString(1, getNameUni);
  476. ResultSet resultSet = preparedStatement.executeQuery();
  477. while (resultSet.next()) {
  478. getId_uni = resultSet.getInt(1);
  479. }
  480. } catch (SQLException ex) {
  481. ex.printStackTrace();
  482. }
  483. try {
  484. ResultSet resultSet = statement.executeQuery("select name from faculty where id_university="+getId_uni);
  485. while (resultSet.next()) {
  486. String name = resultSet.getString("name");
  487. Faculty faculty = new Faculty(name);
  488. dlmFaculty.addElement(faculty);
  489. }}
  490. catch (SQLException ex){
  491. ex.printStackTrace();
  492. }
  493. }
  494. }
  495. });
  496.  
  497. listFaculty.setModel(dlmFaculty);
  498.  
  499. listFaculty.addMouseListener(new MouseAdapter() {
  500. @Override
  501. public void mouseClicked(MouseEvent e) {
  502. if ( e.getClickCount() == 2 ){
  503. dlmDepartment.removeAllElements();
  504. getNameFacu = listFaculty.getSelectedValue().toString();
  505. try{
  506. PreparedStatement preparedStatement = connection.prepareStatement("select id from faculty where name=?");
  507. preparedStatement.setString(1, getNameFacu);
  508. ResultSet resultSet = preparedStatement.executeQuery();
  509. while (resultSet.next()) {
  510. getId_facu = resultSet.getInt(1);
  511. }
  512. } catch (SQLException ex) {
  513. ex.printStackTrace();
  514. }
  515. try {
  516. ResultSet resultSet = statement.executeQuery("select name from department where id_university="+getId_uni+"and id_faculty="+getId_facu);
  517. while (resultSet.next()) {
  518. String name = resultSet.getString("name");
  519. Department department = new Department(name);
  520. dlmDepartment.addElement(department);
  521. }}
  522. catch (SQLException ex){
  523. ex.printStackTrace();
  524. }
  525. }
  526. }
  527. });
  528.  
  529. listDepartment.setModel(dlmDepartment);
  530.  
  531. listDepartment.addMouseListener(new MouseAdapter() {
  532. @Override
  533. public void mouseClicked(MouseEvent e) {
  534. getNameDepa = listDepartment.getSelectedValue().toString();
  535. try{
  536. PreparedStatement preparedStatement = connection.prepareStatement("select id from department where name=?");
  537. preparedStatement.setString(1, getNameDepa);
  538. ResultSet resultSet = preparedStatement.executeQuery();
  539. while (resultSet.next()) {
  540. getId_depa = resultSet.getInt(1);
  541. }
  542. } catch (SQLException ex) {
  543. ex.printStackTrace();
  544. }
  545. }
  546. });
  547.  
  548. setContentPane(contentPane);
  549. setModal(true);
  550.  
  551. setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
  552. addWindowListener(new WindowAdapter() {
  553. public void windowClosing(WindowEvent e) {
  554. onCancel();
  555. }
  556. });
  557.  
  558. contentPane.registerKeyboardAction(new ActionListener() {
  559. public void actionPerformed(ActionEvent e) {
  560. onCancel();
  561. }
  562. }, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
  563. }
  564.  
  565. private void onOK() {
  566. dispose();
  567. }
  568.  
  569. private void onCancel() {
  570. dispose();
  571. }
  572.  
  573. public static void main(String[] args) throws SQLException, ClassNotFoundException, UnsupportedLookAndFeelException, InstantiationException, IllegalAccessException {
  574. UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
  575. GUI dialog = new GUI();
  576. dialog.pack();
  577. dialog.setVisible(true);
  578. System.exit(0);
  579. }
  580. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement