Hello guys please i need a little help on the most efficient way to do servlet MVC with Jquery i have been doing it like the code below which works fine but i noticed it's not the efficient way especially storing the data in jsonArray in my servlet
this is my jquery/ajax code
function dippingData()
{
$('#dippingTable').dataTable().fnDestroy();
$.ajax({
url: "stockController",
type : "POST",
dataType : "JSON",
data:{"option":'getDippingData'},
success:function(data)
{
$('#dippingTable').dataTable({
"aaData":data,
"scrollX": false,
"aoColumns":
[
{"sTitle": "#","mData": "number"},
{
"sTitle":
"Date",
"mData": "date",
"render" : function(mData,type,row,meta)
{
var ids =row["id"];
return '<a data-toggle="modal" data-target="#stockModal" style="cursor:pointer; font-size:12px" onclick="update('+ids+')">'+mData+'</a>';
}
},
{
"sTitle":
"Product",
"mData": "product",
"render" : function(mData,type,row,meta)
{
var ids =row["id"];
return '<a data-toggle="modal" data-target="#stockModal" style="cursor:pointer; font-size:12px" onclick="update('+ids+')">'+mData+'</a>';
}
},
{
"sTitle":
"Open Dipping",
"mData": "open",
"render" : function(mData,type,row,meta)
{
var ids =row["id"];
return '<a data-toggle="modal" data-target="#stockModal" style="cursor:pointer; font-size:12px" onclick="update('+ids+')">'+mData+'</a>';
}
},
{
"sTitle":
"Received",
"mData": "supply",
"render" : function(mData,type,row,meta)
{
var ids =row["id"];
return '<a data-toggle="modal" data-target="#stockModal" style="cursor:pointer; font-size:12px" onclick="update('+ids+')">'+mData+'</a>';
}
},
{
"sTitle":
"Total Stock",
"mData": "total",
"render" : function(mData,type,row,meta)
{
var ids =row["id"];
return '<a data-toggle="modal" data-target="#stockModal" style="cursor:pointer; font-size:12px" onclick="update('+ids+')">'+mData+'</a>';
}
},
{
"sTitle":
"Closing Dipping",
"mData": "close",
"render" : function(mData,type,row,meta)
{
var ids =row["id"];
return '<a data-toggle="modal" data-target="#stockModal" style="cursor:pointer; font-size:12px" onclick="update('+ids+')">'+mData+'</a>';
}
},
{
"sTitle":
"Sales (In Litres)",
"mData": "sales",
"render" : function(mData,type,row,meta)
{
var ids =row["id"];
return '<a data-toggle="modal" data-target="#stockModal" style="cursor:pointer; font-size:12px" onclick="update('+ids+')">'+mData+'</a>';
}
},
{
"sTitle":
"Sales Per Meter",
"mData": "meter",
"render" : function(mData,type,row,meta)
{
var ids =row["id"];
return '<a data-toggle="modal" data-target="#stockModal" style="cursor:pointer; font-size:12px" onclick="update('+ids+')">'+mData+'</a>';
}
},
{
"sTitle":
"Variation",
"mData": "variation",
"render" : function(mData,type,row,meta)
{
var ids =row["id"];
return '<a data-toggle="modal" data-target="#stockModal" style="cursor:pointer; font-size:12px" onclick="update('+ids+')">'+mData+'</a>';
}
},
{
"sTitle":
"Rate",
"mData": "rate",
"render" : function(mData,type,row,meta)
{
var ids =row["id"];
return '<a data-toggle="modal" data-target="#stockModal" style="cursor:pointer; font-size:12px" onclick="update('+ids+')">'+mData+'</a>';
}
},
{
"sTitle":
"Amount GHC",
"mData": "amount",
"render" : function(mData,type,row,meta)
{
var ids =row["id"];
return '<a data-toggle="modal" data-target="#stockModal" style="cursor:pointer; font-size:12px" onclick="update('+ids+')">'+mData+'</a>';
}
},
{
"sTitle":
"Delete",
"mData": "amount",
"render" : function(mData,type,row,meta)
{
var ids =row["id"];
return '<a style="cursor:pointer; color:red" onclick="del('+ids+')"><i class="fa-regular fa-trash-can"></i></a>';
}
},
]
});
},
error(err){
alertify.error('Error fetching data');
}
});
}
the function above calls the servlet method below
private void getReports(HttpServletRequest request, HttpServletResponse response) {
module.setDate(request.getParameter("date1"));
module.setDate2(request.getParameter("date2"));
module.setBranch(request.getParameter("stockBranch"));
int number=0;
ArrayList<stockModule>stocks = dao.getDippingData1(module);
for(stockModule stock : stocks) {
try {
JSONObject obj = new JSONObject();
number+=1;
obj.put("id", stock.getId());
obj.put("date", stock.getDate());
obj.put("product", stock.getProduct());
obj.put("open", stock.getOpeningSock());
obj.put("supply", stock.getSupply());
obj.put("total", stock.getTotalStock());
obj.put("close", stock.getClosingStock());
obj.put("sales", stock.getSales());
obj.put("meter", stock.getMeter());
obj.put("rate", stock.getRate());
obj.put("amount", stock.getAmount());
obj.put("variation", stock.getVariation());
obj.put("number", number);
list.add(obj);
}catch(Exception e) {
e.printStackTrace();
}
}
out.println(list.toJSONString());
out.flush();
list.clear();
session.setAttribute("query", module.getQuery());
}