Ola gostaria que alguem me ajuda-se nesse trabalho que eu tenho que fazer na faculdade.
é o seguinte:
implementar um sistema de uma imobiliária que vende imóveis.
O sistema deve conter pelo menos as seguintes classes: ConnectionFactory, Imovel e ImovelDAO.
implementar as seguintes funcionalidades: incluir imóvel e listar imóveis.
O script de criação do banco de dados(mysql) deve ser este:
Create database imovel;
use imovel;
CREATE TABLE `imovel` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`tipo` VARCHAR( 20 ) NOT NULL ,
`endereco` VARCHAR( 200 ) NOT NULL ,
`proprietario` VARCHAR( 50 ) NOT NULL ,
`valor` VARCHAR( 20 ) NOT NULL ,
`telefone` VARCHAR( 20 ) NOT NULL ,
`descricao` VARCHAR( 250 ) NOT NULL ,
`qtd_quartos` VARCHAR( 5 ) NOT NULL ,
`qtd_suites` VARCHAR( 5 ) NOT NULL
) ENGINE = MYISAM;
O que mais eu tenho que fazer para rodar veja meu projeto?:
Classe: Imovel
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
*
*/
public class Imovel {
private int id;
private byte tipo;
private byte quartos;
private String proprietario;
private String descricao;
private String endereco;
private String valor;
/**
* @return the id
*/
public int getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(int id) {
this.id = id;
}
/**
* @return the tipo
*/
public byte getTipo() {
return tipo;
}
/**
* @param tipo the tipo to set
*/
public void setTipo(byte tipo) {
this.tipo = tipo;
}
/**
* @return the quartos
*/
public byte getQuartos() {
return quartos;
}
/**
* @param quartos the quartos to set
*/
public void setQuartos(byte quartos) {
this.quartos = quartos;
}
/**
* @return the proprietario
*/
public String getProprietario() {
return descricao;
}
/**
* @param proprietario the proprietario to set
*/
public void setProprietario(String proprietario) {
this.proprietario = proprietario;
}
/**
* @return the descricao
*/
public String getDescricao() {
return descricao;
}
/**
* @param descricao the descricao to set
*/
public void setDescricao(String descricao) {
this.descricao = descricao;
}
/**
* @return the endereco
*/
public String getEndereco() {
return endereco;
}
/**
* @param endereco the endereco to set
*/
public void setEndereco(String endereco) {
this.endereco = endereco;
}
/**
* @return the valor
*/
public String getValor() {
return valor;
}
/**
* @param valor the valor to set
*/
public void setValor(String valor) {
this.valor = valor;
}
void setValor(byte parseByte) {
/*throw new UnsupportedOperationException("Not yet implemented");*/
}
}
Classe: ImovelDAO
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
*/
import java.sql.Statement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
*/
public class ImovelDAO {
private Object arr;
public Collection getListaImoveis() throws SQLException {
String sql = "select * from imovel";
ArrayList a = new ArrayList();
@SuppressWarnings("static-access")
Connection con = new JDBCConnectionFactory().con;
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
Imovel imovel = new Imovel();
imovel.setId(rs.getInt("codigo"));
imovel.setTipo(rs.getByte("tipo"));
imovel.setQuartos(rs.getByte("quartos"));
imovel.setProprietario(rs.getString("proprietario"));
imovel.setDescricao(rs.getString("descricao"));
imovel.setEndereco(rs.getString("endereco"));
imovel.setValor(rs.getString("valor"));
a.add(imovel);
}
return a;
}
public Imovel getImovel(int codigo) throws SQLException{
String sql = "select * from imovel where codigo = ?";
Imovel resultado = null;
@SuppressWarnings("static-access")
Connection con = new JDBCConnectionFactory().con;
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setInt(1,codigo);
ResultSet rs = stmt.executeQuery();
while (rs.next()){
resultado = new Imovel();
resultado.setId(rs.getInt("codigo"));
resultado.setTipo(rs.getByte("tipo"));
resultado.setQuartos(rs.getByte("quartos"));
resultado.setProprietario(rs.getString("proprietario"));
resultado.setDescricao(rs.getString("descricao"));
resultado.setEndereco(rs.getString("endereco"));
resultado.setValor(rs.getString("valor"));
}
return resultado;
}
public void atualizarImovel(Imovel imovel) throws SQLException{
String sql = "update imovel set tipo=?, quartos=?, proprietario=?, descricao=?, endereco=?, valor=? where codigo=?";
@SuppressWarnings("static-access")
Connection con = new JDBCConnectionFactory().con;
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setByte(1, imovel.getTipo());
stmt.setByte(2, imovel.getQuartos());
stmt.setString(3, imovel.getProprietario());
stmt.setString(4, imovel.getDescricao());
stmt.setString(5, imovel.getEndereco());
stmt.setString(6, imovel.getValor());
stmt.setInt(7, imovel.getId());
stmt.executeUpdate();
}
public void excluirImovel(int codigo) throws SQLException{
String sql = "delete from imovel where codigo = " + codigo;
@SuppressWarnings("static-access")
Connection con = new JDBCConnectionFactory().con;
Statement stmt = con.createStatement();
stmt.executeUpdate(sql);
}
public void cadastrarImovel(Imovel imovel) throws SQLException{
String sql = "insert into imovel(tipo,quartos,proprietario,descricao,endereco,valor) values(?,?,?,?)";
@SuppressWarnings("static-access")
Connection con = new JDBCConnectionFactory().con;
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setByte(1, imovel.getTipo());
stmt.setByte(2, imovel.getQuartos());
stmt.setString(3, imovel.getProprietario());
stmt.setString(4, imovel.getDescricao());
stmt.setString(5, imovel.getEndereco());
stmt.setString(6, imovel.getValor());
stmt.executeUpdate();
}
void incluirImovel(Imovel imovel) {
throw new UnsupportedOperationException("Not yet implemented");
}
}
Classe: IncluirImovel
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
*/
public class IncluirImovel extends HttpServlet {
/**
* 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
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
// try {
out.println("<html>");
out.println("<head><title>Incluir imóvel</title></head>");
out.println("<body>");
out.println("<center>");
out.println("<img src=\"imagens/topo.jpg\"/>");
out.println("<font face=Arial><br/><br/>");
Imovel imovel = new Imovel();
imovel.setTipo(Byte.parseByte(request.getParameter("tipo")));
imovel.setQuartos(Byte.parseByte(request.getParameter("quartos")));
imovel.setProprietario(request.getParameter("proprietario"));
imovel.setDescricao(request.getParameter("descricao"));
imovel.setEndereco(request.getParameter("endereco"));
imovel.setValor(Byte.parseByte(request.getParameter("valor")));
// try{
new ImovelDAO().incluirImovel(imovel);
out.println("<b>Imóvel cadastrado com sucesso!</b>");
}
{
// out.println("<b>Ocorreu uma falha ao incluir imóvel. tente novamente.</b>");
}
// out.println("<br/><br/>");
// out.println("<input type=\"submit\" value=\"Voltar\" onclick=\"location.href= 'javascript:history.go(-1)' \"/>");
// out.println("</font>");
// out.println("</center>");
// out.println("</body>");
// out.println("</html>");
// } finally {
// out.close();
// }
// }
// <editor-fold defaultstate="collapsed" desc="Métodos HttpServlet. Clique no sinal de + à esquerda para editar o código.">
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
Classe: JDBCConnectionFactory
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
*
*/
import java.sql.Connection;
import java.sql.DriverManager;
public class JDBCConnectionFactory {
Connection con;
public Connection getConnection() {
try {
String url = "jdbc:mysql://localhost:3306/imoveis";
return DriverManager.getConnection(url,"root", "");
} catch(Exception e) {
System.out.println("Não foi possível se conectar ao BD!");
throw new RuntimeException();
}
}
}
Classe: JDBCExemplo
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
*
*/
public class JDBCExemplo {
private static Connection Connection;
public static void main(String[] args) throws SQLException {
JDBCConnectionFactory jdbc=new JDBCConnectionFactory();
//Connection = DriverManager.getConnection("jdbc:mysql://localhost/imoveis");
jdbc.getConnection();
System.out.println("Conectado!");
//conexao.close();
}
}
Classe: ListarImovelServlet
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.text.DecimalFormat;
import java.util.Collection;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
*
*/
public class ListarImovelServlet extends HttpServlet {
/**
* 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
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException, SQLException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
Collection c = new ImovelDAO().getListaImoveis();
if(!c.isEmpty()){
DecimalFormat df = new DecimalFormat("R$ #,###");
int i = 1;
out.println("<html>");
out.println("<head>");
out.println("<title>Listar Imóveis</title>");
out.println("</head>");
out.println("<body>");
out.println("<img src=\"imagens/topo.jpg\"/>");
out.println("<font face=Arial>");
out.println("<center><br/><br/>");
out.println("<h2>Lista de todos os imóveis cadastrados</h2>");
out.println("<br/>");
out.println("<table width=100% border=0 cellpadding=10 valign=center>");
out.println("<tr bgcolor=#888888>");
out.println("<td><b><p align=center>Tipo do Imóvel</p></b></td>" +
"<td><b><p align=center>Número de quartos</p></b></td>" +
"<td><b><p align=center>Endereço</p></b></td>" +
"<td><b><p align=center>Proprietario</p></b></td>" +
"<td><b><p align=center>Descrição</p></b></td>" +
"<td><b><p align=center>Valor</p></b></td>");
out.println("</tr>");
for(Object o:c){
Imovel imovel = (Imovel)o;
if (i%2 == 0){
out.println("<tr bgcolor=#eeeeee>");
}else{
out.println("<tr bgcolor=#cccccc>");
}
out.println("<td><p align=center>" + getTipoImovel(imovel.getTipo()) + "</p></td>" +
"<td><p align=center>" + imovel.getQuartos() + "</p></td>" +
"<td><p align=center>" + imovel.getProprietario()+ "</p></td>" +
"<td><p align=center>" + imovel.getDescricao()+ "</p></td>" +
"<td><p align=center>" + imovel.getEndereco() + "</p></td>" +
"<td><p align=center>" + df.format(imovel.getValor()) + "</p></td>");
out.println("</tr>");
i++;
}
out.println("</table>");
out.println("<br/>");
out.println("<input type=submit value=Voltar onclick=history.go(-1)");
out.println("</center>");
out.println("</font>");
out.println("</body>");
out.println("</html>");
}
else{
out.println("Não existem imóveis cadastrados!");
}
} finally {
out.close();
}
}
private String getTipoImovel(int tipo){
String s = "";
switch (tipo){
case 1: s = "Casa";break;
case 2: s = "Apartamento";break;
case 3: s = "Terreno";break;
}
return s;
}
// <editor-fold defaultstate="collapsed" desc="Métodos HttpServlet. Clique no sinal de + à esquerda para editar o código.">
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
/*try {
processRequest(request, response);
} catch (SQLException ex) {
Logger.getLogger(ListarImovelServlet.class.getName()).log(Level.SEVERE, null, ex);
}*/
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
processRequest(request, response);
} catch (SQLException ex) {
Logger.getLogger(ListarImovelServlet.class.getName()).log(Level.SEVERE, null, ex);
}
}
/**
* Returns a short description of the servlet.
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
webxml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>IncluirImovel</servlet-name>
<servlet-class>IncluirImovel</servlet-class>
</servlet>
<servlet>
<servlet-name>ListarImovelServlet</servlet-name>
<servlet-class>ListarImovelServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>IncluirImovel</servlet-name>
<url-pattern>/IncluirImovel</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ListarImovelServlet</servlet-name>
<url-pattern>/ListarImovelServlet</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>