[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
То что может пригодиться
АлексейДата: Понедельник, 26.03.2018, 23:18 | Сообщение # 1
Продвигающийся
Группа: Администраторы
Сообщений: 324
Награды: 4
Репутация: 1
Статус: Оффлайн
Некоторые классы или функции на языке программирования Java, которую могут вполне пригодиться во время разработки.
 
АлексейДата: Понедельник, 26.03.2018, 23:39 | Сообщение # 2
Продвигающийся
Группа: Администраторы
Сообщений: 324
Награды: 4
Репутация: 1
Статус: Оффлайн
Работа с базой данных MySQL
Для начала перед работой понадобиться драйвер. Скачать его можно тут - https://dev.mysql.com/downloads/connector/j
После установки и присоединения к проекту драйвера приступаем к написанию кода.
Код
Class.forName("com.mysql.jdbc.Driver").newInstance(); /*С помощью этой строчки мы подключаем драйвер к нашему приложением. Это достаточно сделать один раз в любом месте, но до работы с базой данных.*/
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306?autoReconnect=true&useSSL=false", "login", "password");/*Инициализация подключения к базе данных. В первом параметры устанавливаются параметры подключения обязательно перед адресом базы данных указать 'jdbc:mysql://', а после уже идет адрес базы данных с перечислением параметров подключения, затем логин и пароль.*/

Далее есть два варианта формирования запроса к базе данных: самому написать строчку запроса, немного свалить эту задачу на библиотеку. Я напишу второй вариант, который так же называют предварительным формированием запроса.
Код
PreparedStatement statement = connection.prepareStatement("SELECT * FROM site WHERE (host=? AND coutry_id=?)"); /*Инициализируем запрос. В параметре прописываем текст запроса, вместо значений переменных ставим вопросительные знаки.*/
statement.setString(1, "yandex.ru"); /*Устанавливаем первый параметр строкового типа. Маленькое замечание индексы параметров начинаются с единицы, а не с нуля, как это обычно с массивами и другими списковыми элементами.*/
statement.setInt(2, 54); /*Устанавливаем второй параметр числового типа.*/
resultQ = statement.executeQuery(); /*Отправляем запрос в базу данных и ждем ответа. Если что-то пошло не так сработает ошибка SQLException, так что правильно тут сделать catch (SQLException e)*/
while(resultQ.next()) { /*В этом цикле мы последовательно движемся по строчкам (результатам запроса) пока не дойдем до конца, если мы сейчас на последней строчке результата и вызываем эту функцию, то вернется false, что означает, что в данный момент resultQ находится на пустой строчке, таким образом описанные ниже два метода сработают с ошибкой SQLException*/
   int idsite = resultSet.getInt("id"); /*Возвращает числовое значение по столбцу ID*/
   int idauthor = resultSet.getString("owner_name"); /*Возвращает строковое значение по столбцу owner_name*/
}
resultQ.close(); /*Закрываем текущий запрос*/
statement.close(); /*Закрываем подключение к базе*/

 
АлексейДата: Среда, 13.06.2018, 10:59 | Сообщение # 3
Продвигающийся
Группа: Администраторы
Сообщений: 324
Награды: 4
Репутация: 1
Статус: Оффлайн
Исправление ошибки, которая возникла при использовании JdbcTemplate.query():


Цитата
The type org.springframework.jdbc.support.JdbcAccessor cannot be resolved. It is indirectly referenced from required .class files

С данной ошибкой столкнулся при создании своего первого приложения со spring, где была работа с базой данных. В проекте использовался maven и соответственно spring jdbc для pom.xml взял сайта. На сайте в тот момент предлагалась такая схема:

Код
<dependencies>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-jdbc</artifactId>
        <version>1.0.0.M3</version>
    </dependency>
</dependencies><repositories>
    <repository>
        <id>spring-libs-milestone</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/libs-milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

Оказалось, что в новых версиях jdbc убрали из spring и возможно на что-то заменили даже не знаю, но при выполнении любого запроса требовалась JdbcAccessor, который не было в той версии, которая предлагалась на сайте. Я несколько часов поискал нужную версию в Интернете, но результатов не было. Проблема была использованием старой версии spring jdbc

Код
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>4.3.2.RELEASE</version>
</dependency>

Еще может быть ошибка, скорее всего даже до той которую я описал выше, но текст ошибки я не помню, но вам точно так же скажут, что не хватает зависимостей. Возможно речь идет о spring dao, а именно о каком-то Exception, который нужен jdbcTemplate.query(). Решается подключением:

Код
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-dao</artifactId>
    <version>2.0.8</version>
</dependency>

Кстати странно, что все примеры в интернете, которые я видел пока изучал работу с базами данных через spring jdbc, ни у кого из авторов не было тех проблем, что были у меня тут. Хотя, они использовали более старые версии spring и возможно там все это еще было включено в одну библиотеку jdbc. Сейчас скорее всего их разделили, но зачем не понятно.
 
АлексейДата: Воскресенье, 25.11.2018, 22:39 | Сообщение # 4
Продвигающийся
Группа: Администраторы
Сообщений: 324
Награды: 4
Репутация: 1
Статус: Оффлайн
Собрать проект maven для терминального приложения с внедренными зависимостями (автономный jar)...

в pom.xml
Код
<build>
<plugins>
  <plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
      <archive>
        <manifest>
          <mainClass><название класса с методом main></mainClass>
        </manifest>
      </archive>
      <descriptorRefs>
        <descriptorRef>jar-with-dependencies</descriptorRef>
      </descriptorRefs>
    </configuration>
  </plugin>
</plugins>


в терминале для компиляции вводим следующие
Код
mvn clean compile assembly:single
 
АлексейДата: Воскресенье, 25.11.2018, 22:45 | Сообщение # 5
Продвигающийся
Группа: Администраторы
Сообщений: 324
Награды: 4
Репутация: 1
Статус: Оффлайн
Отправка get или post запросов при помощи java.
Код
URL url = new URL(link + item);
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setRequestMethod("GET");
                connection.setUseCaches(false);
                int code = connection.getResponseCode();

                if (code == HttpURLConnection.HTTP_OK) { }
 
  • Страница 1 из 1
  • 1
Поиск: