zoukankan      html  css  js  c++  java
  • 租房子的例题后端写法

    如下图的目录结构:

    HouseMapper.xml

     <resultMap id="BaseResultMap" type="com.hanqi.model.House">
        <id column="ID" jdbcType="DECIMAL" property="id" />
        <result column="KEYWORD" jdbcType="VARCHAR" property="keyword" />
        <result column="AREA" jdbcType="VARCHAR" property="area" />
        <result column="SQUAREMETER" jdbcType="DECIMAL" property="squaremeter" />
        <result column="RENT" jdbcType="DECIMAL" property="rent" />
        <result column="RENTTYPE" jdbcType="VARCHAR" property="renttype" />
        <result column="HOUSETYPE" jdbcType="VARCHAR" property="housetype" />
      </resultMap>
      <sql id="Base_Column_List">
        ID, KEYWORD, AREA, SQUAREMETER, RENT, RENTTYPE, HOUSETYPE
      </sql>
      
      
    <!--   根据id查数据 -->
      <select id="selectByPrimaryKey"  resultMap="BaseResultMap">
        select 
        <include refid="Base_Column_List" />
        from HAHA.HOUSE
        where ID = #{id}
      </select>
        
       <!--  查询所有数据 -->
      <select id="selectAll" resultMap="BaseResultMap">
            select
           <include refid="Base_Column_List" />
           from HAHA.HOUSE 
      </select>
      
     <!--  根据复选框选择的内容进行查询 -->
      <select id="selectByCheck" resultMap="BaseResultMap" parameterType="Map">
            select 
           <include refid="Base_Column_List" />
           from house h
           <where>
    			<if test="p1 != null">
    				and h.area in 
    				<foreach collection="p1" item="a" close=")" open="(" separator=",">
    					#{a}
    				</foreach>
    			</if>
    			<if test="p2 != null">
    				and h.renttype in 
    				<foreach collection="p2" item="r" close=")" open="(" separator=",">
    					#{r}
    				</foreach>
    			</if>
    			<if test="p3 != null">
    				and h.housetype in 
    				<foreach collection="p3" item="h" close=")" open="(" separator=",">
    					#{h}
    				</foreach>
    			</if>
    			<if test="p4 != null">
    				and h.keyword like '%'||#{p4}||'%'
    			</if>
    		</where>
      
      </select>
      
     <!--  删除数据 -->
      <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
        delete from HAHA.HOUSE
        where ID = #{id,jdbcType=DECIMAL}
      </delete>
      
      <!-- 插入数据 -->
      <insert id="insert" parameterType="com.hanqi.model.House"> 
        insert into HAHA.HOUSE (ID, KEYWORD, AREA, 
          SQUAREMETER, RENT, RENTTYPE, 
          HOUSETYPE)
        values (sq_test.nextval, #{keyword,jdbcType=VARCHAR}, #{area,jdbcType=VARCHAR}, 
          #{squaremeter,jdbcType=DECIMAL}, #{rent,jdbcType=DECIMAL}, #{renttype,jdbcType=VARCHAR}, 
          #{housetype,jdbcType=VARCHAR})
      </insert>
    
    <update id="updateByPrimaryKeySelective" parameterType="com.hanqi.model.House"> <!-- 更新数据 -->
        update HAHA.HOUSE
        <set>
          <if test="keyword != null">
            KEYWORD = #{keyword,jdbcType=VARCHAR},
          </if>
          <if test="area != null">
            AREA = #{area,jdbcType=VARCHAR},
          </if>
          <if test="squaremeter != null">
            SQUAREMETER = #{squaremeter,jdbcType=DECIMAL},
          </if>
          <if test="rent != null">
            RENT = #{rent,jdbcType=DECIMAL},
          </if>
          <if test="renttype != null">
            RENTTYPE = #{renttype,jdbcType=VARCHAR},
          </if>
          <if test="housetype != null">
            HOUSETYPE = #{housetype,jdbcType=VARCHAR},
          </if>
        </set>
        where ID = #{id,jdbcType=DECIMAL}
        <!-- where ID = #{id} -->
      </update>
    

    HouseMapper.java

    public interface HouseMapper {
        int deleteByPrimaryKey(Integer id);//删除数据
    
        int insert(House record);   //用来插入数据的
    
        int insertSelective(House record); 
        
        List<House> selectAll();  //查询全部数据的
    
        House selectByPrimaryKey(Integer id);  //根据id查询信息
        
        List<House> selectByCheck(Map<String, Object> map); //根据复选框选择的内容进行查询
    
        int updateByPrimaryKeySelective(House record); //更新数据
    
        int updateByPrimaryKey(House record);
    }
    

    HouserService.java

    public interface HouseService {
    	  public int insertHouse(House house);  //插入数据
    	  public List<House> selectAll();  //查询所有数据
    	  public House selectByID(Integer id);  //根据id查数据
    	  public int updateHouse(House house); //更新数据
    	  public int deleteHouse(Integer id); //删除数据
    	  public List<House> selectByCheck(Map<String, Object> map);  //根据复选框选择查询信息
    }
    

    HouserServiceImpl.java

    @Repository
    public class HouseServiceImpl implements HouseService {
       @Autowired
    	private HouseMapper houseMapper;
    	@Override
    	public int insertHouse(House house) {  //插入数据
    		int h = houseMapper.insert(house);
    		 return h;
    	}
    	@Override
    	public List<House> selectAll() {  //查询全部信息
    		List<House> list = houseMapper.selectAll();
    		return list;
    	}
    	@Override
    	public House selectByID(Integer id) {  //根据id进行信息的查询
    		House h2 = houseMapper.selectByPrimaryKey(id);
    		return h2;
    	}
    	@Override
    	public int updateHouse(House house) {  //数据更新
    		int h3 = houseMapper.updateByPrimaryKeySelective(house);
    		return h3;
    	}
    	@Override
    	public int deleteHouse(Integer id) { //删除数据
    		int h4 = houseMapper.deleteByPrimaryKey(id);
    		return h4;
    	}
    	@Override
    	public List<House> selectByCheck(Map<String, Object> map) {  //根据复选框选择的内容进行查询
    		List<House> list2 = houseMapper.selectByCheck(map);
    		return list2;
    	}
    
    }
    

    HouseController.java

    @Controller
    @RequestMapping("/house2")
    public class HouseController {
    		@Autowired
           private HouseService  houseService;
    		
    		@RequestMapping("/toXin")
    		public String toInsert() {   //在搜索页面上点击添加新数据跳到insert.jsp页面上
    			
    			return "insert";
    			
    		}
           
           @RequestMapping("/insert")
           public String insertHouse(House house,Model md) {  //插入数据
        	   int h = houseService.insertHouse(house);
        	   if (h > 0) {
        		   md.addAttribute("msg", "插入成功!");
    		}else {
    			  md.addAttribute("msg", "插入失败!");
    		}
    		return "success";
        	   
         }
           
           @RequestMapping("/select")
           public ModelAndView selectAll(ModelAndView mav){  //查询全部数据
        	   List<House> list = houseService.selectAll();
        	   if(list.size() > 0){
        		    mav.addObject("infolist", list);
        		   // mav.setViewName("forward:/manage.jsp");  //不走视图解析器了,直接来配置一下地址
        		    mav.setViewName("manage");
        	   }else {
        		    mav.setViewName("fail");
        	   }
        	   	return mav;
           }
           
           @RequestMapping("/selectbyid")
           public ModelAndView selectByID(ModelAndView mav,Integer id) {  //根据id查询信息
        	  House h =  houseService.selectByID(id);
        	   mav.addObject("list", h);
        	   mav.setViewName("update");
        	   return mav;
           }
           
           
           @RequestMapping("/update")
           public String updateinfo(Model md,House house) {  //更新数据
        	   int h2 = houseService.updateHouse(house);
        	   System.out.println(h2);
        	   if (h2 > 0) {
        		   md.addAttribute("msg", "更新成功!");
    			  //mav.setViewName("redirect:/house2/select.do"); //重定向,目的是为了能够进行更新操作后,再次发送请求,看一下自己更新的结果
    		}else {
    			  md.addAttribute("msg", "更新失败!");
    		}
    		return "success";
           }
           
           @RequestMapping("/delete")
           public String deleteHouse(Model md,Integer id) {  //删除信息
        	   int h3 = houseService.deleteHouse(id);
        	   if (h3 > 0) {
    			   md.addAttribute("msg","删除成功!");
    		}else {
    			md.addAttribute("msg","删除失败!");
    		}
    		return "success";
           }
           //根据复选框里面选择的选项进行信息的查询
           @RequestMapping("/selectByCheck")
           public String selectByCheck( String[] area,
        		   String[] ht, String[] rt,String keyword,
        		   Model md) {
        	      Map<String,Object> map =  MapUtil.mp(area,ht,rt,keyword);
        	     
        	      List<House> list2 = houseService.selectByCheck(map);
        	      md.addAttribute("houselist",list2);
        	   return "forward:/seareach.jsp" ;
           }
           
    }
    

    在com.hanqi.util 包下面的MapUtil.java

    public class MapUtil {  //往map集合里面添加对象,直接在控制层里面进行调用
    	public static Map<String, Object> mp(Object... objs) {  //静态的方法,直接调用
    		Map<String, Object> map = new HashMap<String, Object>();
    		int i = 1;
    		for(Object o : objs) {
    			map.put("p" + i, o);
    			i++;
    		}
    		return map;
    	}
    }
    
  • 相关阅读:
    linux命令-ps
    solr参数说明
    CAP原理和BASE思想
    java多线程文件上传服务器
    swift的简介
    浅谈对【OSI七层协议】的理解
    手写简易WEB服务器
    JVM知识整理和学习(转载并修改)
    多线程学习笔记六
    多线程学习笔记五
  • 原文地址:https://www.cnblogs.com/zuo72/p/8503870.html
Copyright © 2011-2022 走看看