一.语言和环境
实现语言:JAVA语言.
环境要求: Eclipse或MyEclipse,MySQL.
驱动包:提供对应MySQL驱动jar包.
二.具体要求及推荐实现步骤
1.按以上数据库要求建库、建表,并添加测试数据不少于5条。
2. 搭建系统框架
(1)创建 JavaWeb 项目,导入数据库驱动 jar 包,创建对应包存放相关源文件
(2)创建实体类用于出租房屋信息的数据
(3)创建数据访问层,并编写数据库连接和数据访问层代码
(4)创建业务逻辑层,并编写业务逻辑层代码
(5)创建对应 Servlet 处理查询、修改和删除请求处理
(6)正确添加各层之间的调用依赖关系

3. 创建后台管理页面
(1)按照后台管理页面效果图,使用 JSP 创建页面
(2)页面中出租房屋信息数据均来源于数据库,初次加载显示所有出租房屋信息(注意:要求界面使用 JSTL 进行数据展示)

代码如下所示
数据库



包名


House.java(实体类)

package com.swjd.bean;

public class House {
    private int letId;
    private String letName;
    private String letType;
    private int letPrice;
    private String letPhone;
    private String letAddress;

    public House() {
        super();
        // TODO Auto-generated constructor stub
    }
    
    public House(String letName, String letType, int letPrice, String letPhone, String letAddress) {
        super();
        this.letName = letName;
        this.letType = letType;
        this.letPrice = letPrice;
        this.letPhone = letPhone;
        this.letAddress = letAddress;
    }

    public House(int letId, String letName, String letType, int letPrice, String letPhone, String letAddress) {
        super();
        this.letId = letId;
        this.letName = letName;
        this.letType = letType;
        this.letPrice = letPrice;
        this.letPhone = letPhone;
        this.letAddress = letAddress;
    }

    public int getLetId() {
        return letId;
    }

    public void setLetId(int letId) {
        this.letId = letId;
    }

    public String getLetName() {
        return letName;
    }

    public void setLetName(String letName) {
        this.letName = letName;
    }

    public String getLetType() {
        return letType;
    }

    public void setLetType(String letType) {
        this.letType = letType;
    }

    public int getLetPrice() {
        return letPrice;
    }

    public void setLetPrice(int letPrice) {
        this.letPrice = letPrice;
    }

    public String getLetPhone() {
        return letPhone;
    }

    public void setLetPhone(String letPhone) {
        this.letPhone = letPhone;
    }

    public String getLetAddress() {
        return letAddress;
    }

    public void setLetAddress(String letAddress) {
        this.letAddress = letAddress;
    }

    @Override
    public String toString() {
        return "House [letId=" + letId + ", letName=" + letName + ", letType=" + letType + ", letPrice=" + letPrice
                + ", letPhone=" + letPhone + ", letAddress=" + letAddress + "]\n";
    }

}




BaseDao.java(连接MySQL数据库)

package com.swjd.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class BaseDao {
    static {
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    public static Connection getConn() {
        Connection conn = null;
        try {
            conn = DriverManager.getConnection
            ("jdbc:mysql://localhost:3306/communitydb?CharacterEncoding=utf-8&useUnicode=true","root","123456");
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return conn;
    }
    
    public static void close(ResultSet rs,PreparedStatement ps,Connection conn) {
        try {
            if (rs!=null) {
                rs.close();
            }
            if (ps!=null) {
                ps.close();
            }
            if (conn!=null) {
                conn.close();
            }
        } catch (Exception e) {
            // TODO: handle exception
        }
    }
    public static void main(String[] args) {
        System.out.println(getConn());
    }
}




HouseDao.java(接口)

package com.swjd.dao;

import java.util.List;

import com.swjd.bean.House;

public interface HouseDao {

    public int add(House house);
    
    public int delete(int id);
    
    public int update(House house,int id);

    public List<House> selectAll();
    
    public List<House> selectMoHuByName(String name,String huXing);

}




HouseDaoImpl.java
package com.swjd.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.swjd.bean.House;
import com.swjd.util.BaseDao;

public class HouseDaoImpl implements HouseDao{

    @Override
    public int add(House house) {
        Connection conn = BaseDao.getConn();
        PreparedStatement ps = null;
        int num = 0;
        String sql ="insert into house values(null,?,?,?,?,?)";
        try {
            ps=conn.prepareStatement(sql);
            ps.setString(1, house.getLetName());
            ps.setString(2, house.getLetType());
            ps.setInt(3, house.getLetPrice());
            ps.setString(4, house.getLetPhone());
            ps.setString(5, house.getLetAddress());
            num = ps.executeUpdate();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally {
            BaseDao.close(null, ps, conn);
        }
        return num;
    }

    @Override
    public int delete(int id) {
        Connection conn = BaseDao.getConn();
        PreparedStatement ps = null;
        int num = 0;
        String sql ="delete from house where let_id=?";
        try {
            ps=conn.prepareStatement(sql);
            ps.setInt(1,id);
            num = ps.executeUpdate();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally {
            BaseDao.close(null, ps, conn);
        }
        return num;
    }

    @Override
    public int update(House house, int id) {
        Connection conn = BaseDao.getConn();
        PreparedStatement ps = null;
        int num = 0;
        String sql ="update house set let_name=?,let_type=?,let_price=?,let_phone=?,let_address=? where let_id=?";
        try {
            ps=conn.prepareStatement(sql);
            ps.setString(1, house.getLetName());
            ps.setString(2, house.getLetType());
            ps.setInt(3, house.getLetPrice());
            ps.setString(4, house.getLetPhone());
            ps.setString(5, house.getLetAddress());
            ps.setInt(6,id);
            num = ps.executeUpdate();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally {
            BaseDao.close(null, ps, conn);
        }
        return num;
    }

    @Override
    public List<House> selectAll() {
        List<House> list = new ArrayList<>();
        Connection conn = BaseDao.getConn();
        PreparedStatement ps = null;
        ResultSet rs = null;
        String sql = "select * from house";
        try {
            ps = conn.prepareStatement(sql);
            rs = ps.executeQuery();
            while (rs.next()) {
                House house = new House();
                house.setLetId(rs.getInt("let_id"));
                house.setLetName(rs.getString("let_name"));
                house.setLetType(rs.getString("let_type"));
                house.setLetPrice(rs.getInt("let_price"));
                house.setLetPhone(rs.getString("let_phone"));
                house.setLetAddress(rs.getString("let_address"));
                list.add(house);
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally {
            BaseDao.close(rs, ps, conn);
        }
        return list;
    }

    @Override
    public List<House> selectMoHuByName(String name,String huXing) {
        List<House> list = new ArrayList<House>();
        Connection conn = BaseDao.getConn();
        PreparedStatement ps = null;
        ResultSet rs = null;
        String sql = "select * from house where let_name like '%"+name+"%' and let_type like '%"+huXing+"%'";
        try {
            ps = conn.prepareStatement(sql);
            rs = ps.executeQuery();
            while (rs.next()) {
                House house = new House();
                house.setLetId(rs.getInt("let_id"));
                house.setLetName(rs.getString("let_name"));
                house.setLetType(rs.getString("let_type"));
                house.setLetPrice(rs.getInt("let_price"));
                house.setLetPhone(rs.getString("let_phone"));
                house.setLetAddress(rs.getString("let_address"));
                list.add(house);
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally {
            BaseDao.close(rs, ps, conn);
        }
        return list;
    }


    public static void main(String[] args) {
    HouseDaoImpl houseDaoImpl = new HouseDaoImpl();

        System.out.println(houseDaoImpl.selectAll());
    }
}




HouseService.java(接口)

package com.swjd.service;

import java.util.List;

import com.swjd.bean.House;

public interface HouseService {
    
    public int add(House house);

    public int delete(int id);

    public int update(House house, int id);

    public List<House> selectAll();

    public List<House> selectMoHuByName(String name,String huXing);
}




HouseServiceImpl.java
package com.swjd.service;

import java.util.List;

import com.swjd.bean.House;
import com.swjd.dao.HouseDaoImpl;

public class HouseServiceImpl implements HouseService{
    HouseDaoImpl houseDaoImpl = new HouseDaoImpl();

    @Override
    public int add(House house) {
        int jg = houseDaoImpl.add(house);
        return jg;
    }

    @Override
    public int delete(int id) {
        int jg = houseDaoImpl.delete(id);
        return jg;
    }

    @Override
    public int update(House house, int id) {
        int jg = houseDaoImpl.update(house, id);
        return jg;
    }

    @Override
    public List<House> selectAll() {
        List<House> list = houseDaoImpl.selectAll();
        return list;
    }

    @Override
    public List<House> selectMoHuByName(String name,String huXing) {
        List<House> list = houseDaoImpl.selectMoHuByName(name,huXing);
        return list;
    }

}





Index.jsp(首页)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <div align="center">
    <form action="IndexServlet2" method="post">
        小区名称:<input name="xiaoQuName" value="${name}">
        户型:<select name="huXing"">
                <option value="一室一厅">一室一厅</option>
                <option value="一室一卫">一室一卫</option>
                <option value="三室两卫">三室两卫</option>
                <option value="两室两卫">两室两厅</option>
                <option value="三室一厅">三室一厅</option>
                <option value="">所有</option>
            </select>
        
            <input type="submit" value="查询">
    </form>
    </div>
    
    <table align="center" border="1">
        <tr bgcolor="white">
            <th>ID</th>
            <th>小区名城</th>
            <th>小区户型</th>
            <th>租金(元/月)</th>
            <th>联系电话</th>
            <th>小区地址</th>
            <th>操作</th>
        </tr>
        <c:forEach var="xiaoQu" items="${list}">
            <tr>
                <td align="center">${xiaoQu.letId }</td>
                <td align="center">${xiaoQu.letName }</td>
                <td align="center">${xiaoQu.letType }</td>
                <td align="center">${xiaoQu.letPrice }</td>
                <td align="center">${xiaoQu.letPhone }</td>
                <td align="center">${xiaoQu.letAddress }</td>
                <td align="center"><a href="update.jsp?id=${xiaoQu.letId}">修改</a> <a href="DeleteServlet?id1=${xiaoQu.letId}">删除</a></td>
            </tr>
        </c:forEach>
    </table>
    
</body>
</html>



update.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script>
    function reset1(){
        var a = document.getElementByName('xiaoQu')[0];
        var b = document.getElementByName('huXing')[0];
        var c = document.getElementByName('zuJin')[0];
        var d = document.getElementByName('dianHua')[0];
        var e = document.getElementByName('***')[0];
        
        a.value="";
        b.value="";
        c.value="";
        d.value="";
        e.value="";
        
    }
</script>
</head>
<body>
<%
    int id=Integer.parseInt(request.getParameter("id"));
%>
    <h1 align="center">修改出租房屋信息</h1>
    <form action="UpdateServlet" method="post">
        <table>
            <tr>
                <td>小区名称:</td>
                <td><input name="xiaoQu" required></td>
            </tr>
            <tr>
                <td>户型:</td>
                <td><input name="huXing" required></td>
            </tr>
            <tr>
                <td>租金:</td>
                <td><input name="zuJin" required></td>
            </tr>
            <tr>
                <td>联系电话:</td>
                <td><input name="dianHua" required></td>
            </tr>
            <tr>
                <td>小区地址:</td>
                <td><input name="***" required></td>
            </tr>
            <tr>
                <td><input type="submit" value="修改"></td>
                <td><input type="reset" value="重置" onclick="reset1()"></td>
            </tr>
        </table>
        <input name="ids" value="<%=id%>" style="display:none;">
    </form>
</body>
</html>


IndexServlet.java

package com.swjd.controller;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.swjd.bean.House;
import com.swjd.service.HouseServiceImpl;

/**
 * Servlet implementation class IndexServlet
 */
public class IndexServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public IndexServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        
        HouseServiceImpl houseServiceImpl = new HouseServiceImpl();
        
        List<House> list = houseServiceImpl.selectAll();
        request.setAttribute("list",list);
        request.getRequestDispatcher("Index.jsp").forward(request, response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}


IndexServlet2.java

package com.swjd.controller;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.swjd.bean.House;
import com.swjd.service.HouseServiceImpl;

/**
 * Servlet implementation class IndexServlet2
 */
public class IndexServlet2 extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public IndexServlet2() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        String name = request.getParameter("xiaoQuName");
        String huXing= request.getParameter("huXing");
        HouseServiceImpl houseServiceImpl = new HouseServiceImpl();
        List<House> list = houseServiceImpl.selectMoHuByName(name, huXing);
        request.setAttribute("list", list);
        request.setAttribute("name", name);
        request.setAttribute("huXing", huXing);
        request.getRequestDispatcher("Index.jsp").forward(request, response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}


UpdateServlet.java

package com.swjd.controller;

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;

import com.swjd.bean.House;
import com.swjd.service.HouseServiceImpl;

/**
 * Servlet implementation class UpdateServlet
 */
public class UpdateServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public UpdateServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        String xiaoQu = request.getParameter("xiaoQu");
        String huXing = request.getParameter("huXing");
        int price = Integer.parseInt(request.getParameter("zuJin"));
        String phone = request.getParameter("dianHua");
        String *** = request.getParameter("***");
        PrintWriter out = response.getWriter();
        int id = Integer.parseInt(request.getParameter("ids"));
        HouseServiceImpl houseServiceImpl = new HouseServiceImpl();
        House house = new House(xiaoQu,huXing,price,phone,***);
        int jg = houseServiceImpl.update(house, id);
        if (jg>0) {
            out.print("<script>alert('修改成功');location.href='IndexServlet';</script>");
        }else {
            out.print("<script>alert('修改失败');location.href='IndexServlet';</script>");
        }
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}


DeleteServlet.java

package com.swjd.controller;

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;

import com.swjd.service.HouseServiceImpl;

/**
 * Servlet implementation class DeleteServlet
 */
public class DeleteServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public DeleteServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        int id = Integer.parseInt(request.getParameter("id1"));
        HouseServiceImpl houseServiceImpl = new HouseServiceImpl();
        PrintWriter out = response.getWriter();
        int jg = houseServiceImpl.delete(id);
        if (jg>0) {
            out.print("<script>alert('删除成功');location.href='IndexServlet';</script>");
        }else {
            out.print("<script>alert('删除失败');location.href='IndexServlet';</script>");
        }
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}


需要用到的jar包


运行结果

可以实现修改,删除和条件查询