Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package DB;
- import Main.Main;
- import Model.*;
- import java.sql.*;
- import java.time.LocalDateTime;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import static Main.SingleRequest.Controller.Format;
- /**
- * Created by eee on 14.05.2017.
- */
- public class Database {
- private static final String IP = "Localhost";
- private static final String PORT = "5432";
- private static final String DB = "Delivery_Food";//mary92 //Delivery_Food
- private static final String USER = "postgres";
- private static final String PASSWORD = "123"; //qwerty321 //123
- private static final String Category_TableName = "Category";
- private static final String CategoryID_ColumnName = "category_id";
- private static final String CategoryName_ColumnName = "category_name";
- private static final String Client_TableName = "Clients";
- private static final String ClientID_ColumnName = "client_id";
- private static final String ClientName_ColumnName = "client_name";
- private static final String ClientAddress_ColumnName = "address";
- private static final String ClientPhone_ColumnName = "clientt_phone";
- private static final String ClientRequestsCount_ColumnName = "requestcount";
- private static final String Courier_TableName = "Couriers";
- private static final String CourierID_ColumnName = "courier_id";
- private static final String CourierName_ColumnName = "courier_name";
- private static final String CourierIsWorking_ColumnName = "courier_status";
- private static final String CourierPhone_ColumnName = "courier_phone";
- private static final String Product_TableName = "Product";
- private static final String ProductID_ColumnName = "product_id";
- private static final String ProductCategory_ColumnName = "category_id";
- private static final String ProductName_ColumnName = "product_name";
- private static final String ProductConsist_ColumnName = "consist";
- private static final String ProductPrice_ColumnName = "price";
- private static final String ProductMeasure_ColumnName = "measure";
- private static final String Request_TableName = "Requests";
- private static final String RequestID_ColumnName = "request_id";
- private static final String RequestDate_ColumnName = "datec";
- private static final String RequestClientID_ColumnName = "client_id";
- private static final String RequestCourierID_ColumnName = "courier_id";
- private static final String RequestDeliveryDate_ColumnName = "delivery_date";
- private static final String RequestPrice_ColumnName = "summ";
- private static final String RequestStatus_ColumnName = "status";
- private static final String Order_TableName = "Orders";
- private static final String OrderID_ColumnName = "order_id";
- private static final String OrderRequestID_ColumnName = "request_id";
- private static final String OrderProductID_ColumnName = "product_id";
- private static final String OrderCount_ColumnName = "quantity";
- static Map<Integer, Order> OrderMap = new HashMap<>();
- static Map<Integer, Request> RequestMap = new HashMap<>();
- static Connection connection;
- public static void Connect() throws SQLException {
- connection = DriverManager
- .getConnection("jdbc:postgresql://" + IP + ":" + PORT + "/" + DB,
- USER, PASSWORD);
- connection.setAutoCommit(false);
- }
- public static List<Category> GetCategories() throws SQLException {
- Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery( "SELECT * FROM " + Category_TableName + ";" );
- List<Category> l = new ArrayList<>();
- while (rs.next()){
- String name = rs.getString(CategoryName_ColumnName);
- int id = rs.getInt(CategoryID_ColumnName);
- Category cat = new Category(id);
- cat.setName(name);
- l.add(cat);
- }
- rs.close();
- stmt.close();
- return l;
- }
- public static void UpdateCategories(List<Category> categories) throws SQLException {
- Statement stmt = connection.createStatement();
- for(Category car : categories){
- stmt.executeUpdate("UPDATE " + Category_TableName + " SET " + CategoryName_ColumnName + " = '" + car.getName() + "' where " + CategoryID_ColumnName + " = " + car.getID());
- }
- connection.commit();
- stmt.close();
- }
- public static List<Category> AddCategories(List<Category> categories) throws SQLException {
- Statement stmt = connection.createStatement();
- for(Category car : categories){
- stmt.executeUpdate("INSERT INTO " + Category_TableName + " (" + CategoryName_ColumnName + ") VALUES ('" + car.getName() + "');", Statement.RETURN_GENERATED_KEYS);
- }
- ResultSet rs = stmt.getGeneratedKeys();
- int i = 0;
- if (rs != null && rs.next()) {
- categories.get(i).setID(rs.getInt(1));
- }
- connection.commit();
- stmt.close();
- return categories;
- }
- public static void RemoveCategories(List<Category> categories) throws SQLException {
- Statement stmt = connection.createStatement();
- for(Category car : categories){
- stmt.executeUpdate("DELETE FROM " + Category_TableName + " where " + CategoryID_ColumnName + " = " + car.getID());
- }
- connection.commit();
- stmt.close();
- }
- public static List<Client> GetClients() throws SQLException {
- Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery( "SELECT * FROM " + Client_TableName + ";" );
- List<Client> l = new ArrayList<>();
- while (rs.next()){
- String name = rs.getString(ClientName_ColumnName);
- String address = rs.getString(ClientAddress_ColumnName);
- String phone = rs.getString(ClientPhone_ColumnName);
- int id = rs.getInt(ClientID_ColumnName);
- Client cat = new Client();
- cat.setID(id);
- cat.setName(name);
- cat.setAddress(address);
- cat.setPhone(phone);
- l.add(cat);
- }
- rs.close();
- stmt.close();
- return l;
- }
- public static void UpdateClients(List<Client> categories) throws SQLException {
- Statement stmt = connection.createStatement();
- for(Client car : categories){
- stmt.executeUpdate("UPDATE " + Client_TableName + " SET " +
- ClientRequestsCount_ColumnName + " = '" + car.getRequestsCount() + "', " +
- ClientName_ColumnName + " = '" + car.getName() + "', "+
- ClientAddress_ColumnName + "= '" + car.getAddress() + "', " +
- ClientPhone_ColumnName + "= '" + car.getPhone() + "' where " + ClientID_ColumnName + " = " + car.getID());
- }
- connection.commit();
- stmt.close();
- }
- public static List<Client> AddClients(List<Client> categories) throws SQLException {
- Statement stmt = connection.createStatement();
- for(Client car : categories){
- stmt.executeUpdate("INSERT INTO " + Client_TableName + " ("+ ClientRequestsCount_ColumnName + ", " + ClientName_ColumnName + ", " + ClientPhone_ColumnName + ", " + ClientAddress_ColumnName + ") VALUES ( " +
- "'" + car.getRequestsCount() + "', " +
- "'" + car.getName() + "', " +
- "'" + car.getPhone() + "', " +
- "'" + car.getAddress() + "'" + " );", Statement.RETURN_GENERATED_KEYS);
- }
- ResultSet rs = stmt.getGeneratedKeys();
- int i = 0;
- if (rs != null && rs.next()) {
- categories.get(i).setID(rs.getInt(1));
- }
- connection.commit();
- stmt.close();
- return categories;
- }
- public static void RemoveClients(List<Client> categories) throws SQLException {
- Statement stmt = connection.createStatement();
- for(Client car : categories){
- stmt.executeUpdate("DELETE FROM " + Client_TableName + " where " + ClientID_ColumnName + " = " + car.getID());
- }
- connection.commit();
- stmt.close();
- }
- public static List<Courier> GetCouriers() throws SQLException {
- Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery( "SELECT * FROM " + Courier_TableName + ";" );
- List<Courier> l = new ArrayList<>();
- while (rs.next()){
- String name = rs.getString(CourierName_ColumnName);
- Boolean isWorking = rs.getBoolean(CourierIsWorking_ColumnName);
- String phone = rs.getString(CourierPhone_ColumnName);
- int id = rs.getInt(CourierID_ColumnName);
- Courier cat = new Courier();
- cat.setID(id);
- cat.setName(name);
- cat.isWorking = isWorking;
- cat.setPhone(phone);
- l.add(cat);
- }
- rs.close();
- stmt.close();
- return l;
- }
- public static void UpdateCouriers(List<Courier> categories) throws SQLException {
- Statement stmt = connection.createStatement();
- for(Courier car : categories){
- stmt.executeUpdate("UPDATE " + Courier_TableName + " SET " +
- CourierName_ColumnName + " = '" + car.getName() + "', "+
- CourierIsWorking_ColumnName + "= '" + car.isWorking + "', " +
- CourierPhone_ColumnName + "= '" + car.getPhone() + "' where " + CourierID_ColumnName + " = " + car.getID());
- }
- connection.commit();
- stmt.close();
- }
- public static List<Courier> AddCouriers(List<Courier> categories) throws SQLException {
- Statement stmt = connection.createStatement();
- for(Courier car : categories){
- stmt.executeUpdate("INSERT INTO " + Courier_TableName + " (" + CourierName_ColumnName + ", " + CourierPhone_ColumnName + ", " + CourierIsWorking_ColumnName + ") VALUES ( " +
- "'" + car.getName() + "', " +
- "'" + car.getPhone() + "', " +
- "'" + car.isWorking + "'" + " );", Statement.RETURN_GENERATED_KEYS);
- }
- ResultSet rs = stmt.getGeneratedKeys();
- int i = 0;
- if (rs != null && rs.next()) {
- categories.get(i).setID(rs.getInt(1));
- }
- connection.commit();
- stmt.close();
- return categories;
- }
- public static void RemoveCouriers(List<Courier> categories) throws SQLException {
- Statement stmt = connection.createStatement();
- for(Courier car : categories){
- stmt.executeUpdate("DELETE FROM " + Courier_TableName + " where " + CourierID_ColumnName + " = " + car.getID());
- }
- connection.commit();
- stmt.close();
- }
- public static List<Product> GetProducts() throws SQLException {
- Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery( "SELECT * FROM " + Product_TableName + ";" );
- List<Category> categories = GetCategories();
- List<Product> l = new ArrayList<>();
- while (rs.next()){
- String name = rs.getString(ProductName_ColumnName);
- int categoryid = rs.getInt(ProductCategory_ColumnName);
- String consist = rs.getString(ProductConsist_ColumnName);
- String measure = rs.getString(ProductMeasure_ColumnName);
- double price = rs.getDouble(ProductPrice_ColumnName);
- int id = rs.getInt(ProductID_ColumnName);
- Product cat = new Product();
- cat.setID(id);
- cat.setName(name);
- cat.setConsist(consist);
- try{
- cat.setMeasure(Measure.valueOf(measure));
- }catch (Exception e) { }
- cat.setPrice(price);
- for (Category category : categories){
- if( category.getID() == categoryid ) {
- cat.setCategory(category);
- break;
- }
- }
- l.add(cat);
- }
- rs.close();
- stmt.close();
- return l;
- }
- public static void UpdateProducts(List<Product> categories) throws SQLException {
- Statement stmt = connection.createStatement();
- for(Product car : categories){
- String additional = "";
- if(car.getCategory() != null){
- additional += ProductCategory_ColumnName + "= '" + car.getCategory().getID() + "', ";
- }
- if(car.getMeasure() != null){
- additional += ProductMeasure_ColumnName + "= '" + car.getMeasure().name() + "', ";
- }
- stmt.executeUpdate("UPDATE " + Product_TableName + " SET " +
- ProductName_ColumnName + " = '" + car.getName() + "', "+
- ProductConsist_ColumnName + "= '" + car.getConsist() + "', " +
- additional +
- ProductPrice_ColumnName + "= '" + car.getPrice() + "'" +
- " where " + ProductID_ColumnName + " = " + car.getID());
- }
- connection.commit();
- stmt.close();
- }
- public static List<Product> AddProducts(List<Product> categories) throws SQLException {
- Statement stmt = connection.createStatement();
- for(Product car : categories){
- String additionalName = "";
- String additional = "";
- if(car.getCategory() != null){
- additionalName += ProductCategory_ColumnName + ", ";
- additional += "'" + car.getCategory().getID() + "', ";
- }
- if(car.getMeasure() != null){
- additionalName += ProductMeasure_ColumnName + ", ";
- additional += "'" + car.getMeasure().name() + "', ";
- }
- stmt.executeUpdate("INSERT INTO " + Product_TableName + " (" + ProductName_ColumnName + ", " + ProductConsist_ColumnName + ", " + additionalName + ProductPrice_ColumnName + ") VALUES ( " +
- "'" + car.getName() + "', " +
- "'" + car.getConsist() + "', " +
- additional +
- "'" + car.getPrice() + "'" + " );", Statement.RETURN_GENERATED_KEYS);
- }
- ResultSet rs = stmt.getGeneratedKeys();
- int i = 0;
- if (rs != null && rs.next()) {
- categories.get(i).setID(rs.getInt(1));
- }
- connection.commit();
- stmt.close();
- return categories;
- }
- public static void RemoveProducts(List<Product> categories) throws SQLException {
- Statement stmt = connection.createStatement();
- for(Product car : categories){
- stmt.executeUpdate("DELETE FROM " + Product_TableName + " where " + ProductID_ColumnName + " = " + car.getID());
- }
- connection.commit();
- stmt.close();
- }
- public static List<Request> GetRequests() throws SQLException { return GetRequests(null, null);}
- private static List<Request> GetRequests(List<Client> clientsO, List<Courier> couriersO) throws SQLException {
- Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery( "SELECT * FROM " + Request_TableName + ";" );
- List<Client> clients;
- if(clientsO == null) clients = GetClients();
- else clients = clientsO;
- List<Courier> couriers;
- if(couriersO == null) couriers = GetCouriers();
- else couriers = couriersO;
- List<Request> l = new ArrayList<>();
- while (rs.next()){
- int id = rs.getInt(RequestID_ColumnName);
- Request cat;
- if(!RequestMap.containsKey(id)){
- RequestMap.put(id, new Request());
- }
- cat = RequestMap.get(id);
- LocalDateTime date = LocalDateTime.parse(rs.getString(RequestDate_ColumnName), Format);
- LocalDateTime deliveryDate = LocalDateTime.parse(rs.getString(RequestDeliveryDate_ColumnName), Format);
- int clientID = rs.getInt(RequestClientID_ColumnName);
- int courierID = rs.getInt(RequestCourierID_ColumnName);
- double price = rs.getDouble(RequestPrice_ColumnName);
- String status = rs.getString(RequestStatus_ColumnName);
- cat.setID(id);
- cat.setDate(date);
- cat.setDeliveryDate(deliveryDate);
- try{
- cat.setStatus(RequestStatus.valueOf(status));
- }catch (Exception e) { }
- cat.setPrice(price);
- for (Client client : clients){
- if( client.getID() == clientID ) {
- cat.setClient(client);
- break;
- }
- }
- for (Courier courier : couriers){
- if( courier.getID() == courierID ) {
- cat.setCourier(courier);
- break;
- }
- }
- l.add(cat);
- }
- rs.close();
- stmt.close();
- return l;
- }
- public static void UpdateRequests(List<Request> categories) throws SQLException {
- Statement stmt = connection.createStatement();
- for(Request car : categories){
- String additional = "";
- if(car.getClient() != null){
- additional += RequestClientID_ColumnName + "= '" + car.getClient().getID() + "', ";
- }
- if(car.getCourier() != null){
- additional += RequestCourierID_ColumnName + "= '" + car.getCourier().getID() + "', ";
- }
- if(car.getStatus() != null){
- additional += RequestStatus_ColumnName + "= '" + car.getStatus().name() + "', ";
- }
- stmt.executeUpdate("UPDATE " + Request_TableName + " SET " +
- RequestDeliveryDate_ColumnName + " = '" + car.getDeliveryDate().format(Format) + "', "+
- RequestDate_ColumnName + "= '" + car.getDate().format(Format) + "', " +
- additional +
- RequestPrice_ColumnName + "= '" + car.getPrice() + "' " +
- " where " + RequestID_ColumnName + " = " + car.getID());
- }
- connection.commit();
- stmt.close();
- }
- public static List<Request> AddRequests(List<Request> categories) throws SQLException {
- Statement stmt = connection.createStatement();
- for(Request car : categories){
- RequestMap.put(car.getID(), car);
- String additionalName = "";
- String additional = "";
- if(car.getClient() != null){
- additionalName += RequestClientID_ColumnName + ", ";
- additional += "'" + car.getClient().getID() + "', ";
- }
- if(car.getCourier() != null){
- additionalName += RequestCourierID_ColumnName + ", ";
- additional += "'" + car.getCourier().getID() + "', ";
- }
- if(car.getStatus() != null){
- additionalName += RequestStatus_ColumnName + ", ";
- additional += "'" + car.getStatus().name() + "', ";
- }
- stmt.executeUpdate("INSERT INTO " + Request_TableName + " (" + RequestDate_ColumnName + ", " + RequestDeliveryDate_ColumnName + ", " + additionalName + RequestPrice_ColumnName + ") VALUES ( " +
- "'" + car.getDate().format(Format) + "', " +
- "'" + car.getDeliveryDate().format(Format) + "', " +
- additional +
- "'" + car.getPrice() + "'" + " );", Statement.RETURN_GENERATED_KEYS);
- }
- ResultSet rs = stmt.getGeneratedKeys();
- int i = 0;
- if (rs != null && rs.next()) {
- categories.get(i).setID(rs.getInt(1));
- }
- connection.commit();
- stmt.close();
- return categories;
- }
- public static void RemoveRequests(List<Request> categories) throws SQLException {
- Statement stmt = connection.createStatement();
- for(Request car : categories){
- stmt.executeUpdate("DELETE FROM " + Request_TableName + " where " + RequestID_ColumnName + " = " + car.getID());
- }
- connection.commit();
- stmt.close();
- }
- public static List<Order> GetOrders() throws SQLException {
- Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery( "SELECT * FROM " + Order_TableName + ";" );
- List<Request> requests = GetRequests();
- List<Product> products = GetProducts();
- List<Order> l = new ArrayList<>();
- while (rs.next()){
- int id = rs.getInt(OrderID_ColumnName);
- Order cat;
- if(!OrderMap.containsKey(id)){
- OrderMap.put(id, new Order());
- }
- cat = OrderMap.get(id);
- int requestID = rs.getInt(OrderRequestID_ColumnName);
- int productID = rs.getInt(OrderProductID_ColumnName);
- int count = rs.getInt(OrderCount_ColumnName);
- cat.setID(id);
- cat.setCount(count);
- for (Request request : requests){
- if( request.getID() == requestID ) {
- cat.setRequest(request);
- break;
- }
- }
- for (Product product : products){
- if( product.getID() == productID ) {
- cat.setProduct(product);
- break;
- }
- }
- l.add(cat);
- }
- rs.close();
- stmt.close();
- return l;
- }
- public static void UpdateOrders(List<Order> categories) throws SQLException {
- Statement stmt = connection.createStatement();
- for(Order car : categories){
- String additional = "";
- if(car.getRequest() != null){
- additional += OrderRequestID_ColumnName + "= '" + car.getRequest().getID() + "', ";
- }
- if(car.getProduct() != null){
- additional += OrderProductID_ColumnName + "= '" + car.getProduct().getID() + "', ";
- }
- stmt.executeUpdate("UPDATE " + Order_TableName + " SET " +
- additional +
- OrderCount_ColumnName + "= '" + car.getCount() + "' where " + OrderID_ColumnName + " = " + car.getID());
- }
- connection.commit();
- stmt.close();
- }
- public static List<Order> AddOrders(List<Order> categories) throws SQLException {
- Statement stmt = connection.createStatement();
- for(Order car : categories){
- OrderMap.put(car.getID(), car);
- String additionalName = "";
- String additional = "";
- if(car.getRequest() != null){
- additionalName += OrderRequestID_ColumnName + ", ";
- additional += "'" + car.getRequest().getID() + "', ";
- }
- if(car.getProduct() != null){
- additionalName += OrderProductID_ColumnName + ", ";
- additional += "'" + car.getProduct().getID() + "', ";
- }
- stmt.executeUpdate("INSERT INTO " + Order_TableName + " (" + additionalName + OrderCount_ColumnName + ") VALUES ( " +
- additional +
- "'" + car.getCount() + "'" + " );", Statement.RETURN_GENERATED_KEYS);
- }
- ResultSet rs = stmt.getGeneratedKeys();
- int i = 0;
- if (rs != null && rs.next()) {
- categories.get(i).setID(rs.getInt(1));
- }
- connection.commit();
- stmt.close();
- return categories;
- }
- public static void RemoveOrders(List<Order> categories) throws SQLException {
- Statement stmt = connection.createStatement();
- for(Order car : categories){
- stmt.executeUpdate("DELETE FROM " + Order_TableName + " where " + OrderID_ColumnName + " = " + car.getID());
- }
- connection.commit();
- stmt.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement