房屋出租信息管理
一.语言和环境
实现语言: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);
}
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);
}
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包
运行结果
可以实现修改,删除和条件查询