powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Требуется помощь по Spring + Oracle
5 сообщений из 5, страница 1 из 1
Требуется помощь по Spring + Oracle
    #39308197
misha1973
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Есть mvc-система - данные загружаются из оракловой таблицы через сервис - контроллер в velocity-страницу.
Персистентный класс:
Код: java
1.
2.
3.
4.
5.
@RowMapperClass
public class XmlMonitor {
       @RowMapperField(columnName = "xml_dload")
    private Date dload;
  геттеры.сеттеры


Сервис, возвращающию список объектов XmlMonitor:
Код: 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.
@Repository("xmlMoniorRepositoryImpl")
public class XmlMoniorRepositoryImpl implements XmlMoniorRepository {

    @Autowired
    private RowMapperService rowMapperService;

    private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
    private static final Logger logger = Logger.getLogger(XmlMoniorRepositoryImpl.class);
    private SimpleJdbcInsert simpleJdbcInsert;

    @Override
    @Autowired
    @Qualifier("dataSource")
    public void setDataSource(DataSource dataSource) {
        this.namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(dataSource);
        this.simpleJdbcInsert = new SimpleJdbcInsert(dataSource).withTableName("XML_MONITOR");

    }
....
    @Override
    public List<XmlMonitor> findWithConditions(String type, String name, String numcde, String numwbil, String sender, String receiver,
                                               String ddateFrom, String ddateTo) {
.......
        String sql = "select * from XML_MONITOR " +
                " WHERE 1 = 1 " +
                typeClause +
                nameClause +
                numcdeClause +
                numwbilClause +
                senderClause +
                receiverClause +
                ddateFromClause +
                ddateToClause;
        List<XmlMonitor> result = namedParameterJdbcTemplate.query(sql, params, rowMapperService.getRowMapper(XmlMonitor.class));
        logger.info("selected from XML_MONITOR with conditions ("+result.size()+")");
        return result;
    }



Контроллер:
Код: 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.
@Controller
public class MonitoringController {

    private XmlMonitorService xmlMonitorService;

    @Autowired
    public MonitoringController(XmlMonitorService xmlMonitorService) {
        this.xmlMonitorService = xmlMonitorService;
    }
.....
    @RequestMapping(path="/xmlMonitor/loadData", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
    @ResponseBody
    @Secured({"ROLE_14W","ROLE_14R"})
    public Collection<XmlMonitor> loadXmlMonitorData(@RequestParam Map<String, String> params) {
        String type = params.get("type");
        String name = params.get("name");
        String numcde = params.get("numcde");
        String numwbil = params.get("numwbil");
        String sender = params.get("sender");
        String receiver = params.get("receiver");
        String ddateFrom = params.get("ddateFrom");
        String ddateTo = params.get("ddateTo");
        return  xmlMonitorService.findWithConditions(type, name, numcde, numwbil, sender, receiver, ddateFrom, ddateTo);
    }



JavaScript с веб-страницы:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
.....
                    var dload = "";
                    if (entry.dload != null ){
                        dt = $.datepicker.parseDate('yy-mm-dd', entry.dload);
                        dload = $.datepicker.formatDate('dd.mm.yy', dt);

                    }
.......


Поле dload берется из поля типа date таблицы XML_MONITOR.
Сейчас оно возвращает значение в формате yy-mm-dd. Т.е. в нем нет времени, только дата.
Причем без всякого форматирования, видимо, формат даты берется из настроек JDBC.
Возникло требование возвращать поле dload в формате с часами и минутами.
Первое, что пришло в голову - to_char в запросе, но в контроллере также есть также методы обновления и удаления данных из таблицы, боюсь, как бы чего не накрылось. Также пробовал добавить поле с to_char в запрос дополнительно, получил NPE от Rowmapper...
Скорее всего, делаю что-то не так.
Посоветуйте, как лучше вытащить часы и минуты в страничку?
Еще раз повторюсь - сейчас дата по умолчанию приходит из контроллера без часов и минут.
...
Рейтинг: 0 / 0
Требуется помощь по Spring + Oracle
    #39308212
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
misha1973Еще раз повторюсь - сейчас дата по умолчанию приходит из контроллера без часов и минут.
а должна быть полная и в VIEW форматировать.
...
Рейтинг: 0 / 0
Требуется помощь по Spring + Oracle
    #39308225
misha1973
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123, дело в том, что есть также методы, обновляющие это поле. Если будет приходить полная дата, то надо будет везде прописывать форматирование, а так все вкрячивается по маске по умолчанию.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    @Override
    public void updateXmlMonitorStatuses(XmlMonitor mon){

        String sql = "update xml_monitor set xml_status = :status, xml_dmod = :dmod, xml_dload = :dload, xml_dprc = :dprc, xml_utimod = :uti where xml_name = :name";
        Map<String, Object> map = new HashMap<>();
        map.put("status", mon.getStatus());
        map.put("dmod", mon.getDmod());
        map.put("dload", mon.getDload());
        map.put("dprc", mon.getDprc());
        map.put("uti", mon.getUtimod());
        map.put("name", mon.getName());
        namedParameterJdbcTemplate.update(sql, map);
        logger.debug("Update XMLMonitor:" + mon);
    }
...
Рейтинг: 0 / 0
Требуется помощь по Spring + Oracle
    #39308240
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
misha1973Если будет приходить полная дата, то надо будет везде прописывать форматирование
не очень понял проблему.
mon.getDload()
- можно перегрузить
- можно использовать параметр DEFAULT
- можно добавить дополнительные методы геттеры и сеттеры
- можно огрублять без минут при сохранении в базу.
Приводите больше кода.
Если у вас на клиенте НЕ было минут, то их надо будет сохранять с клиента или автоматом лог какой нибудь?
...
Рейтинг: 0 / 0
Требуется помощь по Spring + Oracle
    #39308347
myaucha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
    mon.dload = getDate(rs.getTimestamp("dload"));

    ...

    // преобразовать java.sql.Timestamp в java.util.Date
    public static java.util.Date getDate(Timestamp timestamp) {
        return timestamp != null ? new java.util.Date(timestamp.getTime()) : null;
    }
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Требуется помощь по Spring + Oracle
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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