Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / При insert datetime(java) to DB(jdbc) через NetBeans не обновляет time / 15 сообщений из 15, страница 1 из 1
16.10.2018, 16:53
    #39718287
Newbiejava
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При insert datetime(java) to DB(jdbc) через NetBeans не обновляет time
NetBeans+Spring+java+mssql

Вставляем значения из формы, а так же дату и время текущее записываем в БД (jdbc)

Код: java
1.
2.
3.
java.util.Date Date = new java.util.Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date2 = sdf.format(Date);



Однако, время записывается фиксированное, т.е. например:

1. Собрали проект (NetBeans)
2. Заполнили данные формы и отправили эти значения в БД (время пишется автоматом актуальное, формат колонки datetime в БД) допустим в 14:54
3. Последующие заполнения формы с другими естественно значениями (с очисткой кэша,куки) записываются в БД с тем же временем (14:54)
4. Но стоит "очистить и собрать" проект или "выполнить" и начинать делать п.2. так время запишется в БД уже актуальное на момент записи после пере сборки проекта
Код: sql
1.
2.
3.
4.
5.
Сolum_db
2018-10-16 15:50:01.000
2018-10-16 14:54:02.000
2018-10-16 14:54:02.000
2018-10-16 14:54:02.000



Куда копать, подскажите пожалуйста!

p.s. Проект ( NetBeans) локальный, БД удаленная
...
Рейтинг: 0 / 0
16.10.2018, 17:54
    #39718347
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При insert datetime(java) to DB(jdbc) через NetBeans не обновляет time
NewbiejavaКуда копать, подскажите пожалуйста!
- вряд ли NetBeans виноват, где Вы вызываете код вставки данных в базу, в каком то сервлете? покажите, а то непонятно
...
Рейтинг: 0 / 0
17.10.2018, 08:09
    #39718535
Newbiejava
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При insert datetime(java) to DB(jdbc) через NetBeans не обновляет time
Kachalov,

Код: 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.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
public class TestController extends HttpServlet {  

String spr1,spr2,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17;  
String query;  
Connection conn;  
Statement stmt;  
ResultSet res;  
TestControllerDB dbconn;  

//java.sql.Date sqlDate = new java.sql.Date(Date.getTime());
java.util.Date Date = new java.util.Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date2 = sdf.format(Date);

protected void processRequest(HttpServletRequest request, HttpServletResponse response)  
throws ServletException, IOException {  
response.setContentType("text/html;charset=UTF-8");  
PrintWriter out = response.getWriter();  
try {  

dbconn=new TestControllerDB();  

         a1 = request.getParameter("a1");
         a2 = request.getParameter("a2");
         a3 = request.getParameter("a3");
         a4 = request.getParameter("a4");
         a5 = request.getParameter("a5");
         a6 = request.getParameter("a6");
         a7 = request.getParameter("a7");
         a8 = request.getParameter("a8");
         a9 = request.getParameter("a9");
         a10 = request.getParameter("a10");
         a11 = request.getParameter("a11");
         a12 = request.getParameter("a12");
         a13 = request.getParameter("a13");
         a14 = request.getParameter("a14");
         a15 = request.getParameter("a15");
         a16 = request.getParameter("a16");
         a17 = request.getParameter("a17"); 
       
conn=dbconn.setConnection();

stmt=conn.createStatement();  
query= "insert into ipraForm(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,DInsrt) values('"+a1+"','"+a2+"','"+a3+"','"+a4+"','"+a5+"','"+a6+"','"+a7+"','"+a8+"','"+a9+"','"+a10+"','"+a11+"','"+a12+"','"+a13+"','"+a14+"','"+a15+"','"+a16+"','"+a17+"','"+date2+"')";
int i=stmt.executeUpdate(query);
    System.out.println("Данные записаны в БД");
} catch(Exception e){  
    System.out.println("Ошибка записи данных в БД");  
e.printStackTrace();
}finally {  
out.close();
    try { stmt.close(); System.out.println("stmt закрылся успешно");
    } catch (Exception e) { System.out.println("Ошибка закрытия stmt"); e.printStackTrace(); }
    try { conn.close(); System.out.println("conn закрылся успешно");
    } catch (Exception e) { System.out.println("Ошибка закрытия conn"); e.printStackTrace(); }
}  
}  

@Override  
protected void doGet(HttpServletRequest request, HttpServletResponse response)  
throws ServletException, IOException {  
processRequest(request, response);  
}  

@Override  
protected void doPost(HttpServletRequest request, HttpServletResponse response)  
throws ServletException, IOException {  
processRequest(request, response);  
}  

@Override  
public String getServletInfo() {  
return "Short description";  
}  
   
} 
...
Рейтинг: 0 / 0
17.10.2018, 09:19
    #39718559
Newbiejava
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При insert datetime(java) to DB(jdbc) через NetBeans не обновляет time
Kachalov,

попробовал еще вот так, но результат тот же

вместо

Код: java
1.
2.
3.
java.util.Date Date = new java.util.Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date2 = sdf.format(Date);



вставил это

Код: java
1.
2.
3.
4.
long time = System.currentTimeMillis();
java.sql.Timestamp timestamp = new java.sql.Timestamp(time);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date2 = sdf.format(time);
...
Рейтинг: 0 / 0
17.10.2018, 10:11
    #39718588
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При insert datetime(java) to DB(jdbc) через NetBeans не обновляет time
серьезно?

вы инициализировали дату в момент создания сервлета и теперь удивляетесь, почему она не меняется?
экземпляр сервлета будет единственным, на каждый запрос пересоздаваться не будет
...
Рейтинг: 0 / 0
17.10.2018, 10:11
    #39718590
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При insert datetime(java) to DB(jdbc) через NetBeans не обновляет time
просто перенесите
Код: sql
1.
2.
3.
java.util.Date Date = new java.util.Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date2 = sdf.format(Date);



внутрь processRequest
...
Рейтинг: 0 / 0
17.10.2018, 10:42
    #39718607
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При insert datetime(java) to DB(jdbc) через NetBeans не обновляет time
Penkov Vladimirпросто перенесите
внутрь processRequest
- согласен и совет почитать про жизненный цикл сервлета
...
Рейтинг: 0 / 0
17.10.2018, 11:04
    #39718619
Newbiejava
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При insert datetime(java) to DB(jdbc) через NetBeans не обновляет time
Penkov Vladimir,
Все получилось!

Низкий поклон, относительно недавно в этой среде...учусь))

Kachalov,

Спасибо за статейку
...
Рейтинг: 0 / 0
17.10.2018, 20:23
    #39719088
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При insert datetime(java) to DB(jdbc) через NetBeans не обновляет time
Newbiejava,
конечно не по теме но все же...
а почему не воспользоваться со встроенными функциями самого БД?
...
Рейтинг: 0 / 0
18.10.2018, 07:25
    #39719165
Newbiejava
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При insert datetime(java) to DB(jdbc) через NetBeans не обновляет time
Музаффар,

тоже думал поставить триггер в бд на insert в эту таблицу, но "нужно" было реализовать именно на стороне клиента
...
Рейтинг: 0 / 0
18.10.2018, 11:17
    #39719271
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При insert datetime(java) to DB(jdbc) через NetBeans не обновляет time
сходите теперь про sql-injection почитайте
...
Рейтинг: 0 / 0
18.10.2018, 14:04
    #39719387
SQL2008
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При insert datetime(java) to DB(jdbc) через NetBeans не обновляет time
Penkov Vladimirсерьезно?

вы инициализировали дату в момент создания сервлета и теперь удивляетесь, почему она не меняется?

+1
...
Рейтинг: 0 / 0
18.10.2018, 14:05
    #39719388
SQL2008
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При insert datetime(java) to DB(jdbc) через NetBeans не обновляет time
NewbiejavaМузаффар,

тоже думал поставить триггер в бд на insert в эту таблицу, но "нужно" было реализовать именно на стороне клиента
Зачем триггер??? есть такой тип TimeStamp
...
Рейтинг: 0 / 0
18.10.2018, 17:25
    #39719518
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При insert datetime(java) to DB(jdbc) через NetBeans не обновляет time
Newbiejava,

зачем триггер? скорее там тоже есть функции или что то подобное
и что то не понял как понять в стороне клиента ?
...
Рейтинг: 0 / 0
19.10.2018, 11:45
    #39719819
AndronovMV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При insert datetime(java) to DB(jdbc) через NetBeans не обновляет time
Сам периодически публикую вопросы, но тут вынужден с умничать.

Писать полностью SQL-выражение вместе с конкатинированными значениями не есть правильно. А что если надо будет зафигачить BLOB?

Код: java
1.
2.
3.
4.
5.
6.
PreparedStatement stmt = conn.prepareStatement(sql);
            int i=1;
            for(Object p : params) {                
                    stmt.setObject(i+1, Converter.toSqlType(p, conn));
            }
            
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / При insert datetime(java) to DB(jdbc) через NetBeans не обновляет time / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]