来源: SSM框架整合项目 :租房管理系统 – 谁将新樽辞旧月,今月曾经照古人 – 博客园
使用ssm框架整合,oracle数据库
框架:
Spring
SpringMVC
MyBatis
导包:
1, spring
2, MyBatis
3, mybatis-spring
4, fastjson
5, aspectweaver—-AspectJ框架
6, log4j—–打印日志信息
7, ojdbc6.jar
8, jstl.jar, standard.jar—-标准标签库
9, commons-logging-1.2.jar
10,……
项目结构:
配置文件同前面:http://www.cnblogs.com/jiangwz/p/7674275.html
项目代码:
model:
1 package com.hanqi.model; 2 3 public class House { 4 5 private Integer id; 6 private String keyword; 7 private String area; 8 private Integer squaremeter; 9 private Integer rent; 10 private String renttype; 11 private String housetype; 12 13 public House(Integer id, String keyword, String area, Integer squaremeter, Integer rent, String renttype, 14 String housetype) { 15 super(); 16 this.id = id; 17 this.keyword = keyword; 18 this.area = area; 19 this.squaremeter = squaremeter; 20 this.rent = rent; 21 this.renttype = renttype; 22 this.housetype = housetype; 23 } 24 25 public House() { 26 super(); 27 // TODO Auto-generated constructor stub 28 } 29 30 public Integer getId() { 31 return id; 32 } 33 34 public void setId(Integer id) { 35 this.id = id; 36 } 37 38 public String getKeyword() { 39 return keyword; 40 } 41 42 public void setKeyword(String keyword) { 43 this.keyword = keyword; 44 } 45 46 public String getArea() { 47 return area; 48 } 49 50 public void setArea(String area) { 51 this.area = area; 52 } 53 54 public Integer getSquaremeter() { 55 return squaremeter; 56 } 57 58 public void setSquaremeter(Integer squaremeter) { 59 this.squaremeter = squaremeter; 60 } 61 62 public Integer getRent() { 63 return rent; 64 } 65 66 public void setRent(Integer rent) { 67 this.rent = rent; 68 } 69 70 public String getRenttype() { 71 return renttype; 72 } 73 74 public void setRenttype(String renttype) { 75 this.renttype = renttype; 76 } 77 78 public String getHousetype() { 79 return housetype; 80 } 81 82 public void setHousetype(String housetype) { 83 this.housetype = housetype; 84 } 85 86 @Override 87 public String toString() { 88 return "House [id=" + id + ", keyword=" + keyword + ", area=" + area + ", SQUAREMETER=" + squaremeter 89 + ", rent=" + rent + ", renttype=" + renttype + ", housetype=" + housetype + "]"; 90 } 91 92 }
dao层:
1 package com.hanqi.dao; 2 3 import java.util.List; 4 5 import com.hanqi.model.House; 6 7 public interface HouseDao { 8 9 List<House> selectAll(); 10 11 int inserthouse(House house); 12 13 int delhouse(Integer id); 14 15 int updatehouse(House house); 16 17 List<House> selectinfo(House house); 18 19 }
dao层实现方法:
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper 3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 5 <mapper namespace="com.hanqi.dao.HouseDao"> 6 7 <select id="selectAll" resultType="House"> 8 select t.*from TABLE_HOUSE t 9 </select> 10 11 <insert id="inserthouse" parameterType="House" useGeneratedKeys="true" keyProperty="id" keyColumn="id"> 12 insert into TABLE_HOUSE values(test1.nextval,#{keyword},#{area},#{squaremeter},#{rent},#{renttype},#{housetype}) 13 </insert> 14 15 <delete id="delhouse" parameterType="Map"> 16 delete TABLE_HOUSE t where t.id=#{id} 17 </delete> 18 19 <update id="updatehouse" parameterType="Map"> 20 update TABLE_HOUSE t set t.keyword=#{keyword},t.area=#{area},t.squaremeter=#{squaremeter},t.rent=#{rent},t.renttype=#{renttype},t.housetype=#{housetype} where t.id=#{id} 21 </update> 22 23 <select id="selectinfo" resultType="House" parameterType="House"> 24 select t.* from TABLE_HOUSE t 25 <where> 26 <if test="keyword!=null"> 27 and t.keyword like #{keyword} 28 </if> 29 <if test="area!=null"> 30 and t.area=#{area} 31 </if> 32 <if test="renttype!=null"> 33 and t.renttype in #{renttype} 34 </if> 35 <if test="housetype!=null"> 36 and t.housetype=#{housetype} 37 </if> 38 </where> 39 40 </select> 41 </mapper>
controller控制器:
1 package com.hanqi.controller; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import org.springframework.beans.factory.annotation.Autowired; 7 import org.springframework.stereotype.Controller; 8 import org.springframework.ui.Model; 9 import org.springframework.web.bind.annotation.RequestMapping; 10 import org.springframework.web.bind.annotation.ResponseBody; 11 import org.springframework.web.bind.annotation.SessionAttributes; 12 import org.springframework.web.servlet.ModelAndView; 13 14 import com.alibaba.fastjson.JSONObject; 15 import com.hanqi.dao.HouseDao; 16 import com.hanqi.model.House; 17 18 @Controller 19 @SessionAttributes("currentUser") 20 @RequestMapping("/house") 21 public class HouseController { 22 23 @Autowired 24 private HouseDao houseDao; 25 26 @ResponseBody 27 @RequestMapping("/selectAll") 28 public JSONObject selectAll() { 29 JSONObject jo = new JSONObject(); 30 List<House> list = houseDao.selectAll(); 31 jo.put("total", list.size()); 32 jo.put("rows", list); 33 34 return jo; 35 } 36 37 @ResponseBody 38 @RequestMapping("/selectinfo") 39 public ModelAndView selectinfo(House house){ 40 41 house.setKeyword("%"+house.getKeyword()+"%"); 42 List<House> list = houseDao.selectinfo(house); 43 ModelAndView modelAndView = new ModelAndView(); 44 modelAndView.setViewName("houselook3"); 45 modelAndView.addObject("list",list); 46 47 return modelAndView; 48 49 } 50 51 @ResponseBody 52 @RequestMapping("/selectAll1") 53 public ModelAndView selectAll1(Model model) { 54 //List<House> list = houseDao.selectAll(); 55 //System.out.println(list); 56 57 //model.addAttribute("list", list); 58 59 ModelAndView mv = new ModelAndView("redirect:/houselook.jsp"); 60 return mv; 61 62 } 63 64 @RequestMapping("/selectAll2") 65 public String selectAll2(Model model) { 66 List<House> list = houseDao.selectAll(); 67 System.out.println(list); 68 model.addAttribute("list", list); 69 70 return "houselook2"; 71 } 72 73 @ResponseBody 74 @RequestMapping("/addhouse") 75 public ModelAndView addhouse(House house) { 76 int i=houseDao.inserthouse(house); 77 78 ModelAndView mv = new ModelAndView("redirect:/index.jsp"); 79 return mv; 80 81 } 82 83 @ResponseBody 84 @RequestMapping("/delhouse") 85 public ModelAndView delhouse(Integer id) { 86 int i=houseDao.delhouse(id); 87 ModelAndView mv = new ModelAndView("redirect:/index.jsp"); 88 return mv; 89 } 90 91 @ResponseBody 92 @RequestMapping("/updatehouse") 93 public ModelAndView updatehouse(House house) { 94 int i=houseDao.updatehouse(house); 95 ModelAndView mv = new ModelAndView("redirect:/index.jsp"); 96 return mv; 97 } 98 99 }
前台:
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8" 3 %> 4 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 6 <html> 7 <head> 8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 9 <script type="text/javascript" src="js/jquery-3.2.1.min.js"></script> 10 <script type="text/javascript" 11 src="jquery-easyui-1.5.1/jquery.easyui.min.js"></script> 12 <link rel="shortcut icon" href="img/logo1.jpg"/> 13 <link type="text/css" rel="stylesheet" 14 href="jquery-easyui-1.5.1/themes/icon.css"></link> 15 <link type="text/css" rel="stylesheet" 16 href="jquery-easyui-1.5.1/themes/default/easyui.css"></link> 17 <script type="text/javascript" 18 src="jquery-easyui-1.5.1/locale/easyui-lang-zh_CN.js"></script> 19 <title>租房管理</title> 20 <% 21 String basePath = request.getContextPath(); 22 %> 23 <!-- <script type="text/javascript" src="js/index.js"></script> --> 24 <style type="text/css"> 25 .datagrid-btable tr { 26 height: 30px; 27 } 28 </style> 29 </head> 30 31 <body class="easyui-layout"> 32 <!-- 添加商品 --> 33 <div data-options="region:'north',split:true" 34 style="height: 50px; background-color: cornflowerblue"> 35 36 </div> 37 <!-- 对话框开始 --> 38 <div data-options="region:'center',split:true" 39 style="padding: 5px; background: #eee"> 40 <div id="tabs" class="easyui-tabs" style="width: 100%; height: 100%;"> 41 <div title="主页" style=""> 42 <table id="table"></table> 43 <!-- 添加的表单 --> 44 <div id="zhong" style="display: none"> 45 <form id="addhouse" method="post" 46 style="width: 600px; padding: 20px"> 47 关键字:<input type="text" name="keyword"><br> 48 地区:<input type="text" name="area"><br> 49 面积:<input type="text" name="squaremeter"><br> 50 租金:<input type="text" name="rent"><br> 51 租赁方式:<input type="text" name="renttype"><br> 52 房屋类型:<input type="text" name="housetype"><br> 53 <input type="submit" name="" id="" value="提交" /><br> 54 <input type="reset" value="重置"><br> 55 </form> 56 </div> 57 <!-- 修改的表单 --> 58 <div id="gai" style="display: none"> 59 <form id="gaihouse" action="house/updatehouse.do" method="post" 60 style="width: 600px; padding: 20px"> 61 id:<input type="text" name="id"><br> 62 关键字:<input type="text" name="keyword"><br> 63 地区:<input type="text" name="area"><br> 64 面积:<input type="text" name="squaremeter"><br> 65 租金:<input type="text" name="rent"><br> 66 租赁方式:<input type="text" name="renttype"><br> 67 房屋类型:<input type="text" name="housetype"><br> 68 <input type="submit" name="" id="" value="提交" /><br> 69 <input type="reset" value="重置"><br> 70 </form> 71 </div> 72 </div> 73 74 </div> 75 </div> 76 <!-- 对话框结束 --> 77 <!-- 目录开始 --> 78 <div data-options="region:'west',split:true" width=210> 79 <div id="aa" class="easyui-accordion" 80 style="width: 200px; height: 543px"> 81 82 <div title="用户管理" style="overflow: auto; padding: 10px" > 83 <ul> 84 <li class="lis"><a id="addhouse" class="easyui-linkbutton ab" 85 plain="true" >添加房屋信息(先用右边按钮)</a></li> 86 <li class="lis"><a href="<%=basePath %>/houselook.jsp" class="easyui-linkbutton ab" 87 plain="true">查看租房信息2</a></li> 88 <li class="lis"><a href="<%=basePath %>/house/selectAll2.do" class="easyui-linkbutton ab" 89 plain="true">查看租房信息3</a></li> 90 <li class="lis"><a href="houselook3.jsp" class="easyui-linkbutton ab" 91 plain="true">前往租房页面</a></li> 92 <li class="lis"><a href="#" class="easyui-linkbutton ab" 93 plain="true">修改用户</a></li> 94 </ul> 95 </div> 96 </div> 97 </div> 98 <!-- 底部声明 --> 99 <div data-options="region:'south',split:true" 100 style="height: 40px; line-height: 40px; vertical-align: center; text-align: center;"> 101 玛雅网络版权声明</div> 102 <!-- 目录结束 --> 103 </body> 104 </html> 105 <script type="text/javascript"> 106 107 $(function() { 108 $('#addhouse').form({ 109 url:'house/addhouse.do', 110 onSubmit: function(){ 111 return $('#addhouse').form('validate');//如果有为空则返回false阻止提交 112 }, 113 success:function(data){ 114 if(data=="true"){ 115 alert("添加成功"); 116 }else if(data=="false"){ 117 alert("请检查信息正确!"); 118 } 119 } 120 }); 121 122 $('#table').datagrid({ 123 url : 'house/selectAll.do', 124 striped:true,//显示斑马线 125 autoRowHeight:false,//定义设置行的高度,根据该行的内容。设置为false可以提高负载性能。这里不设置,css中设置的行高无效 126 singleSelect:true,//只允许选择一行 127 pagination : true, 128 pageNumber : 1, 129 pageSize : 1, 130 pageList : [ 1, 3, 5 ], 131 132 toolbar : [{ 133 iconCls : 'icon-edit', 134 text : "添加", 135 handler : function() { 136 var a = $(this).text(); 137 138 $('#zhong').dialog({ 139 width : 800, 140 height : 500, 141 title : a, 142 //closed : false, 143 cache : false, 144 modal : true 145 }); 146 147 148 } 149 }, '-',{ 150 iconCls : 'icon-edit', 151 text : "修改", 152 handler : function() { 153 var a = $(this).text(); 154 $('#gai').dialog({ 155 width : 800, 156 height : 500, 157 title : a, 158 //closed : false, 159 cache : false, 160 modal : true 161 }); 162 $('#gai').dialog("open"); 163 var r = $("#table").datagrid("getSelected");//获取被选中的行,返回对象 164 $("#gaihouse").form("load", r);//将被选中的信息放到弹出的的表单中,富文本编辑器的内容无法显示 165 } 166 }, '-', 167 { 168 iconCls : 'icon-cancel', 169 text : "删除", 170 handler : function() { 171 var id=-1; 172 id = $('#table').datagrid("getSelected").id; 173 if(id>-1){ 174 var r1 = confirm("确定删除编号为 "+id+" 的房屋信息吗?"); 175 if(r1) { 176 window.location.href="house/delhouse.do?id="+id; 177 alert("删除成功"); 178 } 179 }else{ 180 alert("请选中需要删除的商品"); 181 } 182 183 } 184 } ], 185 186 frozenColumns : [ [ { 187 field : '', 188 title : '', 189 width : 20, 190 checkbox : true 191 } ] ], 192 columns : [ [ { 193 field : "id", 194 title : "信息编号", 195 width:65 196 },{ 197 field : "keyword", 198 title : "关键字", 199 width:180 200 }, 201 { 202 field : "area", 203 title : "地区", 204 width:60 205 }, { 206 field : "squaremeter", 207 title : "面积", 208 width:60 209 }, { 210 field : "rent", 211 title : "租金", 212 width:40 213 } , { 214 field : "renttype", 215 title : "租赁方式", 216 width:60 217 } ,{ 218 field : "housetype", 219 title : "房屋类型", 220 width : 60 221 } ] ], 222 223 }); 224 }); 225 </script>
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8" import="java.util.List,com.hanqi.model.House,com.hanqi.controller.HouseController"%> 3 <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 5 <html> 6 <head> 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 8 <title>Insert title here</title> 9 <script type="text/javascript" src="js/jquery-3.2.1.min.js"></script> 10 <script type="text/javascript" 11 src="jquery-easyui-1.5.1/jquery.easyui.min.js"></script> 12 <link rel="shortcut icon" href="img/logo1.jpg"/> 13 <link type="text/css" rel="stylesheet" 14 href="jquery-easyui-1.5.1/themes/icon.css"></link> 15 <link type="text/css" rel="stylesheet" 16 href="jquery-easyui-1.5.1/themes/default/easyui.css"></link> 17 <script type="text/javascript" 18 src="jquery-easyui-1.5.1/locale/easyui-lang-zh_CN.js"></script> 19 </head> 20 <body> 21 <form action="house/selectinfo.do" method="post"> 22 区域:<input type="radio" name="area" id="s1" value="张店"/> 23 <label for="s1">张店</label> 24 <input type="radio" name="area" id="s2" value="淄川"/> 25 <label for="s2">淄川</label> 26 <input type="radio" name="area" id="s0" value="周村"/> 27 <label for="s0">周村</label><br> 28 租赁类型:<input type="checkbox" name="renttype" id="s3" value="整租"/> 29 <label for="s3">整租</label> 30 <input type="checkbox" name="renttype" id="s4" value="合租"/> 31 <label for="s4">合租</label> 32 <input type="checkbox" name="renttype" id="s5" value="其他"/> 33 <label for="s5">其他</label><br> 34 房屋类型:<input type="radio" name="housetype" id="s6" value="三室一厅"/> 35 <label for="s6">三室一厅</label> 36 <input type="radio" name="housetype" id="s7" value="自建房"/> 37 <label for="s7">自建房</label> 38 <input type="radio" name="housetype" id="s8" value="其他"/> 39 <label for="s8">其他</label><br> 40 关键字:<input type="text" name="keyword"> 41 <input type="submit" value="查询"> 42 </form> 43 44 <% 45 //HouseController hc=new HouseController(); 46 List<House> list=(List<House>)request.getAttribute("list"); 47 if(list!=null){ 48 out.print("<table border='1'>"); 49 for(House h:list){ 50 out.print("<tr>"); 51 out.print("<td>"+h.getKeyword()+"</td>"); 52 out.print("<td>"+h.getArea()+"</td>"); 53 out.print("<td>"+h.getSquaremeter()+"</td>"); 54 out.print("<td>"+h.getRent()+"</td>"); 55 out.print("<td>"+h.getRenttype()+"</td>"); 56 out.print("<td>"+h.getHousetype()+"</td>"); 57 out.print("</tr>"); 58 } 59 out.print("</table>"); 60 } 61 %> 62 </body> 63 </html>