Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 75

Ошибка в jdbc

19.08.2018, 01:24. Показов 778. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Работаю с glassfish,когда создаю соединение так :
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package net.ensode.glassfishbook.jdbcupdate;
 
import java.io.IOException;
import java.sql.*;
 
import javax.annotation.Resource;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
import javax.xml.crypto.Data;
 
@WebServlet (urlPatterns = {"/xxx"})
public class JdbcUpdateServlet extends HttpServlet
{
 
 
 
  @Override
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException
  {
 
 
 
    try
    {
      InitialContext initialContext = new InitialContext();
 
      DataSource dataSource = (DataSource) initialContext
              .lookup("bydb");
      Connection connection = dataSource.getConnection();
      Statement statement = connection.createStatement();
        statement.executeUpdate("CREATE TABLE xxxNew2(name VARCHAR(100) )");
        statement.executeUpdate("INSERT INTO xxxNew2 values('WTFF')");
        ResultSet resultSet = statement.executeQuery("SELECT * FROM xxxNew2");
response.getWriter().println(resultSet.getString("name"))
 
 
 
      response.getWriter().println("Database Updated Successfully");
 
    }
    catch (SQLException e)
    {
      e.printStackTrace();
    } catch (NamingException e) {
      e.printStackTrace();
    }
  }
}
Всё работает,добавляется всё в базу, как обычно! И я вижу table "xxxNew2" у себя в базе данных.

Когда я использую аннотацию:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package net.ensode.glassfishbook.jdbcupdate;
 
import java.io.IOException;
import java.sql.*;
 
import javax.annotation.Resource;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
import javax.xml.crypto.Data;
 
@WebServlet (urlPatterns = {"/xxx"})
public class JdbcUpdateServlet extends HttpServlet
{
  @Resource(name = "bydb")
  private DataSource dataSource;
 
 
  @Override
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException
  {
 
 
 
    try
    {
      Connection connection = dataSource.getConnection();
      Statement statement = connection.createStatement();
        statement.executeUpdate("CREATE TABLE xxxNew3An(name VARCHAR(100) )");
        statement.executeUpdate("INSERT INTO xxxNew3An values('WTFF')");
        ResultSet resultSet = statement.executeQuery("SELECT * FROM xxxNew3An");
 response.getWriter().println(resultSet.getString("name"))
 
 
      response.getWriter().println("Database Updated Successfully");
 
    }
    catch (SQLException e)
    {
      e.printStackTrace();
    }
  }
}
Код работает,println выводит данные , но я не вижу таблицы "xxxNew3An" у себя в базе данных!!

Glassfish - 5.0;
os - winsows;
ide -IntellijIDEA;
MySql;
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.08.2018, 01:24
Ответы с готовыми решениями:

Glassfish, ошибка при JDBC Connection Pools
Поставил NetBeans, добавил сервер Glassfish (работал и с сервером в комплекте и отдельно загружал), положил JAR Connector/J (скачал с сайта...

Ошибка в jdbc+oracle: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
Вот такой трабл: на Class.forName('oracle.jdbc.driver.OracleDriver'); отвечает java.lang.ClassNotFoundException:...

Ошибка JDBC
try { String userName="root"; String password=""; String url = "jdbc:mysql://127.0.0.1/student"; ...

14
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
19.08.2018, 08:13
Такое ощущение, будто коммита транзакции нет...
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
19.08.2018, 10:25
Цитата Сообщение от Crazy_devil Посмотреть сообщение
CREATE TABLE
Почему не
SQL
1
CREATE TABLE IF NOT EXISTS
Цитата Сообщение от Crazy_devil Посмотреть сообщение
println выводит данные
Во втором случае после нескольких запросов выводит все введенные ранее данные?
0
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 75
19.08.2018, 13:09  [ТС]
JIeIIIa, да , все выводит.

Добавлено через 5 минут
JIeIIIa, и после перезагрузки сервера тоже
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
19.08.2018, 13:11
В первом случае lookup
Цитата Сообщение от Crazy_devil Посмотреть сообщение
DataSource dataSource = (DataSource) initialContext.lookup("bydb");
Почему тогда тут name, а не lookup?
Цитата Сообщение от Crazy_devil Посмотреть сообщение
@Resource(name = "bydb")
private DataSource dataSource;
У меня ощущения что данные пишутся не в ту БД, что Вы ожидаете.
0
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 75
19.08.2018, 14:17  [ТС]
JIeIIIa, только вот в какую ) У меня она всего одна

Добавлено через 5 минут
JIeIIIa, Как это проследить ?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
19.08.2018, 15:13
Цитата Сообщение от Crazy_devil Посмотреть сообщение
response.getWriter().println(resultSet.g etString("name"))
точки с запятой нет
Цитата Сообщение от Crazy_devil Посмотреть сообщение
Connection connection = dataSource.getConnection();
* * * Statement statement = connection.createStatement();
про try with resources читай
0
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 75
19.08.2018, 16:03  [ТС]
xoraxax, в коде есть , я просто ошибся пока эту тему писал )я все переписал с книги , там не было try
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
19.08.2018, 19:22
Цитата Сообщение от Crazy_devil Посмотреть сообщение
я все переписал с книги , там не было try
меня это совсем не интересует. Однако тебе я бы посоветовал разбираться с тем, что делаешь, получше, и не игнорировать советы, особенно полезные.
0
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 75
19.08.2018, 20:26  [ТС]
xoraxax, Хорошо, спасибо, буду разбираться!
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
19.08.2018, 21:19
Crazy_devil, я бы дебагом посмотрел что "приходит" в dataSource в одном и во втором случае.
0
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 75
20.08.2018, 00:28  [ТС]
Добавлено через 30 минут
Я понял в чем была ошибка, Glassfish создает свою БД - jdbc/__default и записывает туда все данные, игнорируя Resource, игнорировал он потому что надо было написать не @Resource(name = "bydb") , а @Resource(lookup = "bydb")

Добавлено через 1 час 54 минуты
Новая проблема. Не работает:
Java
1
2
 @Resource
 private UserTransaction userTransaction;
не сохраняет ничего в базу данных, но если я создам транзакцию так:
Java
1
    EntityTransaction transaction = entityManager.getTransaction();
То все работает!!
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
20.08.2018, 10:42
Цитата Сообщение от JIeIIIa Посмотреть сообщение
Почему тогда тут name, а не lookup?
Цитата Сообщение от Crazy_devil Посмотреть сообщение
потому что надо было написать не @Resource(name = "bydb") , а @Resource(lookup = "bydb")


Цитата Сообщение от Crazy_devil Посмотреть сообщение
Новая проблема. Не работает
What is difference between @Resource UserTransaction and EntityManager.getTransaction()
0
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 75
20.08.2018, 19:38  [ТС]
JIeIIIa, к чему эта статья? )
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
20.08.2018, 19:42
Crazy_devil, почитать в чем разница и когда может не работать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.08.2018, 19:42
Помогаю со студенческими работами здесь

Ошибка с драйвером JDBC ODBC
Работал в jDeveloper создал соединение с бд. Все работает нормально. После установил Eclipse, обновил и скомпилировал этот класс в...

Server time zone, jdbc, Ошибка
Доброго времени! При попытке подключится к локальному MySQL 5.7 из джавы получается вот такая вот ошибка SQLException: The server time...

oracle.jdbc - ошибка лезет и всё тут
Пытаюсь подсоедениться к oracle через jdbc-драйвер и получаю такую ошибку Network Adapter could not establish the connection Вот...

Java + Access bez JDBC-ODBC a srazu 4erez JDBC
Pishu na java.Isplzuju Access.Svazivaju 4erez ODBC-JDBC.A moznlo li na pjramuju svzat 4erez jdbc bez mosta ODBC-JDBC.

Ошибка JDBC: Got minus one from a read call
Добрый день. Я пытаюсь подключиться к базе oracle(Oracle 11g) через JDBC. Логин базы - system, пароль - admin. final private static...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru