首先数据库脚本:
CREATE TABLE rent(
id INT(32) PRIMARY KEY AUTO_INCREMENT,
userName VARCHAR(22) NOT NULL,
carName VARCHAR(32) NOT NULL,
`status` INT(50) NOT NULL,
maturityDate DATE NOT NULL
)CHARSET=utf8;
INSERT INTO rent(userName,carName,`status`,maturityDate)
VALUES('周晓阳','京A3098W',1,'2022-06-17'),
('张三','冀DZ3344',0,'2022-08-17'),
('tom','豫JZ7631',0,'2023-06-17');
代码实现:
实体类:
private int id;
private String userName;
private String carName;
private int status;
private Date maturityDate;
//get+set方法
Dao层:
public interface RentDao {
//查询全部
List<Rent> getAll();
//模糊查询(更具车牌号查询)
Rent getRentInfoByCarNum(String carName);
//添加的方法
int addRent(Rent rent);
//修改的方法
int updateRent(int status,int id);
}
Dao--impl:
public class RentDaoImpl extends BaseDao implements RentDao {
/**
* 查询的方法
* @return
*/
@Override
public List<Rent> getAll() {
String sql="select * from rent";
ResultSet rs = this.executeQuery(sql, null);
List<Rent> rentList=new ArrayList<>();
try {
while (rs.next()){
Rent rent=new Rent();
rent.setId(rs.getInt("id"));
rent.setUserName(rs.getString("userName"));
rent.setCarNum(rs.getString("carName"));
rent.setStatus(rs.getInt("status"));
rent.setMaturityDate(rs.getDate("maturityDate"));
rentList.add(rent);
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return rentList;
}
/**
*模糊查询(更具车牌号查询)
* @param carName
* @return
*/
@Override
public Rent getRentInfoByCarNum(String carName) {
String sql="select * from rent where carName=?";
Object[] objects={carName};
ResultSet rs = this.executeQuery(sql, objects);
Rent rent=null;
try {
if (rs.next()){
rent=new Rent();
rent.setId(rs.getInt("id"));
rent.setUserName(rs.getString("userName"));
rent.setCarNum(rs.getString("carName"));
rent.setStatus(rs.getInt("status"));
rent.setMaturityDate(rs.getDate("maturityDate"));
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return rent;
}
@Override
public int addRent(Rent rent) {
String sql="INSERT INTO `rent`(`userName`,`carName`,`status`,`maturityDate`)\n" +
"VALUES (?,?,?,?)";
Object[] objects={rent.getUserName(),rent.getCarNum(),rent.getStatus(),rent.getMaturityDate()};
return this.executeUpdate(sql,objects);
}
@Override
public int updateRent(int status,int id) {
String sql="update rent set status=? where id=?";
Object[] objects={status,id};
return this.executeUpdate(sql,objects);
}
}
Service层:
public interface RentService {
//查询全部
List<Rent> getAll();
//模糊查询(更具车牌号查询)
boolean getRentInfoByCarName(String carName);
//添加的方法
boolean addRent(Rent rent);
//修改的方法
boolean updateRent(int status,int id);
}
ServiceImpl:
public class RentServiceImpl implements RentService {
RentDao rd=new RentDaoImpl();
@Override
public List<Rent> getAll() {
return rd.getAll();
}
@Override
public boolean getRentInfoByCarName(String carName) {
if (rd.getRentInfoByCarNum(carName)!=null){
return true;
}
return false;
}
@Override
public boolean addRent(Rent rent) {
if (rd.addRent(rent)>0){
return true;
}
return false;
}
@Override
public boolean updateRent(int status, int id) {
if (rd.updateRent(status, id)>0){
return true;
}
return false;
}
}
页面:
sho.jsp的展示数据的页面关键代码:
<table align="center" border="0">
<tr>
<td>
<h1 align="center">停车场车位租聘管理系统</h1>
</td>
</tr>
<tr>
<td><input type="button" value="车位租赁" onclick="add()"></td>
</tr>
<tr>
<td>
<table align="center" class="two" cellpadding="5" cellspacing="5">
<tr>
<th>租聘姓名</th>
<th>车牌号</th>
<th>租聘状态</th>
<th>到期日期</th>
<th>操作</th>
</tr>
<c:forEach items="${rentList}" var="rent">
<tr>
<td>${rent.userName}</td>
<td>${rent.carNum}</td>
<td id="s${rent.id}">
<c:if test="${rent.status==1}">已到期</c:if>
<c:if test="${rent.status==0}">租聘中</c:if>
</td>
<td>${rent.maturityDate}</td>
<td >
<a href="#" id="c${rent.id}" onclick="updateStatus(${rent.status},${rent.id})">
<c:if test="${rent.status==1}">已到期</c:if>
<c:if test="${rent.status==0}">退租</c:if>
</a>
</td>
</tr>
</c:forEach>
</table>
</td>
</tr>
</table>
隔行换色:
$("[class='two'] tr:even").css("background","pink");
$(" [class='two'] tr:odd").css("background","orange");
修改的额脚本:
function updateStatus(status,id) {
if(status==0){
var answer = confirm("确认修改吗?");
if(answer){
$.ajax({
type:"get",
url:"UpdateServlet?status="+status+"&id="+id,//两个参数 状态和id
dataType:"json",
success:function (data) {
//根据回调函数 true:修改成功,修改页面上的文字
if(data.exist==true){
document.getElementById("c"+id).innerText='已过期';
document.getElementById("s"+id).innerHTML='已过期';
alert("修改成功!");
}else{
alert("修改失败");
}
}
})
}
}else{
alert("您的车位已到期!")
}
点击跳转的脚本:
function add() {
window.location="add.jsp";
}
添加表单:(展示需求填写信息的表单)关键代码
<form action="AddServlet"method="post">
<table align="center">
<tr>
<td align="center" colspan="2"><h1 >添加车位租赁信息</h1></td>
</tr>
<tr>
<td>租赁人姓名</td>
<td><input type="text" name="userName" id="userName"></td>
</tr>
<tr>
<td>车牌号</td>
<td><input type="text" name="carName" id="carName" onblur="check()">
<p id="msg"></p>
</td>
</tr>
<tr>
<td>到期日期</td>
<td><input type="text" name="time" id="time"></td>
</tr>
<tr>
<td><input type="submit" value="提交"></td>
</tr>
</table>
</form>
光标移开的事件,关键代码:
<script>
function check() {
var carName = document.getElementById("carName");
$.post("ShowServlet","path=checkCarName&carName="+carName.value,function (data){
if (data=="true"){
document.getElementById("msg").innerText="该车位有车"
}else {
document.getElementById("msg").innerText="该车可以租车"
}
});
}
</script>
Servlet:
展示全部的Servlet(ShowServlet):
@WebServlet("/ShowServlet")
public class ShowServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
HttpSession session = request.getSession();
RentService rs=new RentServiceImpl();
String path = request.getParameter("path");
if (path==null){
List<Rent> rentList= rs.getAll();
request.setAttribute("rentList",rentList);
request.getRequestDispatcher("show.jsp").forward(request,response);
}else if(path.equals("checkCarName")){
String carName = request.getParameter("carName");
boolean f = rs.getRentInfoByCarName(carName);
response.getWriter().print(f);
}
}
}
添加的Servlet(AddServlet):
@WebServlet("/AddServlet")
public class AddServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=UTF-8");
RentService rs=new RentServiceImpl();
String userName = request.getParameter("userName");
String carName = request.getParameter("carName");
String time = request.getParameter("time");
int status=0;
Rent rent=new Rent();
rent.setStatus(status);
rent.setUserName(userName);
rent.setCarNum(carName);
Date dTime=null;
SimpleDateFormat sdf=new SimpleDateFormat("yyy-MM-dd");
try {
dTime=sdf.parse(time);
} catch (ParseException e) {
e.printStackTrace();
}
rent.setMaturityDate(dTime);
boolean flag = rs.addRent(rent);
if(flag){
response.getWriter().print("<script>alert('添加成功'); window.location='ShowServlet';</script>");
}else{
response.getWriter().print("<script>alert('添加失败'); window.location='ShowServlet';</script>");
}
}
}
修改的Servlet(UpdateServlet):
@WebServlet("/UpdateServlet")
public class UpdateServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
RentService rs=new RentServiceImpl();
String id = request.getParameter("id");
String status = request.getParameter("status");
int s=1;
if((Integer.valueOf(status)==0)){
s=1;
//调用修改的方法
boolean flag = rs.updateRent(s, Integer.valueOf(id));
HashMap<String,Object> resultMap=new HashMap<String,Object>();
resultMap.put("exist",flag);
response.getWriter().print(JSON.toJSONString(resultMap));
}
}
}