出租房屋信息管理(JSP作業)

一.語言和環境

  1. 實現語言:JAVA語言.
  2. 環境要求: Eclipse或MyEclipse,MySQL.
  3. 驅動包:提供對應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('diZhi')[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="diZhi" 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 dizhi = request.getParameter("diZhi");
		PrintWriter out = response.getWriter();
		int id = Integer.parseInt(request.getParameter("ids"));
		HouseServiceImpl houseServiceImpl = new HouseServiceImpl();
		House house = new House(xiaoQu,huXing,price,phone,dizhi);
		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包

在這裏插入圖片描述

運行結果

在這裏插入圖片描述
可以實現修改,刪除和條件查詢

寫在最後
  • 隨風奔跑自由是方向
  • 追逐雷和閃電的力量
  • 把浩瀚的海洋裝進我胸膛
  • 即使在小的帆也能遠航
  • 2020年註定不平凡
  • 一起加油
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章