• Апреля 08, 2020, 04:55:52 am
• Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Новости: Вебинар по выбору IT профессии: http://bit.ly/2S4kcC6

Автор Тема: Java Pro 09.12.19  (Прочитано 1570 раз)

Трикопа Александр

  • Пользователи
  • *
  • Сообщений: 36
    • Просмотр профиля
    • E-mail
Re: Java Pro 09.12.19
« Ответ #15 : Декабря 27, 2019, 03:17:31 pm »
MySQL задача 1 создать базу квартир и возможности просмотра и добавления

https://github.com/trykopa/mysql1_appart

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 13447
    • Просмотр профиля
    • E-mail
Re: Java Pro 09.12.19
« Ответ #16 : Декабря 28, 2019, 12:58:53 am »

Трикопа Александр

Решение верное

Andriy Banyas

  • Пользователи
  • *
  • Сообщений: 32
    • Просмотр профиля
    • E-mail
Re: Java Pro 09.12.19
« Ответ #17 : Декабря 29, 2019, 08:18:22 pm »
1 завдання по JDBC
База даних квартири
https://github.com/BanyasAndriy/FlatDB.git

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 13447
    • Просмотр профиля
    • E-mail
Re: Java Pro 09.12.19
« Ответ #18 : Декабря 30, 2019, 12:36:27 am »
Andriy Banyas
Длинна метода в Java не должно превышать 30 строк. Обратите внимание на свои реализации методов
public void findElementByParametr(Scanner scan){Он гораздо длинее.
Ну и подобные ему.
В остальном решение верное.

Andriy Banyas

  • Пользователи
  • *
  • Сообщений: 32
    • Просмотр профиля
    • E-mail
Re: Java Pro 09.12.19
« Ответ #19 : Декабря 30, 2019, 12:29:19 pm »
Допрацював
https://github.com/BanyasAndriy/FlatDB.git
Скоротив довжину метода , створенням окремого метода для відбору параметрів на запрос .
Добавив можливість додавання записей у бд.

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 13447
    • Просмотр профиля
    • E-mail
Re: Java Pro 09.12.19
« Ответ #20 : Января 02, 2020, 11:29:43 am »

Andriy Banyas

Решение верное

Трикопа Александр

  • Пользователи
  • *
  • Сообщений: 36
    • Просмотр профиля
    • E-mail
Re: Java Pro 09.12.19
« Ответ #21 : Января 03, 2020, 03:06:43 pm »
Задача 2 - проект База данных заказов
методы добавления клиентов, товаров, заказов
методы вывода списка клиентов, товаров, заказов
+ схема таблиц  + SQL создания таблиц

https://github.com/trykopa/mysql2_OrdersDB

4 таблица усложнила всю задачу, скорее всего неправильно создал структуру базы и не смог в итоге получить нормальный вывод заказов из базы

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 13447
    • Просмотр профиля
    • E-mail
Re: Java Pro 09.12.19
« Ответ #22 : Января 04, 2020, 06:36:44 pm »

Трикопа Александр

Решение верное. Кстати пора присматриваться к паттернам проектирования. Так что вас ожидает знакомство с DAO

Andriy Banyas

  • Пользователи
  • *
  • Сообщений: 32
    • Просмотр профиля
    • E-mail
Re: Java Pro 09.12.19
« Ответ #23 : Января 07, 2020, 02:27:24 pm »
 Создать проект «База данных заказов». Создать таблицы «Товары» , «Клиенты» и «Заказы». Написать код для добавления новых клиентов, товаров и оформления заказов.

Намагався використовувати паттерн DAO.
Не впевнений чи правильно реалізував.

https://github.com/BanyasAndriy/OrdersBD.git

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 13447
    • Просмотр профиля
    • E-mail
Re: Java Pro 09.12.19
« Ответ #24 : Января 08, 2020, 12:26:10 am »
Andriy Banyas

О отличная реализация. Ну другое же дело

Трикопа Александр

  • Пользователи
  • *
  • Сообщений: 36
    • Просмотр профиля
    • E-mail
Re: Java Pro 09.12.19
« Ответ #25 : Января 12, 2020, 07:31:08 pm »
Задача с занятия добавить метод UPDATE для AbstractDAO
на самом занятии затык был с синтаксисом запроса и кавычками  :(

https://github.com/trykopa/AbstractDAO

Client c1 = list.get(0);
            c1.setAge(44);
            dao.update(c1);

public void update(T t) {
        try{
            Field[] fields = t.getClass().getDeclaredFields();
            StringBuilder str = new StringBuilder();
            Field id = null;
            for (Field f : fields) {
                if (f.isAnnotationPresent(Id.class)) {
                    id = f;
                    id.setAccessible(true);
                    break;
                }
            }

            for (Field f: fields){
                if (!f.isAnnotationPresent(Id.class)) {
                    f.setAccessible(true);
                    str.append(f.getName()).append(" = ").append("\'").append(f.get(t)).append("\',");
                }
            }

            str.deleteCharAt(str.length() - 1); // last ','
            String sql = "UPDATE " + table + " SET " + str + " WHERE " + id.getName() +
                    " = " + id.get(t);

            try (Statement st = conn.createStatement()) {
                st.execute(sql);
            }
        } catch (IllegalAccessException | SQLException e) {
            e.printStackTrace();
        }
    }
« Последнее редактирование: Января 12, 2020, 07:41:11 pm от Трикопа Александр »

Andriy Banyas

  • Пользователи
  • *
  • Сообщений: 32
    • Просмотр профиля
    • E-mail
Re: Java Pro 09.12.19
« Ответ #26 : Января 13, 2020, 02:26:18 pm »
Метод UPDATE для AbstractDao
public void update(T t){

        try {
            Field[] fields = t.getClass().getDeclaredFields();
            String name[] = new String [fields.length];
           String value[] = new String [fields.length];
           int i = 0;
            for (Field f : fields) {
                f.setAccessible(true);

                name[i]=f.getName();
                value[i]=f.get(t).toString();
            i++;
            }
           
            String sql =null;

           for (int j = 1 ;j<name.length;j++){
                sql = "Update " + table + " set "+name[j]+" = "  +value[j];

           }
            try (Statement st = conn.createStatement()) {
                st.execute(sql);
            }
        } catch (Exception ex) {
            throw new RuntimeException(ex);
        }
    }




Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 13447
    • Просмотр профиля
    • E-mail
Re: Java Pro 09.12.19
« Ответ #27 : Января 13, 2020, 03:46:42 pm »
Трикопа Александр
Решение верное

Andriy Banyas
Решение верное

Andriy Banyas

  • Пользователи
  • *
  • Сообщений: 32
    • Просмотр профиля
    • E-mail
Re: Java Pro 09.12.19
« Ответ #28 : Января 20, 2020, 12:25:06 pm »
1) https://api.privatbank.ua/#p24/exchangeArchive - разбираемся с JSON API
2) пишем приложение, которое возьмет с АПИ курс доллара по последний год и сохранит все значения в базу через JPA
3) каждый раз при запуске приложение должно обновлять курс за те дни, пока оно не работало
4) пишем код, который^

а) выводит курс на определенную дату
б) средний курс за период



https://github.com/BanyasAndriy/DollarExchangeRate.git

Aleks Sidorenko

  • Пользователи
  • *
  • Сообщений: 5
    • Просмотр профиля
    • E-mail
Re: Java Pro 09.12.19
« Ответ #29 : Января 20, 2020, 01:35:55 pm »
Спроектировать базу «Квартиры». Каждая запись в базе содержит данные о квартире (район, адрес, площадь, кол. комнат, цена).
Сделать возможность выборки квартир из списка по параметрам.

https://github.com/AlSidorenko/Apartments

Создать проект «База данных заказов». Создать таблицы «Товары» , «Клиенты» и «Заказы».
Написать код для добавления новых клиентов, товаров и оформления заказов.

https://github.com/AlSidorenko/Orders