Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PreparedStatement.Парам. типа Date, подскажите в чем я не прав? 
:(
    Опции темы
Sleepy_PIP
Дата 24.11.2004, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 512
Регистрация: 30.6.2004
Где: Moscow

Репутация: 4
Всего: 12



Код

//=============================================================================
public long DoMakeStartSSRec(PIPFTPSite fs) throws Exception
{
 DBConnItem dbc = db.ConnectDB();
 dbc.DBConn.setAutoCommit(true);

 long nidss = db.GetGenVal("SSCAN_G", dbc.DBConn);
 PreparedStatement up = dbc.DBConn.prepareStatement(
       "insert into site_scan (id,SCAN_STARTTIME,IDSITE,STAT) values (?,?,?,?)");
 up.setLong(1, nidss);
 Date dd=new Date();
 up.setDate(2, dd);
 up.setLong(3,fs.idsite);
 up.setLong(4,1);
 up.execute();  
 up.close();
 dbc.DBConn.close();
 return(nidss);
}


ругается что: reference to Date is ambiguous; both class java.sql.Date and java.util.Date in java.util math.
оба пакета включены как
Код

import java.util.*;
import java.sql.*;

и совершенно нет желания включать все классы пакетов по отдельности.
Я понимаю что совпадают имена классов, а как-ж теперь быть?
Спасибо!



--------------------
--
Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем
свободным ..."
PM MAIL ICQ   Вверх
LSD
Дата 24.11.2004, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Код

import java.util.*;
import java.sql.*;
import java.util.Date;

Тогда Date будет трактоваться как java.util.Date.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Domestic Cat
Дата 24.11.2004, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Пиши

Цитата

Date date = new java.util.Date();





--------------------

PM   Вверх
Sleepy_PIP
Дата 24.11.2004, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 512
Регистрация: 30.6.2004
Где: Moscow

Репутация: 4
Всего: 12



Цитата(Domestic @ 24.11.2004, 20:48)
Пиши

Цитата

Date date = new java.util.Date();

а вот уже стало интересно - в java.util.Date и в java.sql.Date - одинаковая реализация?
Если нет - то в чем разница? если да - то как-ж так получилось?
smile
Спасибо!


--------------------
--
Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем
свободным ..."
PM MAIL ICQ   Вверх
Domestic Cat
Дата 24.11.2004, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



java.sql.Date, согласно документации - простo "обертка" для количествa миллисекунд, прошедших с 1970 года. java.util.Date - более наворочен, содержиt больше методов, т.е. то что для SQL нe нужно.
Вечером сравню их код и более подробно скажу smile


--------------------

PM   Вверх
LSD
Дата 24.11.2004, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



java.sql.Date extends java.util.Date
Добавлено @ 23:53
Цитата(Domestic @ 24.11.2004, 20:48)
Date date = new java.util.Date();

Тоже будет ошибка, т.к. компилятор не знает какого типа переменная.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Domestic Cat
Дата 24.11.2004, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Цитата
java.sql.Date extends java.util.Date


smile smile
вразумил дурака

а отличие одно - чтобы датa подходила для сиквела класс перегружает метод setTime который:

Цитата
Sets an existing Date object using the given milliseconds time value. If the given milliseconds value contains time information, the driver will set the time components to the  time in the default time zone (the time zone of the Java virtual  machine running the application) that corresponds to zero GMT

Добавлено @ 00:02
Цитата
Тоже будет ошибка, т.к. компилятор не знает какого типа переменн


Код

java.util.Date date = new java.util.Date();


Это сообщение отредактировал(а) Domestic Cat - 25.11.2004, 00:10


--------------------

PM   Вверх
Domestic Cat
Дата 25.11.2004, 04:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Посмотрел я сорцы - на самом деле отличие только в методах toString() и valueOf() которые возвращают значение в несколько ином формате. А setTime просто вызывает super().


--------------------

PM   Вверх
Sleepy_PIP
Дата 25.11.2004, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 512
Регистрация: 30.6.2004
Где: Moscow

Репутация: 4
Всего: 12



Цитата(Domestic @ 25.11.2004, 04:22)
Посмотрел я сорцы - на самом деле отличие только в методах toString() и valueOf() которые возвращают значение в несколько ином формате. А setTime просто вызывает super().

пришлось сделать так:
Код

//=============================================================================
public long DoMakeStartSSRec(PIPFTPSite fs) throws Exception
{
 DBConnItem dbc = db.ConnectDB();
 dbc.DBConn.setAutoCommit(true);

 long nidss = db.GetGenVal("SSCAN_G", dbc.DBConn);
 PreparedStatement up = dbc.DBConn.prepareStatement(
       "insert into site_scan (id,SCAN_STARTTIME,IDSITE,STAT) values (?,?,?,?)");
 up.setLong(1, nidss);
 Date df=new Date();
 java.sql.Date dd=new java.sql.Date(df.getTime());
 up.setDate(2, dd);
 up.setLong(3,fs.idsite);
 up.setLong(4,1);
 up.execute();  //GregorianCalendar
 up.close();
 dbc.DBConn.close();
 return(nidss);
}



но такая конструкция
Код

 Date df=new Date();
 java.sql.Date dd=new java.sql.Date(df.getTime());
 up.setDate(2, dd);


совершенно не нравится ... я на правильном пути, или надо действовать как-то по другому?
Спасибо!




--------------------
--
Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем
свободным ..."
PM MAIL ICQ   Вверх
3,14
Дата 25.11.2004, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

Репутация: 6
Всего: 24



Можно сделать ещё так:
Код

 Calendar calendar = Calendar.getInstance();
 java.sql.Date dd  = new java.sqlDate(calendar.getTimeInMillis());

Хотя не знаю лучше ли этот вариант smile

Это сообщение отредактировал(а) 3,14 - 25.11.2004, 11:48


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
Sleepy_PIP
Дата 25.11.2004, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 512
Регистрация: 30.6.2004
Где: Moscow

Репутация: 4
Всего: 12



Цитата(3 @ 25.11.2004, 11:48)
Можно сделать ещё так:
Код

 Calendar calendar = Calendar.getInstance();
 java.sql.Date dd  = new java.sqlDate(calendar.getTimeInMillis());

Хотя не знаю лучше ли этот вариант smile

календарь я могу положить туда и через
 void setDate(int parameter Index, Date x, Calendar cal)  
но не в этом дело. я пытаюсь как можно прощее научиться класть баналюную текущую дату.


--------------------
--
Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем
свободным ..."
PM MAIL ICQ   Вверх
3,14
Дата 25.11.2004, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

Репутация: 6
Всего: 24



Дык ежели просто текущую, то легче модифицровать SQL запрос:
Код

 "insert into site_scan (id,SCAN_STARTTIME,IDSITE,STAT) values (?,now(),?,?)"



--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
Sleepy_PIP
Дата 25.11.2004, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 512
Регистрация: 30.6.2004
Где: Moscow

Репутация: 4
Всего: 12



Цитата(3 @ 25.11.2004, 12:31)
Дык ежели просто текущую, то легче модифицровать SQL запрос:
Код

 "insert into site_scan (id,SCAN_STARTTIME,IDSITE,STAT) values (?,now(),?,?)"

текущую дату мне хотелось-бы получать с клиента, а не с сервера ...


--------------------
--
Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем
свободным ..."
PM MAIL ICQ   Вверх
Domestic Cat
Дата 25.11.2004, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Можно так попробовать:

Код

java.sql.Date dd = new java.sql.Date(System.currentTimeMillis());
up.setDate(2, dd);



--------------------

PM   Вверх
Sleepy_PIP
Дата 25.11.2004, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 512
Регистрация: 30.6.2004
Где: Moscow

Репутация: 4
Всего: 12



Цитата(Domestic @ 25.11.2004, 16:20)
Можно так попробовать:

Код

java.sql.Date dd = new java.sql.Date(System.currentTimeMillis());
up.setDate(2, dd);

Во! ОТЛИЧНО!
Код

up.setDate(2, new java.sql.Date(System.currentTimeMillis()));

прекрасно компиляется. только надо еще проверить правильность даты.
СПАСИБО!



--------------------
--
Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем
свободным ..."
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0606 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.