Como setar imagem em uma pasta e setar o caminho dessa imagem no banco com mysql e jsp

Web service

Java

02/11/2017

Olá gostaria de ajuda para setar o caminho da imagem no banco

segue o codigo.
essa é minha controle que pega os campos do formulario e manda pra dao;

public class Controle_livros extends HttpServlet {

private static final long serialVersionUID = 1L;

/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
* @throws java.sql.SQLException
*/
@SuppressWarnings("null")
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException, SQLException, Exception {
/**
* Configuração do código de página para mostrar os caracteres
* corretamente
*/
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");

// Variável que receberá o valor da flag enviado pelo formulário
String flag = request.getParameter("flag");

try (PrintWriter out = response.getWriter()) {

/**
* Direciona para a página que está determinada no parâmetro do
* método
*/
if (flag == null) {
request.getRequestDispatcher("index.html").
forward(request, response);
}

/**
* Declaração das variáveis para os objetos e para receber os
* valores enviados pelos formulários
*/
// Objetos
Livros livro = new Livros();
LivroDAO livroDAO = new LivroDAO();
ArrayList<Livros> listaLivro = new ArrayList();
List<Livros> livros;
List<Livros> pesquisa;
List<Livros> livroAlteraDAO;
Map<String, String> campos;




// Variáveis dos formulários
int id;
String nome;
String genero;
String categoria;
String ano;
String img;
String caminho;


// Variáveis para tratamento das mensagens de erro
String tituloErro = "";
String erro = "";


// Verifica qual ação deve ser tomada
switch (flag) {
case "cadastrar":



nome = request.getParameter("nome");
genero = request.getParameter("genero");
categoria = request.getParameter("categoria");
ano = request.getParameter("ano");
img = request.getParameter("file");
caminho = request.getParameter("caminho");

//Cria um objeto do tipo Aluno e atribui os dados
livro = new Livros();
livro.setNome(nome);
livro.setGenero(genero);
livro.setCategoria(categoria);
livro.setAno(ano);
livro.setImg(img);
livro.setCaminho(caminho);





// Cria um objeto para receber os campos
campos = new HashMap<>();

// Verifica o preenchimento dos campos
campos = livro.verificaDados();

// Percorre a lista (objetos - campos) em busca dos erros
for (String key : campos.keySet()) {
if (campos.get(key).equals("")) {
// monta a mensagem de erro
tituloErro = "<h1>Campo (s) não preenchido (s)!</h1>";
erro = erro + "&id; " + String.valueOf(key) + "
";
}
}
// Se ocorreram erros, envia para página de erro
if (!erro.isEmpty()) {
request.setAttribute("mensagem", tituloErro + erro);
request.getRequestDispatcher("view/erro.jsp").
forward(request, response);
break;
}


/**
* Repassa os valores dos atributos para o objeto DAO que
* irá manipular os dados e gravar no banco
*/
livroDAO = new LivroDAO();
livroDAO.inserir(livro);

// Cria um atributo para informar sobre a inclusão
request.setAttribute("mensagem",livroDAO.toString());

// Redireciona para a View
request.getRequestDispatcher("view/mensagem_livro.jsp").
forward(request, response);

break;


Essa é a minha DAO responsavel por inserir no banco



public class LivroDAO {

// Declaração das variáveis globais
private Connection conexao = null;
private String status;

/**
* Método construtor da classe
*
* @throws SQLException
*/
public LivroDAO() throws SQLException {
// Retorna a conexao no momento da chamada da classe
this.conexao = ConnectionFactory.getInstance().getConnection();
}

/**
* Realiza a inclusão de um novo registro no banco de dados
*
* @param livro
*/
@SuppressWarnings("empty-statement")
public void inserir(Livros livro) {
try {
// Declaração da variável para a instrução SQL
String sql = "insert INTO livros ( nome, genero, categoria, ano, img,caminho) "
+ "VALUES (?,?,?,?,?,?)";

// Atribui os valores ao objeto ps
try (PreparedStatement ps = conexao.prepareStatement(sql)) {
// seta os valores
ps.setString(1, livro.getNome());
ps.setString(2, livro.getGenero());
ps.setString(3, livro.getCategoria());
ps.setString(4, livro.getAno());
ps.setString(5, livro.getImg());
ps.setString(6, livro.getCaminho());


// Executa o sql (execute)
ps.execute();

// Fecha o ps
ps.close();
}

// Fecha a conexão
conexao.close();

// Retorna o status da inserção
status = "Inserido com Sucesso!";

} catch (SQLException ex) {
// Lança um erro novo personalizado
status = "Erro ao inserir o livro";
}
}
Lucas Nerres

Lucas Nerres

Curtidas 0
POSTAR