Как узнать, где находятся запросы в моем веб-приложении?

У меня есть веб-приложение, разработанное в maven с платформой Spring, и сервер приложений, на котором оно развернуто, является weblogic, который запрашивает базу данных на сервере. Увидев код в индексе, я не могу узнать, как он командует и какой запрос он отправляет для выполнения запросов к базе данных.

В следующем коде приведен метод, который должен выполнять поиск, нажав кнопку поиска:

</div>
<a href="#" onclick="informacionProducto()" class="buscar">Buscar</a>
<a href="#" onclick="limpiarTablas()" class="buscar">Limpiar</a>
<input type="hidden" name="IpCC" id="IpCC" value="" class=""/>

<div id="loading">
    <p>Buscando producto,</p>
    <p> por favor espere... </p>

И вот код этого метода

function informacionProducto() {
    $("#loading").show();
    var formulario = $('#formularioBusqueda');

    if (document.formularioBusqueda.radio2.checked) {
        var x = 0;
        $.post(
            'ConsultasRms/tabla_consultaProductoPromocion.html',
            formulario.serialize(),
            function (data) {
                $("#loading").hide();
                if (data.rows[0].length == 0 && data.rows[1].length == 0) {
                    $("#dialog-NoDataPromocion").dialog("open");
                }
                else {
                    //borramos el contenido de los option del select
                    //$("#comboboxSucursales").html("");
                    //recorremos todas las filas del resultado del proceso que obtenemos en Json
                    comboSucursales = document.getElementById('comboboxSucursales');
                    sucursalConsulta = comboSucursales.options[comboSucursales.selectedIndex].text;
                    var listaProductoActivo = data.rows[0];
                    for (x = 0; x < listaProductoActivo.length; x++) {
                        var datarow = {
                            sucursal: sucursalConsulta,
                            numeroSucursal:comboSucursales.options[comboSucursales.selectedIndex].value,
                            ip: ipControlador,
                            sistema: tipoSucursal,
                            codigoPrincipal: listaProductoActivo[x].codigoPrincipal,
                            descripcionCorta: listaProductoActivo[x].descripcionCorta,
                            precio: listaProductoActivo[x].precio,
                            precioPromocion: listaProductoActivo[x].precioPromocion,
                            pvJusto: listaProductoActivo[x].pvJusto,
                            statusProducto: listaProductoActivo[x].statusProducto
                        };
                        datarowRmsDetalle[cont] = {
                            descripcionLarga: listaProductoActivo[x].descripcionLarga,
                            iva: listaProductoActivo[x].iva,
                            estado: listaProductoActivo[x].estado,
                            departamento: listaProductoActivo[x].departamento,
                            codigoComponente: listaProductoActivo[x].codigoComponente,
                            codigoPromocion: listaProductoActivo[x].codigoPromocion,
                            fechaInicioPromocion: listaProductoActivo[x].fechaInicioPromocion,
                            fechaFinPromocion: listaProductoActivo[x].fechaFinPromocion
                        };


                        var su = jQuery("#tablaProductoRms")
                                        .jqGrid('addRowData', cont,
                                        datarow);

                        cont++;
                    }

                    var inactivo = "";
                    var listaProductoInactivo = data.rows[1];
                    if (listaProductoInactivo.length > 0) {
                        for (x = 0; x < listaProductoInactivo.length; x++) {

                            inactivo = inactivo + "<li>" + listaProductoInactivo[x].codigoPrincipal + "</li>"
                        }
                        $("#etiquetaMensajeInactivo").html(inactivo);
                        $("#dialog-DataProductoInactivo").dialog("open");
                    }
                }
            }, "json");

Я не вижу, где находится запрос или какой-либо файл, к которому он относится.


со стороны бэкэнда я нашел этот код

@RequestMapping("/tabla_consultaProductoPromocion")
public ModelAndView consultaProductoPromocion(HttpServletRequest request, HttpServletResponse response,
                                                  @RequestParam("buscarProductoInput") String codigoPromocion,
                                                  @RequestParam("comboboxSucursales") String sucursal,
                                                  @RequestParam("IpCC") String ipControlador
    ) throws Exception {
        logger.info("Antes de la ejecutar consultaProductoPromocion" + codigoPromocion + ", " + sucursal + ", "
                + ipControlador);
        codigoPromocion = codigoPromocion.replace(" ", "");
        IConsultaProductosRms consultaRms = new ConsultaProductosRms();
        List<String> listaBarra = consultaRms.consultaProductosPromocion(em, codigoPromocion, sucursal);

        List<List<Producto>> listaP = new ArrayList<List<Producto>>();

        listaP.add(0, crearListaProducto(sucursal, consultaRms, listaBarra, "2"));

        listaBarra = consultaRms.consultarProductosPromocionInactivos(em, codigoPromocion, sucursal);

        listaP.add(1, crearListaProducto(sucursal, consultaRms, listaBarra, "1"));


        logger.info("Despu\u00E9s de la ejecutar consultaProductoPromocion retorna: "+ listaP);
        return new ModelAndView("tabla_consultaProductoPromocion", "lista", listaP);
    }
}

из того, что я вижу при создании запросов, но не в стиле sql, может кто-нибудь объяснить мне, как я могу изменить эти запросы?

в createList покоится следующий код ...

private List<Producto> crearListaProducto(String sucursal, IConsultaProductosRms consultaRms, List<String>
        listaBarra, String estatusProducto) {
    Producto producto = new Producto();
    List<Producto> productos = new ArrayList<Producto>();
    logger.info("Antes de la ejecutar crearListaProducto" + estatusProducto + ", " + sucursal + ", "
            + listaBarra);
    for (String codigoBarra : listaBarra) {

        producto = consultaRms.consultaProducto(em, codigoBarra, sucursal);
        producto.setStatusProducto(estatusProducto);

        productos.add(producto);
    }
    logger.info("Despu\u00E9s de la ejecutar consultaProductoPromocion retorna: "+ productos);
    return productos;
}

Что я действительно могу видеть, так это то, что он создает список с параметрами, которые он получает, и я не знаю много, но потом я вижу, что он отправляет штрих-код и использует EM, который, как я понимаю, является EntityManager, но для В конце концов, я не вижу запроса как такового, который в документации приложения похож на этот

SELECT DISTINCT temp.codigoPrincipal,temp.item
FROM (SELECT  tmp_barra_primaria.codigoPrincipal,
tmp_barra_primaria.item
FROM item_master       im, vat_item          vi, store             s,
      uda_item_lov      uil, rpm_future_retail rfr2, (
      SELECT decode(im.item_number_type, 'ITEM', im.item, im.item_parent)
      codigoPrincipal,im.item, im.item_desc descripcionLarga, im.short_desc
      descripcionCorta
      FROM item_master im
WHERE im.item_parent = ?1  ) tmp_barra_primaria
LEFT OUTER JOIN(item_loc il) ON (tmp_barra_primaria.codigoPrincipal = il.item
      AND il.loc = ?2) LEFT OUTER JOIN(rpm_future_retail rfr)
ON (tmp_barra_primaria.codigoPrincipal = rfr.item AND rfr.location = ?2 AND
TO_DATE(sysdate, 'DD/MM/YYYY') <=
TO_DATE(rfr.action_date, 'DD/MM/YYYY') AND (to_date(sysdate) - to_date(rfr.
      action_date)) >= 0) LEFT OUTER JOIN(rpm_promo_item_loc_expl rpile) ON (
      tmp_barra_primaria.codigoPrincipal = rpile.item
      AND rpile.location = ?2
      AND TO_DATE(sysdate, 'DD/MM/YYYY') between TO_DATE(rpile.
      detail_start_date, 'DD/MM/YYYY')
      AND to_date(rpile.detail_end_date, 'DD/MM/YYYY'))
      WHERE im.item = tmp_barra_primaria.codigoPrincipal
      AND vi.item = im.item
      AND s.store = ?2
      AND s.vat_region = vi.vat_region
      AND uil.item = im.item
      AND uil.uda_id = 3
      AND rfr2.item = tmp_barra_primaria.codigoPrincipal
      AND rfr2.location = ?2
      AND (to_date(SYSDATE) - to_date(rfr2.action_date)) >= 0
ORDER BY (RFR2.ACTION_DATE) DESC ) TEMP

Это тот, который мне нужно изменить, и я не могу получить этот путь.

0
задан 09.11.2016, 22:26
1 ответ

Работает просьба AJAX в сервер. Точно, это унифицированный указатель ресурса услуги: ConsultasRms/tabla_consultaProductoPromocion.html. Это обозначается в следующем вызове jquery:

$.post(
    'ConsultasRms/tabla_consultaProductoPromocion.html',
    //resto de parámetros...

Проверь в твоем проекте, в части backend, каком-то драйвере, который обслуживал бы просьбы POST для этой, унифицированный указатель ресурса. Продолжая эту разметку ты найдешь queries, подмостки и остальные присоединенные элементы.

Основанный на твоем редактировании, возможно быть известно, что твое приложение разработано используя главный файл архитектуры слоев. А именно, твое приложение должно быть разделенным на слои, посвященную, чтобы обслуживать request, другую, чтобы манипулировать queries, другой, чтобы применять правила дела, и т.д. Это значит, что ты не надеешься, что queries находятся в том же методе или классе, где находится код, чтобы обслуживать request. На данный момент, у тебя есть следующее в твоем драйвере:

listaP.add(0, crearListaProducto(sucursal, consultaRms, listaBarra, "2"));

Линия призывает в метод crearListaProducto, который в Вашем внутреннем помещении является тем, который должен браться за то, чтобы иметь логику, чтобы мочь создавать список продуктов с параметрами, которые он получает. Я рекомендую тебе проверять шрифты этого метода, вероятно, что внутри этого они являются более призванными к другим методам, возможно других классов. В конце концов, ты сможешь отчитываться в методе, который выполняет query, чтобы вводить в базе данных. Ты это не объяснил, но вероятно, что твое приложение использует какой-то framework, чтобы действовать против базы данных как JPA/Hibernate или MyBatis, из-за чего решение INSERT не будьте написаны ясно в коде.

0
ответ дан 24.11.2019, 12:41
  • 1
    спасибо друг издал ответ, с которым я нашел стороны backend, но я не вижу, что это были классические консультации mysql с SELECT – Jdeveloper 09.11.2016, 17:35
  • 2
    Я только что обновил ответ, основанный на твоем edició n вопроса. –  09.11.2016, 17:46
  • 3
    если друг ты прав, framework, в котором он занимается, - Спринг – Jdeveloper 09.11.2016, 18:10
  • 4
    Спринг не нужно абсолютно ничего видеть с ejecució n queries. Спринг JDBC sí но Спринг core не. –  09.11.2016, 18:11
  • 5
    измените вопрос с контентом crearListaProducto, даже не могут видеть как таковой query, они говорили мне использования CRUD, чтобы мочь понимать структуру этого проекта, рекомендаций? спасибо – Jdeveloper 09.11.2016, 22:24