1.学习使用SQL的语句
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bw.dao.IHouseDao">
<!--//login验证-->
<select id="findPerson" parameterType="Person" resultType="Person">
select * from t_person where person_name=#{personName } and person_pwd=#{personPwd}
</select>
<!--//房屋信息的列表展示 及分页查询 及模糊查询-->
<select id="findHouseAll" parameterType="Map" resultType="HolderHouse">
select * from t_house h,t_holder ho where h.person_id=ho.id
<if test="begin!=null and pageSize!=null">
limit #{begin},#{pageSize}
</if>
<if test="houseName!=null and houseName!=''">
AND h.house_name LIKE concat(concat('%',#{houseName}),'%')
</if>
<if test="holderName!=null and holderName!=''">
and ho.holder_name=#{holderName}
</if>
</select>
<!--//查询户主信息-->
<select id="selHolder" resultType="Holder">
select * from t_holder
</select>
<!--//添加房屋信息-->
<insert id="addHouse" parameterType="House" useGeneratedKeys="true">
INSERT INTO t_house VALUES
(null,#{houseName},#{houseImg},#{houseArea},#{housePrice},#{houseTotal},#{personId},NOW(),NOW())
</insert>
<!--//删除房屋信息-->
<delete id="delHouse" parameterType="int">
delete from t_house where id =#{id}
</delete>
<!--//批量删除房屋信息-->
<delete id="delBatchHouse" parameterType="String">
delete from t_house where id IN(#{ids})
</delete>
<!--//修改房屋信息-->
<update id="updateHouse" parameterType="House">
UPDATE t_house set house_name=#{houseName},house_area=#{houseArea},
house_price=#{housePrice},house_total=#{houseTotal},buy_date=NOW()
where id=#{id}
</update>
<!--//根据条件查询房屋信息-->
<select id="selHouseById" parameterType="House" resultType="HolderHouse">
select * from t_house h,t_holder ho
<where>
h.person_id=ho.id
<if test="id!=0">
and h.id=#{id}
</if>
<if test="personId!=0">
and h.person_id=#{personId}
</if>
<if test="houseName!=null and houseName!=''">
and h.house_name=#{houseName}
</if>
</where>
</select>
</mapper>
2.mapper文件对应的dao层方法
package com.bw.dao;
import com.bw.pojo.Holder;
import com.bw.pojo.HolderHouse;
import com.bw.pojo.House;
import com.bw.pojo.Person;
import java.util.List;
import java.util.Map;
public interface IHouseDao {
//login验证
Person findPerson(Person person);
//房屋信息的列表展示 及分页查询 及模糊查询
List<HolderHouse> findHouseAll(Map<String,Object> map);
//查询户主信息
List<Holder> selHolder();
//添加房屋信息
int addHouse(House house);
//删除房屋信息
int delHouse(int id);
//pi批量删除房屋信息
int delBatchHouse(String ids);
//修改房屋信息
int updateHouse(House house);
//根据条件查询房屋信息
List<HolderHouse> selHouseById(House house);
}
3.impl,Service实现类的redis使用
/**
* TODO redis 缓存
* @return
*/
@Override
public List<Holder> selHolder(HttpSession session) {
RedisPool redis= RedisUtil.getRedisPool("friendHu");
List<Holder> holderNameList=new ArrayList<>();
List<Holder> holders= iHouseDao.selHolder();
for (Holder ho: holders) {
holderNameList.add(ho);
}
redis.set("holderNameList",holderNameList);
List<Holder> holderList=(List)JSONArray.parseArray(redis.get("holderNameList"));
/* redis.lpush("holderList",holderNameList);
redis.lpop();
List<Holder> holderList=(List<Holder>) redis.lrange("holderList",30,5000,Holder.class);*/
System.out.println("Impl:"+holderList);
session.setAttribute("holderNameList",holderList);
return null;
}
4.控制层的业务交互
package com.bw.controller;
import com.bw.pojo.HolderHouse;
import com.bw.pojo.House;
import com.bw.pojo.Person;
import com.bw.service.IHouseService;
import com.bw.util.FileUtil;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Controller
@RequestMapping("/house")
public class HouseController {
@Resource
private IHouseService iHouseService;
//login验证 和 根据户主名查询
@RequestMapping(value = "/findPerson",method = RequestMethod.POST)
@ResponseBody
public Map<String,Object> findPerson(Person person,HttpSession session,String holderName ){
Map<String,Object> map=new HashMap<>();
session.setAttribute("holderName",holderName);
Person person1= iHouseService.findPerson(person);
if(person1!=null){
map.put("flag",1);
}
map.put("flag2","查询成功!");
return map;
}
//房屋信息的列表展示 及分页查询 及模糊查询
@RequestMapping(value = "/findHouseAll",method = RequestMethod.POST)
public ModelAndView findHouseAll(ModelAndView modelAndView,Integer begin,Integer pageSize,String houseName){
Map<String,Object> map=new HashMap<>();
map.put("begin",begin);
map.put("pageSize",pageSize);
map.put("houseName",houseName);
List<HolderHouse> houseList=iHouseService.findHouseAll(map);
modelAndView.addObject("houseList",houseList);
modelAndView.setViewName("show");
return modelAndView;
}
//根据户主名查询
@RequestMapping(value = "/fuzzyHouseAll",method = RequestMethod.GET)
public ModelAndView fuzzyHouseAll(ModelAndView modelAndView,HttpSession session){
Map<String,Object> map=new HashMap<>();
map.put("holderName",session.getAttribute("holderName"));
List<HolderHouse> houseList=iHouseService.findHouseAll(map);
modelAndView.addObject("houseList",houseList);
modelAndView.setViewName("show");
return modelAndView;
}
//房屋信息的列表展示get请求
@RequestMapping(value = "/findAllHouse",method = RequestMethod.GET)
public ModelAndView findAllHouse(ModelAndView modelAndView,HttpSession session){
Map<String,Object> map=new HashMap<>();
iHouseService.selHolder(session);
List<HolderHouse> houseList=iHouseService.findHouseAll(map);
modelAndView.addObject("houseList",houseList);
modelAndView.setViewName("show");
return modelAndView;
}
/*//根据户主查询信息 跳转页面
@RequestMapping(value = "/findHouseByName",method = RequestMethod.GET)
@ResponseBody
public Map<String,Object> findHouseByName(HttpSession session,int personId){
Map<String,Object> map=new HashMap<>();
map.put("flag","查询成功!");
session.setAttribute("psersonId",personId);
return map;
}*/
//查询户主信息
@RequestMapping(value = "/selHolder",method = RequestMethod.GET)
public ModelAndView selHolder(ModelAndView modelAndView, HttpSession session){
iHouseService.selHolder(session);
modelAndView.setViewName("insert");
return modelAndView;
}
//验证房产名称不能为空
@RequestMapping(value = "/selHouseByName",method = RequestMethod.POST)
@ResponseBody
public Map<String,Object> selHouseByName(String houseName){
House house= new House();
house.setHouseName(houseName);
Map<String,Object> map=new HashMap<>();
List<HolderHouse> holderHouses= iHouseService.selHouseById(house);
if(holderHouses.size()==0){
map.put("flag",1);
}
return map;
}
//添加房屋信息 注意上传文件
@RequestMapping(value = "/addHouse",method = RequestMethod.POST)
public ModelAndView addHouse(@RequestParam(value = "file",required = false) MultipartFile file,HttpServletRequest request, ModelAndView modelAndView, House house)throws Exception{
//判断文件上传是否为空
if (!file.isEmpty()){
//把上传的路径转为字符串存入路径
String picture= FileUtil.uploadFile(file,request);
//把路径存入
house.setHouseImg(picture);
}else {
house.setHouseImg("");
}
house.setHouseTotal(house.getHousePrice()*house.getHouseArea());
iHouseService.addHouse(house);
modelAndView.setViewName("redirect:/house/findAllHouse.action");
return modelAndView;
}
//删除房屋信息
@RequestMapping(value = "/delHouse",method = RequestMethod.GET)
public ModelAndView delHouse(ModelAndView modelAndView,int id){
iHouseService.delHouse(id);
modelAndView.setViewName("redirect:/house/findAllHouse.action");
return modelAndView;
}
//批量删除房屋信息 sql 可$也可#
@RequestMapping(value = "/delBatchHouse",method = RequestMethod.POST)
@ResponseBody
public Map<String,Object> delBatchHouse(String ids){
Map<String,Object> map=new HashMap<>();
iHouseService.delBatchHouse(ids);
map.put("flag","批量删除成功!");
return map;
}
//修改房屋信息
@RequestMapping(value = "/updateHouse",method = RequestMethod.POST)
public ModelAndView updateHouse(ModelAndView modelAndView,House house){
house.setHouseTotal(house.getHousePrice()*house.getHouseArea());//总价
iHouseService.updateHouse(house);
modelAndView.setViewName("redirect:/house/findAllHouse.action");
return modelAndView;
}
//根据id查询房产信息返回修改页面
@RequestMapping(value = "/selHouseById",method = RequestMethod.GET)
public ModelAndView selHouseById(ModelAndView modelAndView,int id){
House house=new House();
house.setId(id);
List<HolderHouse> holderHouses= iHouseService.selHouseById(house);
modelAndView.addObject("houses",holderHouses.get(0));
modelAndView.setViewName("update");
return modelAndView;
}
}