Задать вопрос
  • Как заполнить таблицу SQLite из масива?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Для удобства работы с БД можете подключить ORM (ormlite, room и др.).

    А по поводу инсертов в БД, гляньте на эти ссылки:
    https://stackoverflow.com/questions/6080975/how-to...
    https://stackoverflow.com/questions/21848557/how-t...
    гугл
    гугл 2
    Ответ написан
  • Как учить Java Core?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Все важные изменения в Java начались с Java 8. Другие версии, лишь дополняют или улучшают текущий фукнкционал. Так что читайте книгу дальше)
    Ответ написан
    9 комментариев
  • Как консольное приложение скопмилировать в один файл?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Погуглите - fat jar
    Если приложение написано на Maven, то используйте плагин maven assembly plugin -
    tutorials.jenkov.com/maven/maven-build-fat-jar.html
    Если приложение использует gradle, то
    https://www.baeldung.com/gradle-fat-jar
    Если я правильно понял ваш вопрос, то вышеуказанные ссылки помогут вам
    Ответ написан
    Комментировать
  • Изучения Java в 30 лет это реально?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Добрый день!

    Изучение Java в 30 лет это реально?

    Да, конечно реально. Вообще удивитесь сколько в мире "свичеров". Я начал изучать Java в 2018 году (27 лет).

    Начала изучать самостоятельно java дома, по книгам и ютубу

    Туториалы, ютуб, udemy и т.д. это конечно хорошо, но всегда в приоритете книги и практика.
    Читайте не только про Java, но постарайтесь также получить базовые академические знания.

    Но что то застряла на месте,не понимаю куда двигаться

    Тут уже вам решать куда именно двигаться. Если интересна разработка энтерпрайз, то дальше стоит изучить Java EE, servlets, jsp т.д. Также изучить фреймворки Spring, Play и др. Конечно же нужно изучить основы веб (html, css, js). Изучить tcp / ip. Понять как именно устроен интернет. Изучить базы данных (sql, no sql). Обратить внимание на ACID. Изучить паттерны проектирования, структуры данных и т.д. Разобраться с ORM (EclipseLink, Hibernate и др.)

    Если вам интересна мобильная разработка, то конечно же стоит изучить Android, дополнительно изучить kotlin. Изучить Firebase, sqlite, ormlite, room.

    Найти хорошие курсы в Москве не удалось,репетитора тоже,подскажите где найти человека,который поможет изучить java,может есть какие то закрытые съезды программистов,или что то для новичков,где можно познакомиться и зарядиться новыми силами.

    Смотрите, необязательно курсы искать именно в Москве. Можно посещать вебинары.
    Вот, пример бесплатного тренинга от EPAM - https://www.training.ru/#!/Training/2681?lang=ru
    Вот, например, курсы от IT-Academy - https://www.it-academy.by/
    Вот, курсы и услуги менторства от Сергея Немчинского - https://foxminded.com.ua/

    О себе: 6 лет работы в строительной компании,после три года декрета;и вот в декрете,я решила,что пора мечте сбыться и стать программистом ,ранее ничего не изучала,а сейчас прям в захлёб очень хочу изучить данный язык,и переквалифицироваться. Что скажете на это? Может это просто мечты, и не стоит даже пытаться? Или все таки может не стоит бояться,что более юные будут у работодателей на первом месте?


    Раз как вы выразились изучаете программирование "в захлеб", то это уже не мечта, а цель, которую нужно со временем достичь. Стоит ли бросать, если вам это нравится? Конечно же нет! Нужно ли развиваться дальше? Однозначно, да! Что касается работодателей, то возможно, что какой-то компании принципиален юный возраст, но в целом нет. Им важно, чтобы вы желали развиваться и умели работать.
    К слову, посмотрите интервью Java разработчика, который работал в EPAM и который начал изучать java в 30 лет -
    https://www.youtube.com/watch?v=iM445BnBhpw

    Ну и практикуйтесь. Изучите какую-нибудь библиотеку или фреймворк и по завершению изучения создайте пару услуг во фриланс биржи (kwork.ru например) и выполните заказы. Это тоже поможет в определенной мере стать лучше.
    Ответ написан
    3 комментария
  • Почему не отображается ProgressBar в JavaFX?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Подозреваю, что вы все делаете в одном потоке.
    Попробуйте отделить UI от основного потока.
    Вот, чтиво по этой теме:
    math.hws.edu/javanotes/c12/s2.html

    Вот, тут как раз у разработчика тоже была проблема с progressBar.
    https://stackoverflow.com/questions/13784333/platf...
    Ответ написан
  • Как сделать калькулятор с несколькими действиями на 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
    Ответ написан
    Комментировать