【SaaS-Export项目】 - 06 对Company公司模块进行CRUD

【注意事项】
每次修改都需要对修改工程的maven的Lifecycle进行先clean再install
在这里插入图片描述

1. saas-export - 添加company

页面展示:
在这里插入图片描述

  1. export_system_service子工程编写测试类编写测试添加方法
    export_system_service\src\test\java\com\xgf\service\company\TestCompanyService.java
    //测试save保存添加
    @Test
    public void test02(){
        //1. 将表单数据通过companyService正确写入到数据库(全参构造器),id有UUID随机产生
        // public Company(String id, String name, Date expirationDate, String address, String licenseId, String representative, String phone, String companySize, String industry, String remarks, Integer state, Double balance, String city)	//构造器
        Company company = new Company(null,"test02",new Date(),"address1","licenseId","representative","phone","companySize","industry","remarks",0,100.0,"city");
        //保存
        companyService.saveCompany(company);
    }
  1. export_system_service子工程service接口和实现类
    ICompanyService
  void saveCompany(Company company);

CompanyServiceImpl,通过UUID来生成id

    @Override
    public void saveCompany(Company company) {
        //当前数据库的id不是自增长的。
        //id类似于af4acb2e-c227-44bb-a3e8-3b64237d0ad4 生成uuid 全球唯一
        String id = UUID.randomUUID().toString();
        company.setId(id);
        companyDao.save(company);
    }
  1. export_dao子工程dao接口及其映射

ICompanyDao

	 void save(Company company);

ICompanyDao.xml

    <insert id="save" parameterType="company">
            insert into ss_company
            (
            id              ,
            name            ,
            expiration_date ,
            address         ,
            license_id      ,
            representative  ,
            phone           ,
            company_size    ,
            industry        ,
            remarks         ,
            state           ,
            balance         ,
            city
            )
            values
            (
            #{id              },
            #{name            },
            #{expirationDate  },
            #{address         },
            #{licenseId       },
            #{representative  },
            #{phone           },
            #{companySize    },
            #{industry        },
            #{remarks         },
            #{state           },
            #{balance         },
            #{city}
            )
    </insert>
  1. 测试增加save方法,添加成功
    运行结果:

Parameters: e5183d55-dd66-4974-b377-b469cfe39851(String), test02(String), 2020-10-29 17:21:42.222(Timestamp), address1(String), licenseId(String), representative(String), phone(String), companySize(String), industry(String), remarks(String), 0(Integer), 100.0(Double), city(String)
Updates: 1
在这里插入图片描述

  1. export_web_manager子工程编写controller

CompanyController

    //${path}/company/add  技巧1:表单的name值对应实体类的变量名
    @RequestMapping(path="/add",method = RequestMethod.POST)
    public String add(Company company){
        l.info("add company="+company);
        companyService.saveCompany(company);
        return "redirect:/company/toList";//跳转到列表页面
    }


    //打开添加页面,点击跳转添加页面显示在指定的iframe上
    @RequestMapping(path="/toAdd",method = RequestMethod.GET)
    public String toAdd(){
        return "company/company-add";
    }

company-add.jsp页面参数name需要和类的属性名称一致(自动绑定)

<!--增加公司信息-->
        <div class="panel panel-default">
            <div class="panel-heading">企业信息</div>
            <form id="editForm" action="${path}/company/add" method="post">
                <input type="hidden" name="id" value="${company.id}">
                <div class="row data-type" style="margin: 0px">
                    <div class="col-md-2 title">企业名称</div>
                    <div class="col-md-4 data">
                        <input type="text" class="form-control" placeholder="企业名称" name="name" value="${company.name}">
                    </div>

                    <div class="col-md-2 title">营业执照</div>
                    <div class="col-md-4 data">
                        <input type="text" class="form-control" placeholder="营业执照" name="licenseId" value="${company.licenseId}">
                    </div>

                    <div class="col-md-2 title">所在城市</div>
                    <div class="col-md-4 data">
                        <input type="text" class="form-control" placeholder="所在地" name="city" value="${company.city}">
                    </div>

                    <div class="col-md-2 title">企业地址</div>
                    <div class="col-md-4 data">
                        <input type="text" class="form-control" placeholder="企业地址" name="address" value="${company.address}">
                    </div>

                    <div class="col-md-2 title">法人代表</div>
                    <div class="col-md-4 data">
                        <input type="text" class="form-control" placeholder="法人代表" name="representative" value="${company.representative}">
                    </div>

                    <div class="col-md-2 title">联系电话</div>
                    <div class="col-md-4 data">
                        <input type="text" class="form-control" placeholder="联系电话" name="phone" value="${company.phone}">
                    </div>

                    <div class="col-md-2 title">公司规模</div>
                    <div class="col-md-4 data">
                        <input type="text" class="form-control" placeholder="公司规模" name="companySize" value="${company.companySize}">
                    </div>

                    <div class="col-md-2 title">所属行业</div>
                    <div class="col-md-4 data">
                        <input type="text" class="form-control" placeholder="所属行业" name="industry" value="${company.industry}">
                    </div>
                    <div class="col-md-2 title">状态</div>
                    <div class="col-md-4 data">
                        <select class="form-control select2" name="state" style="width: 100%;">
                            <option value="0" ${company.state==0 ? 'selected':''}>未审核</option>
                            <option value="1" ${company.state==1 ? 'selected':''}>已审核</option>
                        </select>
                        <input type="text" class="form-control" placeholder="状态" name="state" value="${company.state}">
                    </div>

                    <div class="col-md-2 title">余额</div>
                    <div class="col-md-4 data">
                        <input type="text" class="form-control" placeholder="余额" name="balance" value="${company.balance}">
                    </div>

                    <div class="col-md-2 title rowHeight2x">备注</div>
                    <div class="col-md-10 data rowHeight2x">
                        <textarea class="form-control" rows="3" name="remarks">${company.remarks}</textarea>
                    </div>
                </div>
            </form>
        </div>
        <!--添加公司信息/-->

        <!--工具栏-->
        <div class="box-tools text-center">
            <button type="button" onclick='document.getElementById("editForm").submit()' class="btn bg-maroon">保存</button>
            <button type="button" class="btn bg-default" onclick="history.back(-1);">返回</button>
        </div>


2. saas-export - 查询company

在这里插入图片描述

  1. export_system_service子工程编写测试类编写测试查询方法

TestCompanyService

    //测试查询所有
    @Test
    public void test01(){
        //1. 编写了业务逻辑的测试
        //ICompanyService  companyService = new CompanyServiceImpl();
        List<Company> list = companyService.findAll();
        System.out.println(list);
    }
  1. export_system_service子工程service接口和实现类

ICompanyService

    List<Company> findAll();

CompanyServiceImpl

    @Autowired
    ICompanyDao companyDao;
    public List<Company> findAll() {
        return companyDao.findAll();
    }
  1. export_dao子工程dao接口及其映射

ICompanyDao

    List<Company> findAll();

ICompanyDao.xml

    <!-- 数据库表字段名(列名)与类的成员变量不一致的解决办法
        1. sql语句通过 as取别名,与类的成员变量一致
        2. 使用mybatis的resultMap映射实现(column表的列名,property类的属性名映射
     -->
    <resultMap id="companyMap" type="company">
         <id column="id" property="id"/>
         <result  column="expiration_date" property="expirationDate"/>
         <result  column="license_id" property="licenseId"/>
         <result  column="company_size" property="companySize"/>
    </resultMap>
    <select id="findAll" resultMap="companyMap">
        select
            *
        from ss_company
    </select>
  1. 测试增加findAll方法,查询成功
    在这里插入图片描述

  2. export_web_manager子工程编写controller

CompanyController

   //查询 1 打开列表页面
    @RequestMapping(path="/toList",method = RequestMethod.GET)
    public String toList(Model model){
        //调service获取数据
        List<Company> list = iCompanyService.findAll();
        l.info("toList list="+list);
        model.addAttribute("list",list);
        //将数据发到页面,使用标签
        return "company/company-list";
    }

company-list.jsp使用foreach与el表达式来显示数据

<!-- 数据表格 -->
                <div class="table-box">

                    <!--工具栏-->
                    <div class="pull-left">
                        <div class="form-group form-inline">
                            <div class="btn-group">
                                <button type="button" class="btn btn-default" title="新建" onclick='location.href="${path}/company/toAdd"'><i class="fa fa-file-o"></i> 新建</button>
                                <button type="button" class="btn btn-default" title="删除" onclick='deleteById()'><i class="fa fa-trash-o"></i> 删除</button>
                                <button type="button" class="btn btn-default" title="刷新" onclick="window.location.reload();"><i class="fa fa-refresh"></i> 刷新</button>
                            </div>
                        </div>
                    </div>
                    <div class="box-tools pull-right">
                        <div class="has-feedback">
                            <input type="text" class="form-control input-sm" placeholder="搜索">
                            <span class="glyphicon glyphicon-search form-control-feedback"></span>
                        </div>
                    </div>
                    <!--工具栏/-->

                    <!--数据列表-->
                    <table id="dataList" class="table table-bordered table-striped table-hover dataTable">
                        <thead>
                        <tr>
                            <th class="" style="padding-right:0px;">

                            </th>
                            <th class="sorting">企业名称</th>
                            <th class="sorting">所在地</th>
                            <th class="sorting">地址</th>
                            <th class="sorting">企业法人</th>
                            <th class="sorting">联系方式</th>
                            <th class="sorting">所属行业</th>
                            <th class="sorting">状态</th>
                            <th class="sorting">余额</th>
                            <th class="text-center">操作</th>
                        </tr>
                        </thead>
                        <tbody>
                        <c:forEach items="${pi.list}" var="item">
                            <tr>
                                <%-- 隐藏域 通过id进行更新删除数据 --%>
                                <td><input name="ids" value="${item.id}" type="checkbox"></td>
                                <td>
                                        ${item.name}
                                </td>
                                <td>${item.city}</td>
                                <td>${item.address}</td>
                                <td>${item.representative}</td>
                                <td>${item.phone}</td>
                                <td>${item.industry}</td>
                                <td>${item.state ==0?'未审核':'已审核'}</td>
                                <td class="text-center">${item.balance}</td>
                                <td class="text-center">
                                    <button type="button" class="btn bg-olive btn-xs" onclick='location.href="${path}/company/toEdit?id=${item.id}"'>编辑</button>
                                </td>
                            </tr>
                        </c:forEach>
                        </tbody>
                    </table>
                </div>


3. saas-export - 删除company

在这里插入图片描述

  1. export_system_service子工程编写测试类编写测试删除方法

TestCompanyService

//测试按照UUID生成的id进行删除
    @Test
    public void test03(){
        //删除
        String id = "8ca554e3-0a46-4909-bbf9-ec6a84c17cd9";
        companyService.deleteById(id);
    }
  1. export_system_service子工程service接口和实现类

ICompanyService

    void deleteById(String id);

CompanyServiceImpl

	 @Override
    public void deleteById(String id) {
        iCompanyDao.deleteById(id);
    }
  1. export_dao子工程dao接口及其映射

ICompanyDao

    void deleteById(String id);

ICompanyDao.xml

    <delete id="deleteById" parameterType="string">
        delete from ss_company where id = #{id}
    </delete>
  1. 测试增加delete方法,删除成功
    在这里插入图片描述

  2. export_web_manager子工程编写controller

CompanyController

    //${path}/company/delete?id="+id
    @RequestMapping(path="/delete",method = RequestMethod.GET)
    public String delete(String id){
        l.info("delete id="+id);
        companyService.deleteById(id);
        return "redirect:/company/toList";//跳转到列表页面
    }

这里暂时只删除一个

<script>
    function deleteById() {
        var id = getCheckId()
        if(id) {
            if(confirm("你确认要删除此条记录吗?")) {
                location.href="${path}/company/delete?id="+id;
            }
        }else{
            alert("请勾选待处理的记录,且每次只能勾选一个")
        }
    }
</script>

4. saas-export - 修改company 回显

  1. export_system_service子工程编写测试类编写测试修改方法

TestCompanyService

	//通过id修改更新数据
    @Test
    public void test05(){
        //
        String id = "7f2a7416-2ffc-4f8d-bb90-3e79f2b87170";

        //查询
        Company company = companyService.findById(id);
        l.info(company+"7f2a7416-2ffc-4f8d-bb90-3e79f2b87170");
        //模拟修改数据
        if(company != null){
            company.setCity("北京");
            company.setName("test05修改name");
            l.info(company+" ");
            //将修改后的数据保存到数据库
            companyService.updateCompany(company);
        }else {
            l.info("没有查询到指定id的company");
        }
    }
  1. export_system_service子工程service接口和实现类

ICompanyService

	//修改查询
    Company findById(String id);
	//更新数据
	void updateCompany(Company company);

CompanyServiceImpl

    @Override
    public Company findById(String id) {
        Company company = iCompanyDao.findById(id);
        return company;
    }
    
    @Override
    public void updateCompany(Company company) {
        //调用dao操作数据库
        iCompanyDao.update(company);
    }
  1. export_dao子工程dao接口及其映射

ICompanyDao

    Company findById(String id);

    void update(Company company);

ICompanyDao.xml
修改需要先通过id查询,然后再进行修改

<select id="findById" parameterType="string" resultType="company">
        select
            id,
            name ,
            expiration_date as expirationDate ,
            address,
            license_id as licenseId  ,
            representative ,
            phone  ,
            company_size as companySize  ,
            industry  ,
            remarks ,
            state,
            balance ,
            city
        from ss_company
        where  id = #{id}
    </select>

    <update id="update" parameterType="company">
	     update ss_company
	        set name           = #{name           },
	            expiration_date= #{expirationDate},
	            address        = #{address        },
	            license_id     = #{licenseId     },
	            representative = #{representative },
	            phone          = #{phone          },
	            company_size   = #{companySize   },
	            industry       = #{industry       },
	            remarks        = #{remarks        },
	            state          = #{state          },
	            balance        = #{balance        },
	            city           = #{city           }
	    where id = #{id}
    </update>
  1. 测试增加update方法,修改信息成功
    在这里插入图片描述

  2. export_web_manager子工程编写controller

CompanyController
5.1 编写修改回显,点击修改跳转回显页面
在这里插入图片描述

company-update.jsp

 	@RequestMapping(path="/toEdit",method = RequestMethod.GET)
    public String toEdit(){
        return "company/company-update";
    }
<!--企业信息-->
        <div class="panel panel-default">
            <div class="panel-heading">企业信息</div>
            <form id="editForm" action="${path}/company/update" method="post">
                <input type="hidden" name="id" value="${company.id}">
                <div class="row data-type" style="margin: 0px">
                    <div class="col-md-2 title">企业名称</div>
                    <div class="col-md-4 data">
                        <input type="text" class="form-control" placeholder="企业名称" name="name" value="${company.name}">
                    </div>

                    <div class="col-md-2 title">营业执照</div>
                    <div class="col-md-4 data">
                        <input type="text" class="form-control" placeholder="营业执照" name="licenseId" value="${company.licenseId}">
                    </div>

                    <div class="col-md-2 title">所在城市</div>
                    <div class="col-md-4 data">
                        <input type="text" class="form-control" placeholder="所在地" name="city" value="${company.city}">
                    </div>

                    <div class="col-md-2 title">企业地址</div>
                    <div class="col-md-4 data">
                        <input type="text" class="form-control" placeholder="企业地址" name="address" value="${company.address}">
                    </div>

                    <div class="col-md-2 title">法人代表</div>
                    <div class="col-md-4 data">
                        <input type="text" class="form-control" placeholder="法人代表" name="representative" value="${company.representative}">
                    </div>

                    <div class="col-md-2 title">联系电话</div>
                    <div class="col-md-4 data">
                        <input type="text" class="form-control" placeholder="联系电话" name="phone" value="${company.phone}">
                    </div>

                    <div class="col-md-2 title">公司规模</div>
                    <div class="col-md-4 data">
                        <input type="text" class="form-control" placeholder="公司规模" name="companySize" value="${company.companySize}">
                    </div>

                    <div class="col-md-2 title">所属行业</div>
                    <div class="col-md-4 data">
                        <input type="text" class="form-control" placeholder="所属行业" name="industry" value="${company.industry}">
                    </div>
                    <div class="col-md-2 title">状态</div>
                    <div class="col-md-4 data">
                        <select class="form-control select2" name="state" style="width: 100%;">
                            <option value="0" ${company.state==0 ? 'selected':''}>未审核</option>
                            <option value="1" ${company.state==1 ? 'selected':''}>已审核</option>
                        </select>
                        <input type="text" class="form-control" placeholder="状态" name="state" value="${company.state}">
                    </div>

                    <div class="col-md-2 title">余额</div>
                    <div class="col-md-4 data">
                        <input type="text" class="form-control" placeholder="余额" name="balance" value="${company.balance}">
                    </div>

                    <div class="col-md-2 title rowHeight2x">备注</div>
                    <div class="col-md-10 data rowHeight2x">
                        <textarea class="form-control" rows="3" name="remarks">${company.remarks}</textarea>
                    </div>
                </div>
            </form>
        </div>
        
		<!--工具栏-->
        <div class="box-tools text-center">
            <button type="button" onclick='document.getElementById("editForm").submit()' class="btn bg-maroon">保存</button>
            <button type="button" class="btn bg-default" onclick="history.back(-1);">返回</button>
        </div>
        <!--工具栏/-->

5.2 更新company

CompanyController

    //${path}/company/update.do
    @RequestMapping(path="/update",method = RequestMethod.POST)
    public String update(Company company){ //表单的参数名要与实体类的变量名一样。
        l.info("update company="+company);

        iCompanyService.updateCompany(company);

        return "redirect:/company/toList.do";//跳转到列表页面
    }
    
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值