Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Java Базы данных (JDBC, JPA, Hibernate)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2021, 11:50   #1
TeNnei1
Новичок
Джуниор
 
Регистрация: 25.02.2021
Сообщений: 1
По умолчанию Работа с информацией в БД (PostGreSQL)

У меня создана база данных с полями name_of_organization и money_of_organization теперь мне нужно что бы введенная в текстовое поле названия организаций находились в базе данных(такое я реализовал) и при введении в другое текстовое поле суммы у одной организации эта сумма вычиталась а к другой увеличивалась. Пожалуйста подскажите как это реализовать

Код класса Controller
Код:
package sample;

import java.io.IOException;
import java.net.URL;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.stage.Stage;

public class Controller {
    @FXML
    private ResourceBundle resources;
    @FXML
    private URL location;
    @FXML
    private Button who;
    @FXML
    private Button HowMuch;
    @FXML
    private TextField organization1;
    @FXML
    private TextField organization2;
    @FXML
    private TextField Money;


    @FXML
    void initialize() {
        who.setOnAction(actionEvent -> {
            FXMLLoader loader = new FXMLLoader();
            loader.setLocation(getClass().getResource("/sample/who.fxml"));
            try {
                loader.load();
            } catch (IOException e) {
                e.printStackTrace();
            }
            Parent Second = loader.getRoot();
            Stage stage = new Stage();
            stage.setScene(new Scene(Second));
            stage.showAndWait();
        });


        HowMuch.setOnAction(actionEvent -> {

            String prove = organization1.getText();
            String prove1 = organization2.getText();
            String inmoney = Money.getText();

            if (!prove.equals("")) {
                check(prove);
            }
            else
                System.out.println("ERROR");

            if (!prove.equals(""))
                check2(prove1);
            else
                System.out.println("ERROR");

            if (inmoney.equals(""));
            {
                FXMLLoader loader = new FXMLLoader();
                loader.setLocation(getClass().getResource("/sample/Error1.fxml"));
                try {
                    loader.load();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                Parent first = loader.getRoot();
                Stage stage = new Stage();
                stage.setScene(new Scene(first));
                stage.showAndWait();
            }
});
    }

    public void check2(String loginProve){

        DatabaseHandler read = new DatabaseHandler();
        User pr = new User();
        pr.setOrganization(loginProve);
        ResultSet first = read.getInformation(pr);

        int fg =  0;
        while (true) {
            try {
                if (!first.next()) break;
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
            fg++;
        }

        if(fg >=1)
            System.out.println("Организация 2 найдена");
        else
            System.out.println("Такой организации нет!");
    }

    public void check(String loginProve){
        DatabaseHandler read = new DatabaseHandler();
        User pr = new User();
        pr.setOrganization(loginProve);
        ResultSet first = read.getInformation(pr);

        int fg =  0;
        while (true) {
            try {
                if (!first.next()) break;
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
            fg++;
        }
        if(fg >=1)
        System.out.println("Организация 1 найдена");
        else
            System.out.println("Такой организации нет!");
    }
}
Класс DatabaseHandler
Код:
package sample;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.ResultSet;

public class DatabaseHandler {
    static final String DB_URL = "jdbc:postgresql://127.0.0.1:5432/postgres";
    static final String USER = "postgres";
    static final String PASS = "987346521";

    public Connection getDbConnection() {
        try {
            Class.forName("org.postgresql.Driver");
        } catch (ClassNotFoundException e) {
            System.out.println("Ошибка нет драйвера");
            e.printStackTrace();
        }

        System.out.println("Драйвер найден");
        Connection connection = null;
        try {
            connection = DriverManager
                    .getConnection(DB_URL, USER, PASS);
        } catch (SQLException e) {
            System.out.println("Ошибка");
            e.printStackTrace();
        }
        if (connection != null) {
            System.out.println("Бзаданных подключена");
        } else {
            System.out.println("Ошибка");
        }
        return   connection;
    }

    public void writerUser(User org){
            String insert = "INSERT INTO " + Constant.TABLE_OF_ORGANIZATION + "(" + Constant.NAME_OF_ORGANIZATIONS
                    + "," + Constant.MONEY_OF_ORGANIZATION + ")" + "VALUES(?,?)";

        try {
            PreparedStatement prst = getDbConnection().prepareStatement(insert);
            prst.setString(1, org.getOrganization());
            prst.setInt(2, org.getMoney());

            prst.executeUpdate();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }

   public ResultSet getInformation (User auth){
  ResultSet resultSet = null;
  String select = "SELECT * FROM " + Constant.TABLE_OF_ORGANIZATION + " WHERE "
     + Constant.NAME_OF_ORGANIZATIONS + "=?";
       try {
           PreparedStatement prst0 = getDbConnection().prepareStatement(select);
           prst0.setString(1, auth.getOrganization());

          resultSet = prst0.executeQuery();
       } catch (SQLException throwables) {
           throwables.printStackTrace();
       }
       return resultSet;
   }
Класс User
Код:
package sample;

public class User {
    private String organization;
    private int money;
    private int Money;

    public User(){}

    public User (int money){
        this.Money =  money;
    }

    public User (String organization, int money){
        this.organization = organization;
        this.money =  money;
    }

    public String getOrganization() {
        return organization;
    }

    public int getMoney() {
        return money;
    }

    public void setOrganization(String organization) {
        this.organization = organization;
    }

    public int setMoney(int money) {
        return Money;
    }

}
Изображения
Тип файла: jpg 1.jpg (85.6 Кб, 0 просмотров)
TeNnei1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с текстовой информацией. Кутяшка Помощь студентам 8 26.05.2014 20:49
Работа с информацией в ячейках Excel На языке VBA макрос Tvoi-pro Помощь студентам 4 27.03.2012 08:19
Работа с текстовой информацией. Wh15per Общие вопросы C/C++ 5 21.12.2011 22:48
GW BASIC .Работа с графической информацией winamp4ik Помощь студентам 0 20.11.2011 23:00
работа с информацией в текстовом файле(ввод-вывод на языке С#) ~Mi@mi~ Помощь студентам 0 29.11.2010 20:23