• SSM一对多


     1 List<Goods> listGoods(Condition con);
     2 
     3     List<Gtype> gtypes();
     4 
     5     int add(Goods g);
     6 
     7     Goods toUpdate(Integer gid);
     8 
     9     int update(Goods g);
    10 
    11     boolean delete(String gids);
     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 <!-- 映射文件中标签的id值要和dao层接口中的方法名相同 -->
     6 <mapper namespace="com.xwx.dao.GoodsDao">
     7     <!-- 列表展示 -->
     8     <select id="listGoods" resultMap="goodsMap">
     9         select * from  goods join gtype on goods.tid = gtype.tid
    10         <where>
    11             <if test="gname!=null  and gname!=''">  and gname like concat('%',#{gname},'%') </if>
    12             <if test="price1!=null and price1!=0">  and price &gt;=#{price1} </if>
    13             <if test="price2!=null and price2!=0">  and price &lt;=#{price2} </if>
    14         </where>
    15     </select>
    16     <!-- 配置映射关系 -->
    17     <resultMap type="Goods" id="goodsMap">
    18         <id       property="gid"      column="gid"/>
    19         <result   property="gname"    column="gname"/>
    20         <result   property="price"    column="price"/>
    21         <result   property="base_num" column="base_num"/>
    22         <result   property="address"  column="address"/>
    23         <association property="gtype" javaType="Gtype">
    24             <id       property="tid"      column="tid"/>
    25             <result   property="tname"    column="tname"/>
    26         </association>
    27     </resultMap>
    28     
    29     <!-- 查询所有商品类型 -->
    30     <select id="gtypes" resultType="Gtype">
    31         select * from gtype
    32     </select>
    33     <!-- 添加 -->
    34     <insert id="add">
    35         insert into goods values(null,#{gname},#{price},#{base_num},#{address},#{gtype.tid})
    36     </insert>
    37     <!-- 回显 -->
    38     <select id="toUpdate" resultMap="goodsMap">
    39         select * from  goods join gtype on goods.tid = gtype.tid   where gid=#{gid}
    40     </select>
    41     
    42     <!-- 修改 -->
    43     <update id="update">
    44         update goods set gname=#{gname},price=#{price},base_num=#{base_num},address=#{address},tid=#{gtype.tid} where gid=#{gid}
    45     </update>
    46     <!-- 删除 -->
    47     <delete id="delete">
    48         delete from goods where gid in(${value})
     1 package com.xwx.controller;
     2 
     3 import java.util.List;
     4 
     5 import org.springframework.beans.factory.annotation.Autowired;
     6 import org.springframework.stereotype.Controller;
     7 import org.springframework.ui.Model;
     8 import org.springframework.web.bind.annotation.RequestMapping;
     9 import org.springframework.web.bind.annotation.ResponseBody;
    10 
    11 import com.github.pagehelper.PageHelper;
    12 import com.github.pagehelper.PageInfo;
    13 import com.xwx.entity.Condition;
    14 import com.xwx.entity.Goods;
    15 import com.xwx.entity.Gtype;
    16 import com.xwx.service.GoodsService;
    17 
    18 @Controller
    19 public class GoodsController {
    20 
    21     
    22     @Autowired
    23     private GoodsService service;
    24     
    25     
    26     @RequestMapping("listGoods.do")
    27     public String  listGoods(Model m,Condition con) {
    28         //当前页处理
    29         if(con.getPageNum()==null) {
    30             con.setPageNum(1);
    31         }
    32         //使用分页工具
    33         PageHelper.startPage(con.getPageNum(),4);
    34         //列表查询
    35         List<Goods> list = service.listGoods(con);
    36         //将集合使用pageInfo封装,得到分页要用的数据
    37         PageInfo<Goods> page = new PageInfo<Goods>(list);
    38         
    39         //将数据存储到model中
    40         m.addAttribute("page", page);
    41         m.addAttribute("list", list);
    42         m.addAttribute("con", con);
    43         
    44         return "list";
    45     }
    46     @ResponseBody
    47     @RequestMapping("gtypes.do")
    48     public Object  gtypes() {
    49         //获取所有商品类型
    50         List<Gtype> list = service.gtypes();
    51         
    52         return list;
    53     }
    54     @ResponseBody
    55     @RequestMapping("add.do")
    56     public Object  add(Goods g) {
    57         //执行添加,获取添加结果
    58         boolean flag = service.add(g);
    59         
    60         return flag;
    61     }
    62     @ResponseBody
    63     @RequestMapping("toUpdate.do")
    64     public Object  toUpdate(Integer gid) {
    65         //查询商品
    66         Goods g  = service.toUpdate(gid);
    67         
    68         return g;
    69     }
    70     @ResponseBody
    71     @RequestMapping("update.do")
    72     public Object  update(Goods g) {
    73         //执行添加,获取添加结果
    74         boolean flag = service.update(g);
    75         
    76         return flag;
    77     }
    78     @ResponseBody
    79     @RequestMapping("delete.do")
    80     public Object  delete(String gids) {
    81         //执行添加,获取添加结果
    82         boolean flag = service.delete(gids);
    83         
    84         return flag;
    85     }
    86 }
    
    
      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 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 <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     //将当前页赋给form保单中隐藏标签
     14     $("[name=pageNum]").val(pageNum);
     15     //提交form表单
     16     $("form").submit(); 
     17     
     18 }
     19 //全选,全不选
     20 function choose(own){
     21     $("[name=check]").attr("checked",own.checked);
     22 }
     23 //添加
     24 function add(){
     25     location="add.jsp";
     26 }
     27 //修改
     28 function upd(gid){
     29     location="update.jsp?gid="+gid;
     30 }
     31 //批量删除
     32 function deleteBatch(){
     33     
     34     /* var gids ="";
     35     $("[name=check]:checked").each(function(){
     36         gids+=","+this.value;
     37     })
     38     
     39     alert(gids.substring(1)); */
     40     
     41     //map:将jquery集合转换成其他数组
     42     //get():将其他数组转换成js数组
     43     //join():将数组中的元素拼接成字符串,如果不传值默认用逗号拼接
     44     
     45     if(confirm("确定删除?")){
     46         //拼接字符串
     47         var gids = $("[name=check]:checked").map(function(){
     48             return this.value;
     49         }).get().join(); 
     50         //将拼接好的gid字符串传到后台
     51         $.post("delete.do",{gids:gids},function(flag){
     52             
     53             if(flag){
     54                 alert("删除成功!");
     55                 location="listGoods.do";
     56             }else{
     57                 alert("删失败!");
     58             }
     59         },"json")
     60     }
     61     
     62 }
     63 //单删
     64 function del(gids){
     65     $.post("delete.do",{gids:gids},function(flag){
     66         if(flag){
     67             alert("删除成功!");
     68             location="listGoods.do";
     69         }else{
     70             alert("删失败!");
     71         }
     72     },"json")
     73 }
     74 </script>
     75 </head>
     76 <body>
     77 <form action="listGoods.do" method="post">
     78     <input type="hidden" name="pageNum"/>
     79     商品:<input type="text" name="gname"  value="${con.gname}"/>
     80     价格:<input type="text" name="price1" value="${con.price1}"/>--
     81         <input type="text" name="price2" value="${con.price2}"/>
     82         <button>查看</button>
     83 </form>
     84 <table>
     85     <tr>
     86         <td>
     87             <input type="checkbox" onclick="choose(this)"/>
     88         </td>
     89         <td>编号</td>
     90         <td>商品</td>
     91         <td>价格</td>
     92         <td>库存</td>
     93         <td>地址</td>
     94         <td>类型</td>
     95         <td>操作
     96             <button onclick="add()">添加</button>
     97         </td>
     98     </tr>
     99     <c:forEach items="${list}" var="g" varStatus="count">
    100         <tr>
    101             <td>
    102                 <input type="checkbox"name="check" value="${g.gid}"/>
    103             </td>
    104             <td>${count.count+page.startRow-1}</td>
    105             <td>${g.gname}</td>
    106             <td>${g.price}</td>
    107             <td>${g.base_num}</td>
    108             <td>${g.address}</td>
    109             <td>${g.gtype.tname}</td>
    110             <td>
    111                 <button>查看</button>
    112                 <button onclick="upd('${g.gid}')">编辑</button>
    113                 <button onclick="del('${g.gid}')">删除</button>
    114             </td>
    115         </tr>
    116     </c:forEach>
    117     <tr>
    118         <td colspan="10">
    119             <button onclick="fenye(1)">首页</button>
    120             <button onclick="fenye(${page.prePage==0?'1':page.prePage})">上一页</button>
    121             <button onclick="fenye(${page.nextPage==0?page.pages:page.nextPage})">下一页</button>
    122             <button onclick="fenye(${page.pages})">尾页</button>&nbsp;&nbsp;
    123             当前${page.pageNum}/${page.pages}页,共${page.total}条
    124             
    125             &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    126             <button onclick="deleteBatch()">批量删除</button>
    127         </td>
    128     <tr>
    129 </table>
     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; 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 //文档就绪函数
    12 $(function(){
    13     //使用ajax动态查询商品类型,然后追加到页面的下拉框中
    14     $.post("gtypes.do",function(arr){
    15         for ( var i in arr) {
    16             $("select").append("<option value='"+arr[i].tid+"'>"+arr[i].tname+"</option>");
    17         }
    18     },"json")
    19 })
    20 
    21 //添加
    22 function tj(){
    23     //使用表单序列化方法获取表单中数据
    24     var param = $("form").serialize();
    25     
    26     $.post("add.do",param,function(flag){
    27         
    28         if(flag){
    29             alert("添加成功!");
    30             location="listGoods.do";
    31         }else{
    32             alert("添加失败!");
    33         }
    34     },"json")
    35 }
    36 </script>
    37 </head>
    38 <body>
    39 <form>
    40     <Table>
    41         <tr>
    42             <Td>商品:</Td>
    43             <Td>
    44                 <input type="text" name="gname"/>
    45             </Td>
    46         </tr>
    47         <tr>
    48             <Td>价格:</Td>
    49             <Td>
    50                 <input type="text" name="price"/>
    51             </Td>
    52         </tr>
    53         <tr>
    54             <Td>库存:</Td>
    55             <Td>
    56                 <input type="text" name="base_num"/>
    57             </Td>
    58         </tr>
    59         <tr>
    60             <Td>地址:</Td>
    61             <Td>
    62                 <input type="text" name="address"/>
    63             </Td>
    64         </tr>
    65         <tr>
    66             <Td>商品类型:</Td>
    67             <Td>
    68                 <select name="gtype.tid">
    69                     <option value="-1">请选择</option>
    70                 </select>
    71             </Td>
    72         </tr>
    73         <tr>
    74             <Td></Td>
    75             <Td>
    76                 <input type="button" value="提交" onclick="tj()"/>
    77             </Td>
    78         </tr>
    79     </Table>
      1 <%@ page language="java" contentType="text/html; charset=UTF-8"
      2     pageEncoding="UTF-8"%>
      3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
      4 <html>
      5 <head>
      6 <meta http-equiv="Content-Type" content="text/html; 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 <%-- <%=request.getParameter("gid")%> == ${param.gid} --%>
     11 <script type="text/javascript">
     12 //文档就绪函数
     13 $(function(){
     14     
     15     //接收要回显数据的gid 
     16     var gid = "${param.gid}";
     17     //使用ajax传gid,查询这条记录
     18     $.post("toUpdate.do",{gid:gid},function(obj){
     19         //查询到的数据给标签赋值
     20         $("[name=gname]").val(obj.gname);
     21         $("[name=price]").val(obj.price);
     22         $("[name=base_num]").val(obj.base_num);
     23         $("[name=address]").val(obj.address);
     24         
     25         //使用ajax动态查询商品类型,然后追加到页面的下拉框中
     26         $.post("gtypes.do",function(arr){
     27             for ( var i in arr) {
     28                 if(arr[i].tid==obj.gtype.tid){
     29                     
     30                     $("select").append("<option selected value='"+arr[i].tid+"'>"+arr[i].tname+"</option>");
     31                 }else{
     32                     $("select").append("<option value='"+arr[i].tid+"'>"+arr[i].tname+"</option>");
     33                 }
     34             }
     35         },"json")
     36         
     37     },"json")
     38     
     39     
     40 })
     41 
     42 //修改
     43 function tj(){
     44     //使用表单序列化方法获取表单中数据
     45     var param = $("form").serialize();
     46     
     47     $.post("update.do",param,function(flag){
     48         
     49         if(flag){
     50             alert("修改成功!");
     51             location="listGoods.do";
     52         }else{
     53             alert("修改失败!");
     54         }
     55     },"json")
     56 }
     57 </script>
     58 </head>
     59 <body>
     60 <form>
     61     <Table>
     62         <tr>
     63             <Td>商品:</Td>
     64             <Td>
     65                 <input type="hidden" name="gid" value="${param.gid}"/>
     66                 <input type="text" name="gname"/>
     67             </Td>
     68         </tr>
     69         <tr>
     70             <Td>价格:</Td>
     71             <Td>
     72                 <input type="text" name="price"/>
     73             </Td>
     74         </tr>
     75         <tr>
     76             <Td>库存:</Td>
     77             <Td>
     78                 <input type="text" name="base_num"/>
     79             </Td>
     80         </tr>
     81         <tr>
     82             <Td>地址:</Td>
     83             <Td>
     84                 <input type="text" name="address"/>
     85             </Td>
     86         </tr>
     87         <tr>
     88             <Td>商品类型:</Td>
     89             <Td>
     90                 <select name="gtype.tid">
     91                     <option value="-1">请选择</option>
     92                 </select>
     93             </Td>
     94         </tr>
     95         <tr>
     96             <Td></Td>
     97             <Td>
     98                 <input type="button" value="提交" onclick="tj()"/>
     99             </Td>
    100         </tr>
    101     </Table>
    102     
    103 </form>
    104 </body>
    105 </html>
    
    
    
    80     
    81 </form>
    82 </body>
    83 </html>
    
    
    
    130 </body>
    131 </html>
    49     </delete>
    50 </mapper>
  • 相关阅读:
    Use Study Groups to Support Learning
    “开闭”原则(OpenClosed principle, OCP)
    我的E72i 开发
    conlution of daily work
    appstore相关查询链接
    sqlite3.0不支持的sql属性
    iOS sdk 运行时函数
    自动化测试部分
    ios下获取mac地址修正版
    修改mac os host
  • 原文地址:https://www.cnblogs.com/tang0125/p/12874280.html
Copyright © 2020-2023  润新知