• 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>
  • 相关阅读:
    【转】【SEE】基于SSE指令集的程序设计简介
    【转】【Asp.Net】asp.net服务器控件创建
    ControlTemplate in WPF ——ScrollBar
    ControlTemplate in WPF —— Menu
    ControlTemplate in WPF —— Expander
    ControlTemplate in WPF —— TreeView
    ControlTemplate in WPF —— ListBox
    ControlTemplate in WPF —— ComboBox
    ControlTemplate in WPF —— TextBox
    ControlTemplate in WPF —— RadioButton
  • 原文地址:https://www.cnblogs.com/tang0125/p/12792814.html
Copyright © 2020-2023  润新知