Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.swing.*;
- import java.sql.*;
- /**
- * Created by Admin on 24.11.2016.
- */
- public class AddValsInMysql {
- //создаем значения в БД
- void createValsInMysql(JTextField field1, JTextField field2, JTextField field3, JTextField field4, JTextField field5,
- Connection con, Statement stmt, ResultSet rs, String url, String user, String password){
- String query = "INSERT INTO carsfff.tbl1 (CODE, TYPE, QUANTITY, PRICE, YEAR) VALUES (" +
- "'" + field1.getText() + "'" + "," +
- "'" + field2.getText() + "'" + "," +
- "'" + field3.getText() + "'" + "," +
- "'" + field4.getText() + "'" + "," +
- "'" + field5.getText() + "'" + ")";
- try {
- // opening database connection to MySQL server
- con = DriverManager.getConnection(url, user, password);
- // getting Statement object to execute query
- stmt = con.createStatement();
- /*Ввод строк JTextfields в таблицу mysql*/
- stmt.executeUpdate(query);
- } catch (SQLException sqlEx) {
- sqlEx.printStackTrace();
- } finally {
- //close connection ,stmt and resultset here
- try { con.close(); } catch(SQLException se) { /*can't do anything */ }
- try { stmt.close(); } catch(SQLException se) { /*can't do anything */ }
- try { rs.close(); } catch(SQLException se) { /*can't do anything */ }
- }
- }
- }
- import javax.swing.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.sql.Connection;
- import java.sql.ResultSet;
- import java.sql.Statement;
- import java.util.ArrayList;
- /**
- * Created by Admin on 24.11.2016.
- */
- public class ButtonUpdateActListn {
- Message messageUpdate = new Message();
- void btnUpActListen(JButton btnUpdate, ArrayList valueInTables, JTextField field1, JTextField field2,
- JTextField field3, JTextField field4, JTextField field5, JTextField fieldID ,
- UpdateStringInTable updateStringInTable, String url, String user, String password,
- Connection con, Statement stmt, ResultSet rs, MyTableModel tModel){
- // данные изменяются в таблице. Слушатель на кнопку
- btnUpdate.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent ae) {
- valueInTables.add(new ValueInTable(field1.getText(), field2.getText(),
- Integer.valueOf(field3.getText()), Integer.valueOf(field4.getText()),
- Integer.valueOf(field5.getText()) ) );
- updateStringInTable.updateValues(url, user, password, field1, field2, field3, field4, field5,
- con, stmt, rs, Integer.valueOf(fieldID.getText()) );
- // выводим сообщение посне нажатия кнопки
- messageUpdate.showMsDialogBtnUpdate(ae, btnUpdate, Integer.valueOf(String.valueOf(fieldID.getText())));
- tModel.fireTableDataChanged();
- }
- });
- }
- }
- import java.sql.*;
- /**
- * Created by Admin on 24.11.2016.
- */
- public class GetCountToAllRowsInMysql {
- //узнаем к-тво строк в БД
- public int getAllRowsMysql(Connection con, Statement stmt, ResultSet rs, String url, String user, String password){
- String query = "SELECT count(*) FROM tbl1";
- int allRows = 0;
- try {
- // opening database connection to MySQL server
- con = DriverManager.getConnection(url, user, password);
- // getting Statement object to execute query
- stmt = con.createStatement();
- // executing SELECT query
- rs = stmt.executeQuery(query);
- /*Вывод строки таблици*/
- while (rs.next()) {
- allRows = rs.getInt(1);
- }
- } catch (SQLException sqlEx) {
- sqlEx.printStackTrace();
- } finally {
- //close connection ,stmt and resultset here
- try { con.close(); } catch(SQLException se) { /*can't do anything */ }
- try { stmt.close(); } catch(SQLException se) { /*can't do anything */ }
- try { rs.close(); } catch(SQLException se) { /*can't do anything */ }
- }
- return allRows;
- }
- }
- import javax.swing.*;
- import javax.swing.event.TableModelEvent;
- import javax.swing.table.DefaultTableModel;
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.sql.*;
- import java.util.ArrayList;
- import java.util.Vector;
- /**
- * Created by Admin on 18.11.2016.
- */
- public class JTableWindow extends JFrame{
- private static final String url = "jdbc:mysql://localhost:3306/carsfff";
- private static final String user = "root";
- private static final String password = "root";
- // поля для открытия подключения и получения значенией с Mysql
- private static Connection con;
- private static Statement stmt;
- private static ResultSet rs;
- Vector<Object> vector = new Vector<>();
- //Создадим список из сущностей класса ValueInTable
- ArrayList valueInTables = new ArrayList();
- UpdateStringInTable updateStringInTable = new UpdateStringInTable();
- SizeButtons sizeButtons = new SizeButtons();
- //JButton Update слушатель
- ButtonUpdateActListn buttonUpdateActListn = new ButtonUpdateActListn();
- // класс по созданию значенией в Mysql
- AddValsInMysql addValsInMysql = new AddValsInMysql();
- // класс с методом getAllRowsMysql() для получения значения всех строк
- GetCountToAllRowsInMysql getCountToAllRowsInMysql = new GetCountToAllRowsInMysql();
- // класс с методом removeRowById() // удаляем строку по id
- RemoveRowInMysql removeRowInMysql = new RemoveRowInMysql();
- // класс с методом showMsDialog() диологовых окон Message
- Message message = new Message();
- // класс с методом setIdAutoIncrement() перемещает AUTO_INCREMENT на последний элемент ID после удаления
- RefreshAutoIncrementForID refreshAutoIncrementForID = new RefreshAutoIncrementForID(con, stmt, rs, url, user, password);
- JButton btnUpdate = new JButton("Update");
- JButton btnAdd = new JButton("Add");
- JButton btnRemove = new JButton("Remove");
- JButton btnRefresh = new JButton("Refresh");
- JLabel labelID = new JLabel("ID:");
- // размер поля field 5
- JTextField field1 = new JTextField(5);
- JTextField field2 = new JTextField(5);
- JTextField field3 = new JTextField(5);
- JTextField field4 = new JTextField(5);
- JTextField field5 = new JTextField(5);
- JTextField fieldID = new JTextField(2);
- //Объект таблицы
- JTable jTable;
- JTableWindow() {
- //вводим запрос ID в mysql
- addIdInTable();
- //Создаем новый контейнер JFrame
- JFrame jFrame = new JFrame("Mysql V2.0");
- //размер JButton задает метод sizeBtn() в класе SizeButtons
- sizeButtons.sizeBtn(btnUpdate, btnAdd, btnRemove, btnRefresh);
- //Устанавливаем диспетчер компоновки
- jFrame.getContentPane().setLayout(new FlowLayout());
- //Устанавливаем размер окна
- jFrame.setSize(580, 470);
- //Устанавливаем завершение программы при закрытии окна
- jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- jFrame.add(field1);
- jFrame.add(field2);
- jFrame.add(field3);
- jFrame.add(field4);
- jFrame.add(field5);
- jFrame.add(labelID);
- // получаем данные с конструктора ValueInTables
- getArrayListVal(valueInTables);
- //Создадим модель таблицы
- MyTableModel tModel = new MyTableModel(valueInTables);
- //вызов метода слушутеля кнопки JButtonUpdate
- buttonUpdateActListn.btnUpActListen(btnUpdate, valueInTables, field1,field2,
- field3,field4,field5,fieldID, updateStringInTable, url, user, password, con, stmt, rs, tModel);
- // данные обновляются в таблице слушатель на кнопку
- btnRefresh.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent ae) {
- // обнуляем ArrayList
- valueInTables.clear();
- // обуляем вектор
- vector.clear();
- // заполняем Vector данными с mysql
- addIdInTable();
- getArrayListVal(valueInTables);
- //вызываем метод для вывода сообщения после нажатия кнопки
- message.showMsDialogBtnRefresh(ae, btnRefresh);
- tModel.fireTableDataChanged();
- }
- });
- // вызов метода createValsInMysql(), данные добавляются в таблицу Mysql. Слушатель на кнопку
- btnAdd.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent ae) {
- // создание записей в Mysql
- addValsInMysql.createValsInMysql(field1, field2, field3, field4, field5,
- con, stmt, rs, url, user, password);
- // вывод сообщения после нажатия кнопки о добавлении строки с ID
- message.showMsDialogBtnAdd(ae, btnAdd);
- tModel.fireTableDataChanged();
- }
- });
- // слушатель на кнопку Remove
- btnRemove.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent ae) {
- // удаление строк в Mysql по id
- removeRowInMysql.removeRowById(con, stmt, rs, url, user, password,
- Integer.valueOf(String.valueOf(fieldID.getText())));
- // выводим сообщение после удаления
- message.showMsDialogBtnRemove(ae, btnRemove, Integer.valueOf(String.valueOf(fieldID.getText())) );
- // перемещаем auto_increment ID на последний елемент ID
- refreshAutoIncrementForID.setIdAutoIncrement();
- tModel.fireTableDataChanged();
- }
- });
- //На основе модели, создадим новую JTable
- jTable = new JTable(tModel);
- //Создаем панель прокрутки и включаем в ее состав нашу таблицу
- JScrollPane jscrlp = new JScrollPane(jTable);
- //Устаналиваем размеры прокручиваемой области
- jTable.setPreferredScrollableViewportSize(new Dimension(550, 200));
- //Добавляем в контейнер нашу панель прокрути и таблицу вместе с ней
- jFrame.getContentPane().add(jscrlp);
- // добавляем кнопку на JFrame
- jFrame.getContentPane().add( labelID );
- jFrame.getContentPane().add( fieldID );
- jFrame.getContentPane().add( btnUpdate );
- jFrame.getContentPane().add( btnRefresh );
- jFrame.getContentPane().add( btnAdd );
- jFrame.getContentPane().add( btnRemove );
- // отображение фрейма по центру
- jFrame.setLocationRelativeTo(null);
- //Отображаем контейнер
- jFrame.setVisible(true);
- }
- //в Vector-лист добавляются значения каждая новая строка по номеру id
- public void conToMysql(int id){
- String query = "SELECT * FROM tbl1 where id=" + "'" + id + "'";
- try {
- // opening database connection to MySQL server
- con = DriverManager.getConnection(url, user, password);
- // getting Statement object to execute query
- stmt = con.createStatement();
- // executing SELECT query
- rs = stmt.executeQuery(query);
- // к-тво всех столбцов в таблице
- int allCol = rs.getMetaData().getColumnCount();
- /*Вывод всей строки таблици из БД в Vector*/
- while (rs.next()) {
- for (int i = 1; i <= allCol; i++) {
- vector.add(rs.getObject(i));
- }
- }
- } catch (SQLException sqlEx) {
- sqlEx.printStackTrace();
- } finally {
- //close connection ,stmt and resultset here
- try { con.close(); } catch(SQLException se) { /*can't do anything */ }
- try { stmt.close(); } catch(SQLException se) { /*can't do anything */ }
- try { rs.close(); } catch(SQLException se) { /*can't do anything */ }
- }
- }
- // метод с соединением и обновлением таблицы
- void addIdInTable(){
- for (int id = 1; id <= getCountToAllRowsInMysql.getAllRowsMysql(con, stmt, rs, url, user, password); id++)
- conToMysql(id);
- }
- // получение ячеек таблицы с конструктора ValueInTable()
- void getArrayListVal(ArrayList valueInTables){
- int getAllRows = getCountToAllRowsInMysql.getAllRowsMysql(con,stmt,rs,url,user,password);
- // получаем значения с Vector-а и выводим их в JTAble
- for (int val0 = 0, val1 = 1, val2 = 2, val3 = 3, val4 = 4, val5 = 5; val5 < 6 * getAllRows; val0 +=6, val1 +=6, val2 +=6, val3 +=6, val4 +=6, val5 +=6 ) {
- valueInTables.add( new ValueInTable(vector.get(val0), vector.get(val1), vector.get(val2),
- vector.get(val3), vector.get(val4), vector.get(val5) ));
- }
- }
- //Функция main, запускающаяся при старте приложения
- public static void main(String[] args) {
- //Создаем фрейм в потоке обработки событий
- SwingUtilities.invokeLater(new Runnable() {
- @Override
- public void run() {
- new JTableWindow();
- }
- });
- }
- }
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.ActionEvent;
- /**
- * Created by Admin on 25.11.2016.
- */
- public class Message {
- public void showMsDialogBtnRefresh(ActionEvent event, JButton btnRefresh) {
- if (event.getSource() == btnRefresh) {
- JOptionPane.showMessageDialog(btnRefresh, "Таблица обновлена",
- "Message Information", JOptionPane.INFORMATION_MESSAGE);
- }
- }
- public void showMsDialogBtnUpdate(ActionEvent event, JButton btnUpdate, int id) {
- if (event.getSource() == btnUpdate){
- JOptionPane.showMessageDialog(btnUpdate, "Поле ID "+ id +" обновлено",
- "Message Information" , JOptionPane.INFORMATION_MESSAGE);
- }
- }
- public void showMsDialogBtnAdd(ActionEvent event, JButton btnAdd) {
- if (event.getSource() == btnAdd){
- JOptionPane.showMessageDialog(btnAdd, "Строка добавлена",
- "Message Information", JOptionPane.INFORMATION_MESSAGE);
- }
- }
- public void showMsDialogBtnRemove(ActionEvent event, JButton btnRemove, int id) {
- if (event.getSource() == btnRemove){
- JOptionPane.showMessageDialog(btnRemove, "Поле ID "+ id +" удалено",
- "Message Information", JOptionPane.INFORMATION_MESSAGE);
- }
- }
- }
- import javax.swing.table.AbstractTableModel;
- import java.util.ArrayList;
- /**
- * Created by Admin on 18.11.2016.
- */
- public class MyTableModel extends AbstractTableModel{
- ArrayList<ValueInTable> valueInTable;
- MyTableModel(ArrayList<ValueInTable> valueInTable){
- super();
- this.valueInTable = valueInTable;
- }
- @Override
- public int getRowCount() {
- return valueInTable.size();
- }
- // к-тво столбцов
- @Override
- public int getColumnCount() {
- return 6;
- }
- //данные в ячейке
- @Override
- public Object getValueAt(int rowIndex, int columnIndex) {
- if (columnIndex == 0)
- return valueInTable.get(rowIndex).getId();
- else if (columnIndex == 1)
- return valueInTable.get(rowIndex).getCode();
- else if (columnIndex == 2)
- return valueInTable.get(rowIndex).getType();
- else if (columnIndex == 3)
- return valueInTable.get(rowIndex).getQuantity();
- else if (columnIndex == 4)
- return valueInTable.get(rowIndex).getPrice();
- else if (columnIndex == 5)
- return valueInTable.get(rowIndex).getYear();
- else
- return "Other_Column";
- }
- public String getColumnName(int c){
- if (c == 0)
- return "id";
- else if (c == 1)
- return "Code ";
- else if (c == 2)
- return "Type ";
- else if (c == 3)
- return "Quantity ";
- else if (c == 4)
- return "Price ";
- else if (c == 5)
- return "Year ";
- else
- return "------";
- }
- }
- import java.sql.*;
- /**
- * Created by Admin on 25.11.2016.
- */
- public class RefreshAutoIncrementForID {
- Connection con;
- Statement stmt;
- ResultSet rs;
- String url = "", user = "", password = "";
- RefreshAutoIncrementForID(Connection con, Statement stmt, ResultSet rs, String url, String user, String password){
- this.con = con;
- this.stmt = stmt;
- this.rs = rs;
- this.url = url;
- this.user = user;
- this.password = password;
- }
- int maxCountID = 0;
- //узнаем к-тво элементов в столбце ID
- public int takeLengthFromId(){
- String query = "SELECT max(id) from tbl1";
- try {
- // opening database connection to MySQL server
- con = DriverManager.getConnection(url, user, password);
- // getting Statement object to execute query
- stmt = con.createStatement();
- // executing SELECT query
- rs = stmt.executeQuery(query);
- /*Вывод всей строки таблици из БД в Vector*/
- while (rs.next()) {
- maxCountID = rs.getInt(1);
- }
- } catch (SQLException sqlEx) {
- sqlEx.printStackTrace();
- } finally {
- //close connection ,stmt and resultset here
- try { con.close(); } catch(SQLException se) { /*can't do anything */ }
- try { stmt.close(); } catch(SQLException se) { /*can't do anything */ }
- try { rs.close(); } catch(SQLException se) { /*can't do anything */ }
- }
- return maxCountID;
- }
- // задаем AUTO_INCREMENT-у индекс ID с которого нужно начать добавлять id
- public void setIdAutoIncrement(){
- String query = "alter table tbl1 auto_increment=" + ( (int)(takeLengthFromId() + 1));
- try {
- // opening database connection to MySQL server
- con = DriverManager.getConnection(url, user, password);
- // getting Statement object to execute query
- stmt = con.createStatement();
- // executing SELECT query
- stmt.executeUpdate(query);
- } catch (SQLException sqlEx) {
- sqlEx.printStackTrace();
- } finally {
- //close connection ,stmt and resultset here
- try { con.close(); } catch(SQLException se) { /*can't do anything */ }
- try { stmt.close(); } catch(SQLException se) { /*can't do anything */ }
- try { rs.close(); } catch(SQLException se) { /*can't do anything */ }
- }
- }
- }
- import javax.swing.*;
- import java.sql.*;
- /**
- * Created by Admin on 24.11.2016.
- */
- public class RemoveRowInMysql {
- void removeRowById(Connection con, Statement stmt, ResultSet rs, String url, String user,
- String password, int id){
- // поля для удаления строки в Mysql по Id
- String queryR = "DELETE FROM tbl1 WHERE ID=" + "'" + id + "'";
- try {
- // opening database connection to MySQL server
- con = DriverManager.getConnection(url, user, password);
- // getting Statement object to execute query
- stmt = con.createStatement();
- // executing SELECT query
- stmt.executeUpdate(queryR);
- } catch (SQLException sqlEx) {
- sqlEx.printStackTrace();
- } finally {
- //close connection ,stmt and resultset here
- try { con.close(); } catch(SQLException se) { /*can't do anything */ }
- try { stmt.close(); } catch(SQLException se) { /*can't do anything */ }
- try { rs.close(); } catch(SQLException se) { /*can't do anything */ }
- }
- }
- }
- import javax.swing.*;
- import java.awt.*;
- /**
- * Created by Admin on 24.11.2016.
- */
- public class SizeButtons {
- public void sizeBtn(JButton btnUpdate, JButton btnAdd, JButton btnRemove, JButton btnRefresh){
- //разммер кнопок
- btnUpdate.setPreferredSize(new Dimension(100, 20));
- btnAdd.setPreferredSize(new Dimension(100, 20));
- btnRemove.setPreferredSize(new Dimension(100, 20));
- btnRefresh.setPreferredSize(new Dimension(100, 20));
- }
- }
- import javax.swing.*;
- import java.sql.*;
- /**
- * Created by Admin on 21.11.2016.
- */
- public class UpdateStringInTable {
- public void updateValues(String url, String user, String password, JTextField field1, JTextField field2,
- JTextField field3,JTextField field4,JTextField field5,
- Connection con, Statement stmt, ResultSet rs, int fieldId ){
- // поля для обновления значенией в Mysql
- String query1 = "update tbl1 set CODE=" + "'"+ field1.getText() +"'" + "where id="+"'"+ fieldId +"'";
- String query2 = "update tbl1 set TYPE=" + "'"+ field2.getText() +"'" + "where id="+"'"+ fieldId +"'";
- String query3 = "update tbl1 set QUANTITY=" + "'"+ field3.getText() +"'" + "where id="+"'"+ fieldId +"'";
- String query4 = "update tbl1 set PRICE=" + "'"+ field4.getText() +"'" + "where id="+"'"+ fieldId +"'";
- String query5 = "update tbl1 set YEAR=" + "'"+ field5.getText() +"'" + "where id="+"'"+ fieldId +"'";
- try {
- // opening database connection to MySQL server
- con = DriverManager.getConnection(url, user, password);
- // getting Statement object to execute query
- stmt = con.createStatement();
- // executing SELECT query
- stmt.executeUpdate(query1);
- stmt.executeUpdate(query2);
- stmt.executeUpdate(query3);
- stmt.executeUpdate(query4);
- stmt.executeUpdate(query5);
- } catch (SQLException sqlEx) {
- sqlEx.printStackTrace();
- } finally {
- //close connection ,stmt and resultset here
- try { con.close(); } catch(SQLException se) { /*can't do anything */ }
- try { stmt.close(); } catch(SQLException se) { /*can't do anything */ }
- try { rs.close(); } catch(SQLException se) { /*can't do anything */ }
- }
- }
- }
- import java.util.ArrayList;
- /**
- * Created by Admin on 18.11.2016.
- */
- public class ValueInTable {
- Object id;
- Object code;
- Object type;
- Object quantity;
- Object price;
- Object year;
- public ValueInTable(Object id, Object code, Object type, Object quantity, Object price, Object year){
- this.id = id;
- this.code = code;
- this.type = type;
- this.quantity = quantity;
- this.price = price;
- this.year = year;
- }
- public ValueInTable(Object code, Object type, Object quantity, Object price, Object year){
- this.code = code;
- this.type = type;
- this.quantity = quantity;
- this.price = price;
- this.year = year;
- }
- public Object getId() { return id; }
- public Object getCode(){
- return code;
- }
- public Object getType(){
- return type;
- }
- public Object getQuantity(){
- return quantity;
- }
- public Object getPrice(){
- return price;
- }
- public Object getYear(){
- return year;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement