-3
Well I have a project with Postgresql, JSP, JSTL and SERVLETS, where on a screen I have a place that updates a product and another place that shows the table of products, the problem is that I do not know why after the use of the method of updating the table does not stay in order, and I wanted it to be in order, because when I give a select * from table I see that it goes out of order after doing the update, I wonder if there is a way to update without changing the sequence, or in jsp select a column in specific of the database.
jsp code of the product update: `
<form action="<%=request.getContextPath()%>/FileUpload" method="post" class="form" id="formUser">
<input required="required" value="${modelImagem.id}" type="text" id="id" name="id" placeholder="ID">
<br>
<input type="file" required="required" value="${modelImagem.imagem}" id="imagem" name="imagem" onchange="mostraImagem();">
<br>
<img alt="Imagem" src="" id="target" name="target" width="200" height="200">
<br>
<button type="submit" onclick="uploadImagem();">Enviar</button>
</form>
<p id="msg" style="color: blue; margin: auto; font-size: 60px;">${msg}</p>
<a target="blank" href="mostratabelin.jsp">mostratabelin</a>
//este metodo apenas mostrara na tela a imagem selecionada
function mostraImagem() {
var target = document.querySelector("img");
var file = document.querySelector("input[type=file]").files[0];
var reader = new FileReader();
reader.onloadend = function() {
target.src = reader.result;
};
if(file) {
reader.readAsDataURL(file);
} else {
target.src = "";
}
}
//metodo que vai envia a
function uploadImagem() {
var idExiste = document.getElementById('id').value;
if(idExiste != null && idExiste != '') {
var urlAction = document.getElementById('formUser').action;
var id = document.querySelector("#id");
var valorID = id.value;
var target = document.querySelector("img");
var file = document.querySelector("input[type=file]").files[0];
var reader = new FileReader();
reader.onloadend = function() {
target.src = reader.result;
///////////***Upload AJAX***\\\\\\\\\\\\\\\
$.ajax({
method : "POST",
url : urlAction,
data : { imagemUpload: reader.result, id : valorID },
success: function (response) {
limparForm();
document.getElementById('msg').textContent = response;
}
}).fail(function(xhr, status, errorThrown) {
alert("Error: " + xhr.responseText);
});
};
//aqui basicamente se existir arquivo torna ele um dado legivel p envia pro back end, caso nao exista arquivo dexa ele vaziozao
if(file) {
reader.readAsDataURL(file);
} else {
target.src = "";
}
} else { alert('id vazio'); }
}
function limparForm() {
var elementos = document.getElementById("formUser").elements; /*Retorna os elementos html dentro do form*/
for (p = 0; p < elementos.length; p ++){
elementos[p].value = '';
}
}
`
jsp codico that shows the product:
`
<a style="font-size: 25px; color: violet" href="FileUpload?acao=carregar">Carregar arquivos</a><!-- chama a servlet e ja entra por doGet por ser padrao, por isso n e preciso especificar -->
<br>
<form action="<%=request.getContextPath()%>/FileUpload" method="GET">
<table>
<c:forEach items="${listaUserImagem}" var="user">
<tr style="color: white;">
<td>${user.id}</td>
<td> <img width="100" height="100" alt="" src="${user.imagem}"> </td>
</tr>
</c:forEach>
</table>
</form>
`
Servlet:
`
private static final long serialVersionUID = 1L;
private DaoFileUpload daoFileUpload = new DaoFileUpload();
public FileUpload() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
String acao = request.getParameter("acao");
if(acao.equalsIgnoreCase("carregar")) {
RequestDispatcher redirecionar = request.getRequestDispatcher("mostratabelin.jsp");
request.setAttribute("listaUserImagem", daoFileUpload.carregarImagem());
redirecionar.forward(request, response);
}
} catch (Exception e) {
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
String msg = "Operacao realizada com sucesso";//msg da tela
String id = request.getParameter("id");
String imagem = request.getParameter("imagemUpload");
ModelImagem modelImagem = new ModelImagem();
modelImagem.setId(id != null && !id.isEmpty() ? Long.parseLong(id) : null);
modelImagem.setImagem(imagem);
if(modelImagem.isNovo()) {//se nao existir aquele id grava novo
msg = "Algo de errado nao esta certo, tia vc provavelmente colocou um id nao existente";
} else {//se ja existir ira atualizar
msg = "Atualizado com sucesso!";
}
modelImagem = daoFileUpload.gravarAtualizarUsuario(modelImagem);
request.setAttribute("msg", msg);
request.setAttribute("modelImagem", modelImagem);
response.getWriter().write(msg + "Upload realizado com sucesso");
request.getRequestDispatcher("index.jsp").forward(request, response);
} catch (Exception e) {
e.printStackTrace();
//response.getWriter().write("Erro fatal ao realizar upload: " + e.getMessage());
RequestDispatcher redirecionar = request.getRequestDispatcher("erro.jsp");
request.setAttribute("msg", e.getMessage());
redirecionar.forward(request, response);
}
}
dao:
private Connection connection;
public DaoFileUpload() {
connection = SingleConnectionDataBase.getConnection();
}
public ModelImagem gravarAtualizarUsuario(ModelImagem objeto) throws Exception {//esse metodo vai gravar um novo usuario no banco
if(objeto.isNovo()) {//se nao existir aquele id grava um novo
System.out.println("Falhou com exito");
/*String sql = "INSERT INTO imagem(imagem) VALUES (?);";
PreparedStatement preparedSql = connection.prepareStatement(sql);
preparedSql.setString(1, objeto.getImagem());
preparedSql.execute();
connection.commit();*/
} else {//se ja existir atualiza os dados
String sql = "UPDATE imagem SET imagem=? WHERE id = "+objeto.getId()+";";
PreparedStatement preparedSql = connection.prepareStatement(sql);
preparedSql.setString(1, objeto.getImagem());
preparedSql.executeUpdate();
connection.commit();
}
return objeto;
}
public List<ModelImagem> carregarImagem() throws Exception {//carrega imagem que esta no banco
List<ModelImagem> modelImagens = new ArrayList<ModelImagem>();
String sql = "select * from imagem ";
PreparedStatement statement = connection.prepareStatement(sql);
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
ModelImagem modelImagem = new ModelImagem();
modelImagem.setId(resultSet.getLong("id"));
modelImagem.setImagem(resultSet.getString("imagem"));
modelImagens.add(modelImagem);
}
return modelImagens;
//System.out.println("passou 100%");
}
}
classe de modelo da tabela
private Static final long serialVersionUID = 1L;
private String imagem;
private Long id;
//metodos
public boolean isNovo() {//metodo para atualizar os dados do usuario
if(this.id == null) {
return true;//inserir um novo
} else if (this.id != null && this.id > 0) {
return false;//atualizar
}
return id == null;
}
public String getImagem() {
return imagem;
}
public void setImagem(String imagem) {
this.imagem = imagem;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
} `
could format the code properly for better display? Here we use the markdown.
– Danizavtz
Brother unfortunately I’m so junior that I don’t even understand it, but I just copy and paste it for what I put
– guilherme luis