• SSM整合多对多表关系


    sql语句 

     1 <mapper namespace="com.bw.dao.HouDao">
     2     <select id="list" resultMap="houseMap">
     3         select * from house
     4         
     5         <trim prefix="where" prefixOverrides="and|or">
     6             <if test="h_address!=null and h_address!=''"> and h_address like concat('%',#{h_address},'%')</if>
     7         </trim>
     8     </select>
     9     
    10     <resultMap type="House" id="houseMap">
    11         <id property="h_id" column="h_id"/>
    12         <result property="h_address" column="h_address"/>
    13         <result property="h_use" column="h_use"/>
    14         <result property="h_area" column="h_area"/>
    15         <result property="h_pic" column="h_pic"/>
    16         <collection property="owner" 
    17         
    18         select="com.bw.dao.HouDao.findHid"
    19         column="h_id"
    20         >
    21         </collection>
    22     </resultMap>
    23     
    24     <select id="findHid" resultType="Owner">
    25         select * from owner join h_o on owner.o_id=h_o.oid
    26         
    27         where h_o.hid=#{hid}
    28     </select>
    29     
    30     <select id="ownerAll" resultType="Owner">
    31         select * from owner
    32     </select>
    33     
    34     <insert id="add" useGeneratedKeys="true" keyProperty="h_id">
    35         insert into house values(null,#{h_address},#{h_use},#{h_area},#{h_pic})
    36     </insert>
    37     
    38     <insert id="addHO">
    39         insert into h_o values
    40         <foreach collection="oids" item="oids" separator=",">
    41             (#{h_id},#{oids})
    42         </foreach>
    43     </insert>
    44     
    45     <select id="selectOne" resultMap="houseMap">
    46         select * from house where h_id=#{h_id}
    47     </select>
    48     
    49     <update id="update">
    50         update house set h_address=#{h_address},h_use=#{h_use},h_area=#{h_area},h_pic=#{h_pic} where h_id=#{h_id}
    51     </update>
    52     
    53     <delete id="delHO">
    54         delete from h_o where hid=#{h_id}
    55     </delete>
    56     
    57     <select id="login" resultType="java.lang.Integer">
    58         select count(*) from sysuser where user_name=#{username} and user_password=#{password}
    59     </select>
    60 </mapper>

    dao层

     1 public interface HouDao {
     2 
     3     List<House> list(Condition con);
     4     
     5     List<Owner> findHid(Integer hid);
     6 
     7     List<Owner> ownerAll();
     8 
     9     int add(House hou);
    10 
    11     int addHO(@t("h_id")Integer h_id, @Param("oids")int[] oids);
    12 
    13     House selectOne(Integer h_id);
    14 
    15     int update(House hou);
    16 
    17     int delHO(@Param("h_id")Integer h_id, @Param("oids")int[] oids);
    18 
    19     Integer login(@Param("username")String username, @Param("password")String password);
    20 
    21 }

    server层

     1 @Service("service")
     2 public class HouServiceImpl implements HouService{
     3     @Autowired
     4     private HouDao dao;
     5 
     6     @Override
     7     public List<House> list(Condition con) {
     8         // TODO Auto-generated method stub
     9         return dao.list(con);
    10     }
    11 
    12     @Override
    13     public List<Owner> ownerAll() {
    14         // TODO Auto-generated method stub
    15         return dao.ownerAll();
    16     }
    17 
    18     @Override
    19     public void add(House hou) {
    20         int i=dao.add(hou);
    21         if (i>0) {
    22             i=dao.addHO(hou.getH_id(),hou.getOids());
    23         }
    24     }
    25 
    26     @Override
    27     public House selectOne(Integer h_id) {
    28         // TODO Auto-generated method stub
    29         return dao.selectOne(h_id);
    30     }
    31 
    32     @Override
    33     public void update(House hou) {
    34         int i=dao.update(hou);
    35         if (i>0) {
    36             i=dao.delHO(hou.getH_id(),hou.getOids());
    37             if (i>0) {
    38                 i=dao.addHO(hou.getH_id(), hou.getOids());
    39             }
    40         }
    41     }
    42 
    43     @Override
    44     public boolean login(String username, String password) {
    45         // TODO Auto-generated method stub
    46         return dao.login(username,password)>0;
    47     }
    48 }

    controller层

      1 @Controller
      2 public class HouController {
      3     @Autowired
      4     private HouService service;
      5     
      6     @RequestMapping("list.do")
      7     public String list(Model m,Condition con) {
      8         if (con.getPageNum()==null) {
      9             con.setPageNum(1);
     10         }
     11         PageHelper.startPage(con.getPageNum(), 3);
     12         List<House> list=service.list(con);
     13         PageInfo<House> page=new PageInfo<House>(list);
     14         
     15         m.addAttribute("page", page);
     16         m.addAttribute("list", list);
     17         m.addAttribute("con", con);
     18         return "list";
     19         
     20     }
     21     
     22     @ResponseBody
     23     @RequestMapping("ownerAll.do")
     24     public Object ownerAll() {
     25         return service.ownerAll();
     26         
     27     }
     28     
     29     @RequestMapping("add.do")
     30     public String add(House hou,HttpServletRequest request,MultipartFile myFile) throws IllegalStateException, IOException {
     31         String realName = myFile.getOriginalFilename();
     32         
     33         hou.setH_pic(realName);
     34         
     35         String endName = realName.substring(realName.lastIndexOf("."));
     36         
     37         String startName = UUID.randomUUID().toString();
     38         
     39         String realPath = request.getServletContext().getRealPath("/load/");
     40         
     41         File file=new File(realPath+startName+endName);
     42         
     43         myFile.transferTo(file);
     44         
     45         hou.setH_pic(startName+endName);
     46         
     47         service.add(hou);
     48         
     49         return "redirect:list.do";
     50         
     51     }
     52     
     53     @ResponseBody
     54     @RequestMapping("selectOne.do")
     55     public Object selectOne(Integer h_id) {
     56         return service.selectOne(h_id);
     57         
     58     }
     59     
     60     @RequestMapping("update.do")
     61     public String update(House hou,HttpServletRequest request,MultipartFile myFile) throws IllegalStateException, IOException {
     62         String realName = myFile.getOriginalFilename();
     63         
     64         hou.setH_pic(realName);
     65         
     66         String endName = realName.substring(realName.lastIndexOf("."));
     67         
     68         String startName = UUID.randomUUID().toString();
     69         
     70         String realPath = request.getServletContext().getRealPath("/load/");
     71         
     72         File file=new File(realPath+startName+endName);
     73         
     74         myFile.transferTo(file);
     75         
     76         hou.setH_pic(startName+endName);
     77         
     78         service.update(hou);
     79         
     80         return "redirect:list.do";
     81         
     82     }
     83     
     84     @RequestMapping("login.do")
     85     public String login(String username,String password,Model m,HttpSession session) {
     86         boolean flag=service.login(username,password);
     87         
     88         String path="";
     89         if (flag) {
     90             session.setAttribute("username", username);
     91             return "redirect:list.do";
     92         }else {
     93             m.addAttribute("msg", "密码或账号错误请重新登录");
     94             path="login";
     95         }
     96         
     97         
     98         return path;
     99         
    100     }
    101 }

    页面

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
     4 <!DOCTYPE html>
     5 <html>
     6 <head>
     7 <meta charset="UTF-8">
     8 <title>Insert title here</title>
     9 <link rel="stylesheet" href="css/index3.css">
    10 <script type="text/javascript" src="js/jquery-1.8.3.js"></script>
    11 <script type="text/javascript">
    12     function fenye(pageNum) {
    13         $("[name=pageNum]").val(pageNum);
    14         $("form").submit();
    15     }
    16     function add() {
    17         location="add.jsp";
    18     }
    19     function upd(h_id) {
    20         location="update.jsp?h_id="+h_id;
    21     }
    22 </script>
    23 </head>
    24 <body>
    25 <form action="list.do" method="post">
    26     <input type="hidden" name="pageNum">
    27     房产坐落地址:<input type="text" name="h_address" value="${con.h_address}">
    28     房主姓名:<input type="text" name="o_name" value="${con.o_name}">
    29     <button>查询</button>
    30 </form>
    31 <table>
    32     <tr>
    33         <th>房产编号</th>
    34         <th>房主姓名</th>
    35         <th>坐落地址</th>
    36         <th>用途</th>
    37         <th>面积</th>
    38         <th>不动资产证书</th>
    39         <th>操作
    40             <input type="button" value="添加" onclick="add()">
    41         </th>
    42     </tr>
    43     <c:forEach items="${list}" var="h" varStatus="count">
    44         <tr>
    45             <th>${count.count+page.startRow-1}</th>
    46             <th>
    47                 <c:forEach items="${h.owner}" var="o">
    48                     ${o.o_name}
    49                 </c:forEach>
    50             </th>
    51             <th>${h.h_address}</th>
    52             <th>${h.h_use}</th>
    53             <th>${h.h_area}</th>
    54             <th>
    55                 <img alt="" src="load/${h.h_pic}" style=" 100px; height: 100px;">
    56             </th>
    57             <th>
    58                 <input type="button" value="修改" onclick="upd(${h.h_id})">
    59             </th>
    60         </tr>
    61     </c:forEach>
    62     <tr>
    63         <th colspan="10">
    64             <button onclick="fenye(1)">首页</button>
    65             <button onclick="fenye(${page.prePage==0?'1':page.prePage})">上一页</button>
    66             <button onclick="fenye(${page.nextPage==0?page.pages:page.nextPage})">下一页</button>
    67             <button onclick="fenye(${page.pages})">尾页</button>&nbsp;&nbsp;&nbsp;&nbsp;
    68             当前是${page.pageNum}/${page.pages}页,一共${page.total}页&nbsp;&nbsp;&nbsp;&nbsp;
    69         </th>
    70     </tr>
    71 </table>
    72 </body>
    73 </html>

    添加

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html>
     4 <html>
     5 <head>
     6 <meta charset="UTF-8">
     7 <title>Insert title here</title>
     8 <link rel="stylesheet" href="css/index3.css">
     9 <script type="text/javascript" src="js/jquery-1.8.3.js"></script>
    10 <script type="text/javascript">
    11     $(function() {
    12         $.post("ownerAll.do",function(arr){
    13             for ( var i in arr) {
    14                 var s=arr[i];
    15                 var op="<input type='checkbox' name='oids' value='"+s.o_id+"'>"+s.o_name+"";
    16                 $("#hz").append(op);
    17             }
    18         },"json")
    19     })
    20 </script>
    21 </head>
    22 <body>
    23 <form action="add.do" method="post" enctype="multipart/form-data">
    24     <table>
    25         <tr>
    26             <th>房产坐落地址</th>
    27             <th>
    28                 <input type="text" name="h_address">
    29             </th>
    30         </tr>
    31         
    32         <tr>
    33             <th>房产用途</th>
    34             <th>
    35                 <input type="text" name="h_use">
    36             </th>
    37         </tr>
    38         
    39         <tr>
    40             <th>房产面积</th>
    41             <th>
    42                 <input type="text" name="h_area">
    43             </th>
    44         </tr>
    45         
    46         <tr>
    47             <th>房产户主</th>
    48             <th id="hz">
    49                 
    50             </th>
    51         </tr>
    52         
    53         <tr>
    54             <th>不动资产证书</th>
    55             <th>
    56                 <input type="file" name="myFile">
    57             </th>
    58         </tr>
    59         
    60         <tr>    
    61             <th colspan="10">
    62                 <button>点击添加</button>
    63             </th>
    64         </tr>
    65     </table>
    66 </form>
    67 </body>
    68 </html>

    修改

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html>
     4 <html>
     5 <head>
     6 <meta charset="UTF-8">
     7 <title>Insert title here</title>
     8 <link rel="stylesheet" href="css/index3.css">
     9 <script type="text/javascript" src="js/jquery-1.8.3.js"></script>
    10 <script type="text/javascript">
    11     $(function() {
    12         $.post("ownerAll.do",function(arr){
    13             for ( var i in arr) {
    14                 var s=arr[i];
    15                 var op="<input type='checkbox' name='oids' value='"+s.o_id+"'>"+s.o_name+"";
    16                 $("#hz").append(op);
    17             }
    18             
    19             var h_id=${param.h_id};
    20             $.post("selectOne.do",{h_id:h_id},function(obj){
    21                 
    22                 var owner=obj.owner;
    23                 for ( var i in owner) {
    24                     $("[name=oids]").each(function() {
    25                         if (this.value==owner[i].o_id) {
    26                             $(this).prop("checked",true);
    27                         }
    28                     })
    29                 }
    30                 
    31                 $("[name=h_address]").val(obj.h_address);
    32                 $("[name=h_use]").val(obj.h_use);
    33                 $("[name=h_area]").val(obj.h_area);
    34             },"json")
    35         },"json")
    36     })
    37 </script>
    38 </head>
    39 <body>
    40 <form action="update.do" method="post" enctype="multipart/form-data">
    41     <table>
    42         <tr>
    43             <th>房产坐落地址</th>
    44             <th>
    45                 <input type="hidden" name="h_id" value="${param.h_id}">
    46                 <input type="text" name="h_address">
    47             </th>
    48         </tr>
    49         
    50         <tr>
    51             <th>房产用途</th>
    52             <th>
    53                 <input type="text" name="h_use">
    54             </th>
    55         </tr>
    56         
    57         <tr>
    58             <th>房产面积</th>
    59             <th>
    60                 <input type="text" name="h_area">
    61             </th>
    62         </tr>
    63         
    64         <tr>
    65             <th>房产户主</th>
    66             <th id="hz">
    67                 
    68             </th>
    69         </tr>
    70         
    71         <tr>
    72             <th>不动资产证书</th>
    73             <th>
    74                 <input type="file" name="myFile">
    75             </th>
    76         </tr>
    77         
    78         <tr>    
    79             <th colspan="10">
    80                 <button>点击修改</button>
    81             </th>
    82         </tr>
    83     </table>
    84 </form>
    85 </body>
    86 </html>

    登录

    <%@ 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>
    <link rel="stylesheet" href="css/index3.css">
    <script type="text/javascript" src="js/jquery-1.8.3.js"></script>
    
    </head>
    <body>
    ${msg}
    <form action="login.do" method="post">
        <table>
            <tr>
                <th>用户名</th>
                <th>
                    <input type="text" name="username">
                </th>
            </tr>
            
            <tr>
                <th>密码</th>
                <th>
                    <input type="password" name="password">
                </th>
            </tr>
            
            <tr>
                
                <th colspan="10">
                    <button>登录</button>
                </th>
            </tr>
        </table>
    </form>
    </body>
    </html>
  • 相关阅读:
    Maven 安装 / 常用配置 / 阿里maven中央仓库
    记录:框架
    Mysql配置文件详解 my.cof
    Vmware虚拟机设置静态IP地址
    虚拟机安装centos发现inet为127.0.0.1,导致Xshell连接不上
    Servlet小案例总结
    Win10 提升系统响应速度
    从顶端插入,滚动展示(Demo):
    eclipse +cygwin+C++
    大型网站技术学习-3. 容器Docker与kubernetes
  • 原文地址:https://www.cnblogs.com/tang0125/p/12792814.html
Copyright © 2020-2023  润新知