• Как сделать калькулятор с несколькими действиями на Java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!

    я имел в виду то, как подстроить код, который я делал на занятиях под то, чтобы можно было делать несколько действий и соблюдались все правила типо того, что умножение/деление идут первыми, а потом сложение/вычитание идёт.

    Тут важный момент заключается в следующем, суммирование или вычитание может быть обрамлено круглыми скобками и соответственно, вам нужно будет выполнить их раньше, чем умножение или деление.
    Как по мне, надо принять строку с выражением полность, а далее распарсить ее. Найти в ней скобки и выполнить их содержимое, а затем другие операции
    Ответ написан
    Комментировать
  • Как реализовать парсинг Википедии на Java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Думаю, что есть различные варианты реализации вашей задумки:
    1) написать парсер на jsoup.
    2) использовать АПИ - https://www.mediawiki.org/wiki/API:Main_page/ru
    3) скачать готовую базу данных, а дальше уже работать с ней -
    https://dumps.wikimedia.org/backup-index.html
    https://en.wikipedia.org/wiki/Wikipedia:Database_d...
    Ответ написан
    1 комментарий
  • Из-за чего ошибка java.lang.ClassNotFoundException: com.mysql.jdbc.Driver?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Подозреваю, что драйвер у вас не подключен. Используете ли вы maven или gradle? Если да, то добавьте драйвер согласно документации.
    Если вы не используете build tools, то убедитесь доступен ли драйвер в classpath.
    Также проверьте установлен ли mysql у вас локально? А то вы пытаетесь подключиться к БД на локалке
    jdbc:mysql://localhost:3306/mycoursework
    Также попробуйте заменить вот, эту строку:
    Class.forName("com.mysql.jdbc.Driver");
    на
    Class.forName(" com.mysql.cj.jdbc.Driver");
    Ответ написан
    Комментировать
  • Почему две идентичные строки не сходятся?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Прочитайте про разницу при сравнении через оператор ==, а также методом equals()
    Строки не сходятся, так как вы сравниваете ссылки на объект, а они явно указывают на разные объекты. Для сравнения содержимого используйте equals()
    Вот ваш код:
    public static void check(String a, int b){
          if(!a.equals((login)){
             System.out.println("!ERROR login!");
             System.out.println("");
          }
          if(!b.equals(passworld)){
             System.out.println("!ERROR passwolrd!");
             System.out.println("");
          }
          if(a.equals(login)){
             if(b.equals(passworld)){
                System.out.println("s");
             }
          }
          
       }

    Далее рекомендую прочитать про Java naming convention.
    Названия классов с заглавной буквы должны быть.
    public class Data {
       public static String name, login;
       public static int age, passworld;
    }


    Далее не совсем понятен смысл вот, этого: public class Reg extends data
    Зачем вы расширяете класс pojo Data неким сервисным классом Reg.
    Скорее всего вам нужно создать экземпляр класса Data. А в этом случае поля класса не нужно делать статичными.
    Ответ написан
    Комментировать
  • Почему-то BindingResult не ловит ошибку, как исправить?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    В первую очередь небольшая рекомендация - вместо того, чтобы из view напрямую получить объект User и сохранить его, создайте UserDto класс и далее получив данные из вью замаппите его в User().
    По поводу возможных ошибок валидации загляните по этой ссылке - https://stackoverflow.com/questions/42423553/sprin...
    Ответ написан
    Комментировать
  • Что учить для работы в сфере IoT?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Оптимально будет посмотреть вакансии по месту жительства и выбрать тот язык / фреймворк, с которым вы легче всего устроитесь. С другой стороны язык должен вам нравится, ибо вы будете с ним работать. А не попробовав вы не поймете, что вам нравится. С иной стороны язык всего лишь инструмент. Нужно сегодня написать на Java, пишите на нем. Понадобится написать на пайтоне, переходите на него. Но лучше все-таки изучить один, но хорошо, чем несколько, но так себе.

    P.S. Поищите на сайте аналогичные вопросы. Практически каждую неделю задают подобные вопросы.
    Ответ написан
    Комментировать
  • Spring + JPA как заставить работать запросы?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!

    - Уточните какие именно библиотеки у вас подключены в pom.xml? В частности интересует библиотека spring data jpa
    - Уточните есть ли у вас в классе City геттеры, сеттеры и конструктор без аргументов? Если нет, то добавьте их.
    Если у вас подключен lombok, то можно прописать@Data @NoArgsConstructor
    - Далее подключитесь к вашей БД и просмотрите записи в БД. Возможно, что они не сохраняются в UTF-8, потому и не находится город по названию. Вместо данных в таблице увидите крякозябры. Если эта проблема наблюдается, то пропишите
    jdbc:mysql://localhost:3306/ticket_system?useUnicode=yes&characterEncoding=UTF-8

    - Также обратите внимание на то создается ли у вас таблица cities.
    Еще есть подозрение, что вы используете слово name, которое зарезервировано в mysql и из-за этого могут наблюдаться проблемы. Попробуйте экранировать его
    @Column(name = "`name`", length = 50,nullable = false)

    https://dev.mysql.com/doc/refman/8.0/en/keywords.html
    https://stackoverflow.com/questions/2224503/how-to...
    Ответ написан
  • Где найти бесплатные курсы по JAVA 2020?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Я поделюсь своим опытом того, как изучал Java.
    Поначалу я просмотрел кучу всяких курсов на Youtube и даже на Udemy. Поняв, что этих знаний недостаточно я начал изучать книги. Рекомендую начать изучение с книг, это действительно будет круче. Далее я открывал документации различных библиотек и изучал их. Взял несколько заказов на фрилансе и набрался опыта. Также записался на платные вебинары и в принципе скажу, что они неплохие. Есть возможность поговорить с опытным разработчиком, который обратит ваше внимание на то, на что вы могли не обращать внимания до этого.
    Далее определиться с направлением и изучить соответствующий стек технологий. Ну и работать и работать. Неплохой опыт приходит с заказами из фриланса, когда приходится реализовывать все "хотелки" заказчика.

    В общем, начинайте с изучения книг, а дальше уже разберетесь. Не бойтесь ошибаться и обязательно подтяните английский, если у вас с ним проблемы. Большинство насущных задач уже решены на SO, но нужен инглиш, чтобы уметь грамотно гуглить
    Ответ написан
  • Как передать строку из формы в массив строк?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    А зачем вам передавать строку из формы в xml файл?
    Также обратите внимание, что если у вас поля называются
    name
    firstName
    lastName
    то скорее всего из него можно создать некий объект. Например, (псевдокод)
    User {
    String name
    String firstName;
    String lastName;
    }

    А далее уже использовать ArrayList. Например, List<User> users = new ArrayList();
    Использовать String array не рекомендую, так как длина массива должна быть определена при его инициализации. А у вас в этом файле технически может быть разное кол-во объектов.
    Если вы наоборот хотите сохранить информацию о пользователе получив его данные из формы, то используйте БД (sqlite) или же храните их в shared preferences.
    Ответ написан
  • Подкиньте тему проекта на Java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Вроде и синтаксис понимаю, могу прочитать код, но понимаю, что сам такое не написал бы. Я так понимаю, что это из-за отсутствия практики.

    Мне это состояние хорошо знакомо...
    Обычно, это может происходить не только из-за отсутствия практики, но и отсутствия теории тоже. Если вы изучали ЯП по видео туториалам, то формируется некое подобие "мозачиного" знания.
    Рекомендую первую очередь - прочитать книги по языку java (Шилдт - Полное руководство по Java),
    по алгоритмам (Роберт Лафоре - Структуры данных и алгоритмы),
    по рефакторингу (Clean Code),
    по паттернам проектирования (GoF, GRASP)
    по основам SQL (изучить основы sql (mysql, postgres), no sql). Обратить внимание на ACID.
    Далее расширьте свой кругозор изучением различных полезных библиотек на Java.
    Например, apache io, apache poi, apache commons lang3, jsoup. Поработайте чуть с Selenium.
    С учетом того, что вам интересен веб, то также стоит изучить oсновы html 5, css 3, javascript (vanilla, jquery).
    Я бы порекомендовал бы еще попробовать написать пару парсеров с использованием jsoup, это поможет больше сориентироваться в вебе.
    Так вот, подскажите, пожалуйста, какой бы можно сделать небольшой проект с задействованием ООП, многопоточки (только не сильно в нее углубляться), элементами Web (html, css, js) ну и прочим, что должен знать джун.

    Нуу... пожалуй, вам стоит развиваться дальше. Посмотрите в сторону jakarta EE. Изучите Spring (Spring Boot) и т.д.
    Ответ написан
    1 комментарий
  • Как создать справочник пользователей?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Ну во-первых, уточните должна ли база данных быть локальной или можно хранить данные пользователей на удаленке.
    Если БД должна быть локальной, то посмотрите в сторону sqlite, возможно даже использование embedded db (h2, postgres и др.). Далее определитесь с технологией ORM. Например, hibernate, eclipselink, ormlite, room и др.
    Теперь, касаемо интерфейса: можно использовать JavaFX.
    Я бы, если пришлось писать на Java выбрал бы Spring + JavaFX. В Spring добавил бы все нужные зависимости типа hibernate, spring data и т.д.
    Если БД будет удаленной, то на том же Spring нужно поднять restful сервис, который будет создавать учетки для пользователей, реализовывать crud записей и т.д. Таким образом получится клиент - серверное приложение
    Ответ написан
    Комментировать
  • Hibernate @ManyToOne как не создавать запись, если она уже создана?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    1) В репозиторий для City (предположительно CityRepository или CityDao) добавьте метод, который вернет вам объект City по его названию.
    Optional<City> findCityByCityName(String cityName);

    примерно так
    2) Далее
    Как сделать, чтобы hibernate не пытался добавить запись в таблицу городов, если там уже есть нужный город?

    Теперь, в сервисном уровне вы вытягиваете город по его названию и если такого нет, то добавляете, а если такой город есть, то можете в методе orElseThrow() выбросить RuntimeException исключение о том, что такой город есть. Можно создать свое исключение типа: CityExistsException

    Если не хотите использовать Optional, то можно создать метод в репозитории boolean existsByCityName(String cityName); А дальше также если true, то выбрасываете исключение
    Ответ написан
    1 комментарий
  • Как сделать чтоб бот не выключался через 90 секунд?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Ответ на ваш вопрос - https://stackoverflow.com/questions/51241023/herok...

    public class Bot extends TelegramLongPollingBot {
        private static final String TOKEN = System.getenv("TOKEN");
        private static final String BOT_USERNAME = System.getenv("BOT_USERNAME");
        private static final String PORT = System.getenv("PORT");
    
        public void onUpdateReceived(Update update) {
    
        }
    
        public String getBotUsername() {
            return BOT_USERNAME;
        }
    
        public String getBotToken() {
            return TOKEN;
        }
    
        public static void main(String[] args) {
            ApiContextInitializer.init();
            TelegramBotsApi api = new TelegramBotsApi();
            try {
                api.registerBot(new Bot());
            } catch (TelegramApiRequestException e) {
                e.printStackTrace();
            }
    
            try (ServerSocket serverSocket = new ServerSocket(Integer.valueOf(PORT))) {
                while (true) {
                    Socket clientSocket = serverSocket.accept();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    Ответ написан
    1 комментарий
  • Как работает интерпретация в Java JVM?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Вот, тут достаточно хороший ответ:
    link
    Ответ написан
    Комментировать
  • Как обновлять доп поля acf wordpress при загрузке excel таблицы?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Есть ли реализованная возможность периодически загружать обновленные данные полей acf через excel таблицу (csv), сравнивая их по дополнительному полю id ?


    Готовых решений я не встречал. Разве что в плагине WP All Import есть возможность добавления рнр скрипта. Правда, не знаю хватит ли его возможностей.

    А так, предлагаю написать свое кастомное решение. Артем Золин вам уже ответил, как это можно реализовать
    Ответ написан
    Комментировать
  • Как получить данные со стороннего ресурса?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Так как вы работаете со Spring, то посмотрите в сторону RestTemplate
    https://www.baeldung.com/rest-template
    Ответ написан
    Комментировать
  • Как прочитать информацию из файла в несколько массивов, используя Java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Построчно читаете файл, далее каждую строку по мере чтения делаете split() по символу ";" и добавляете в массив или коллекцию.
    Ответ написан
  • Клавиатуры Telegram Bot?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Но к сожалению ошибка на ошибке.

    Факт того, что не работает, но при этом есть ошибка (исключение) и есть "куда копать" является хорошим признаком. Плохо, когда нет никаких ошибок и при этом ничего не работает.

    Что касается выбрасываемого исключения, то чтобы помочь вам было бы неплохо, чтобы вы предоставили лог ошибок (stacktrace). А так, сложно сказать, с чем у вас именно наблюдается проблема
    Ответ написан
    Комментировать
  • Как парсить XML на Java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    правильно ли я считаю что нужно xml в массив занести и массив уже в бд

    А как по другому вы себе это представляете? Сперва сериализуете xml в pojo, а затем каждый pojo добавляете в некую коллекцию или массив. Ну и сохраняете в БД.
    Если брать по минималке, то прочитайте про DOM Parser на Java для парсинга. Можете также дополнительно изучить SAX Parser. Или же можете подключить библиотеку.

    Ну и для работы с БД понадобится библиотека. Как минимум jdbc. А так можно посмотреть в сторону ORM (hibernate, eclipselink, ormlite и др.)

    Нечто похожее я писал, но без сохранения в БД.
    Вот, ссылка на гит:
    https://github.com/azerphoenix/cbar-currency
    Ответ написан