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

今天药忘吃喽~ 2022-11-20 08:21 329阅读 0赞

文章目录

      1. saas-export - 添加company
      1. saas-export - 查询company
      1. saas-export - 删除company
      1. saas-export - 修改company 回显

【注意事项】
每次修改都需要对修改工程的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保存添加

    1. @Test
    2. public void test02(){
    3. //1. 将表单数据通过companyService正确写入到数据库(全参构造器),id有UUID随机产生
    4. // 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) //构造器
    5. Company company = new Company(null,"test02",new Date(),"address1","licenseId","representative","phone","companySize","industry","remarks",0,100.0,"city");
    6. //保存
    7. companyService.saveCompany(company);
    8. }
  2. export_system_service子工程service接口和实现类
    ICompanyService

    void saveCompany(Company company);

CompanyServiceImpl,通过UUID来生成id

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

ICompanyDao

  1. void save(Company company);

ICompanyDao.xml

  1. <insert id="save" parameterType="company">
  2. insert into ss_company
  3. (
  4. id ,
  5. name ,
  6. expiration_date ,
  7. address ,
  8. license_id ,
  9. representative ,
  10. phone ,
  11. company_size ,
  12. industry ,
  13. remarks ,
  14. state ,
  15. balance ,
  16. city
  17. )
  18. values
  19. (
  20. #{id },
  21. #{name },
  22. #{expirationDate },
  23. #{address },
  24. #{licenseId },
  25. #{representative },
  26. #{phone },
  27. #{companySize },
  28. #{industry },
  29. #{remarks },
  30. #{state },
  31. #{balance },
  32. #{city}
  33. )
  34. </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

  1. //${path}/company/add 技巧1:表单的name值对应实体类的变量名
  2. @RequestMapping(path="/add",method = RequestMethod.POST)
  3. public String add(Company company){
  4. l.info("add company="+company);
  5. companyService.saveCompany(company);
  6. return "redirect:/company/toList";//跳转到列表页面
  7. }
  8. //打开添加页面,点击跳转添加页面显示在指定的iframe上
  9. @RequestMapping(path="/toAdd",method = RequestMethod.GET)
  10. public String toAdd(){
  11. return "company/company-add";
  12. }

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

  1. <!--增加公司信息-->
  2. <div class="panel panel-default">
  3. <div class="panel-heading">企业信息</div>
  4. <form id="editForm" action="${path}/company/add" method="post">
  5. <input type="hidden" name="id" value="${company.id}">
  6. <div class="row data-type" style="margin: 0px">
  7. <div class="col-md-2 title">企业名称</div>
  8. <div class="col-md-4 data">
  9. <input type="text" class="form-control" placeholder="企业名称" name="name" value="${company.name}">
  10. </div>
  11. <div class="col-md-2 title">营业执照</div>
  12. <div class="col-md-4 data">
  13. <input type="text" class="form-control" placeholder="营业执照" name="licenseId" value="${company.licenseId}">
  14. </div>
  15. <div class="col-md-2 title">所在城市</div>
  16. <div class="col-md-4 data">
  17. <input type="text" class="form-control" placeholder="所在地" name="city" value="${company.city}">
  18. </div>
  19. <div class="col-md-2 title">企业地址</div>
  20. <div class="col-md-4 data">
  21. <input type="text" class="form-control" placeholder="企业地址" name="address" value="${company.address}">
  22. </div>
  23. <div class="col-md-2 title">法人代表</div>
  24. <div class="col-md-4 data">
  25. <input type="text" class="form-control" placeholder="法人代表" name="representative" value="${company.representative}">
  26. </div>
  27. <div class="col-md-2 title">联系电话</div>
  28. <div class="col-md-4 data">
  29. <input type="text" class="form-control" placeholder="联系电话" name="phone" value="${company.phone}">
  30. </div>
  31. <div class="col-md-2 title">公司规模</div>
  32. <div class="col-md-4 data">
  33. <input type="text" class="form-control" placeholder="公司规模" name="companySize" value="${company.companySize}">
  34. </div>
  35. <div class="col-md-2 title">所属行业</div>
  36. <div class="col-md-4 data">
  37. <input type="text" class="form-control" placeholder="所属行业" name="industry" value="${company.industry}">
  38. </div>
  39. <div class="col-md-2 title">状态</div>
  40. <div class="col-md-4 data">
  41. <select class="form-control select2" name="state" style="width: 100%;">
  42. <option value="0" ${company.state==0 ? 'selected':''}>未审核</option>
  43. <option value="1" ${company.state==1 ? 'selected':''}>已审核</option>
  44. </select>
  45. <input type="text" class="form-control" placeholder="状态" name="state" value="${company.state}">
  46. </div>
  47. <div class="col-md-2 title">余额</div>
  48. <div class="col-md-4 data">
  49. <input type="text" class="form-control" placeholder="余额" name="balance" value="${company.balance}">
  50. </div>
  51. <div class="col-md-2 title rowHeight2x">备注</div>
  52. <div class="col-md-10 data rowHeight2x">
  53. <textarea class="form-control" rows="3" name="remarks">${company.remarks}</textarea>
  54. </div>
  55. </div>
  56. </form>
  57. </div>
  58. <!--添加公司信息/-->
  59. <!--工具栏-->
  60. <div class="box-tools text-center">
  61. <button type="button" onclick='document.getElementById("editForm").submit()' class="btn bg-maroon">保存</button>
  62. <button type="button" class="btn bg-default" onclick="history.back(-1);">返回</button>
  63. </div>

2. saas-export - 查询company

在这里插入图片描述

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

TestCompanyService

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

ICompanyService

  1. List<Company> findAll();

CompanyServiceImpl

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

ICompanyDao

  1. List<Company> findAll();

ICompanyDao.xml

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

CompanyController

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

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

  1. <!-- 数据表格 -->
  2. <div class="table-box">
  3. <!--工具栏-->
  4. <div class="pull-left">
  5. <div class="form-group form-inline">
  6. <div class="btn-group">
  7. <button type="button" class="btn btn-default" title="新建" onclick='location.href="${path}/company/toAdd"'><i class="fa fa-file-o"></i> 新建</button>
  8. <button type="button" class="btn btn-default" title="删除" onclick='deleteById()'><i class="fa fa-trash-o"></i> 删除</button>
  9. <button type="button" class="btn btn-default" title="刷新" onclick="window.location.reload();"><i class="fa fa-refresh"></i> 刷新</button>
  10. </div>
  11. </div>
  12. </div>
  13. <div class="box-tools pull-right">
  14. <div class="has-feedback">
  15. <input type="text" class="form-control input-sm" placeholder="搜索">
  16. <span class="glyphicon glyphicon-search form-control-feedback"></span>
  17. </div>
  18. </div>
  19. <!--工具栏/-->
  20. <!--数据列表-->
  21. <table id="dataList" class="table table-bordered table-striped table-hover dataTable">
  22. <thead>
  23. <tr>
  24. <th class="" style="padding-right:0px;">
  25. </th>
  26. <th class="sorting">企业名称</th>
  27. <th class="sorting">所在地</th>
  28. <th class="sorting">地址</th>
  29. <th class="sorting">企业法人</th>
  30. <th class="sorting">联系方式</th>
  31. <th class="sorting">所属行业</th>
  32. <th class="sorting">状态</th>
  33. <th class="sorting">余额</th>
  34. <th class="text-center">操作</th>
  35. </tr>
  36. </thead>
  37. <tbody>
  38. <c:forEach items="${pi.list}" var="item">
  39. <tr>
  40. <%-- 隐藏域 通过id进行更新删除数据 --%>
  41. <td><input name="ids" value="${item.id}" type="checkbox"></td>
  42. <td>
  43. ${item.name}
  44. </td>
  45. <td>${item.city}</td>
  46. <td>${item.address}</td>
  47. <td>${item.representative}</td>
  48. <td>${item.phone}</td>
  49. <td>${item.industry}</td>
  50. <td>${item.state ==0?'未审核':'已审核'}</td>
  51. <td class="text-center">${item.balance}</td>
  52. <td class="text-center">
  53. <button type="button" class="btn bg-olive btn-xs" onclick='location.href="${path}/company/toEdit?id=${item.id}"'>编辑</button>
  54. </td>
  55. </tr>
  56. </c:forEach>
  57. </tbody>
  58. </table>
  59. </div>

3. saas-export - 删除company

在这里插入图片描述

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

TestCompanyService

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

ICompanyService

  1. void deleteById(String id);

CompanyServiceImpl

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

ICompanyDao

  1. void deleteById(String id);

ICompanyDao.xml

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

CompanyController

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

这里暂时只删除一个

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

4. saas-export - 修改company 回显

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

TestCompanyService

  1. //通过id修改更新数据
  2. @Test
  3. public void test05(){
  4. //
  5. String id = "7f2a7416-2ffc-4f8d-bb90-3e79f2b87170";
  6. //查询
  7. Company company = companyService.findById(id);
  8. l.info(company+"7f2a7416-2ffc-4f8d-bb90-3e79f2b87170");
  9. //模拟修改数据
  10. if(company != null){
  11. company.setCity("北京");
  12. company.setName("test05修改name");
  13. l.info(company+" ");
  14. //将修改后的数据保存到数据库
  15. companyService.updateCompany(company);
  16. }else {
  17. l.info("没有查询到指定id的company");
  18. }
  19. }
  1. export_system_service子工程service接口和实现类

ICompanyService

  1. //修改查询
  2. Company findById(String id);
  3. //更新数据
  4. void updateCompany(Company company);

CompanyServiceImpl

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

ICompanyDao

  1. Company findById(String id);
  2. void update(Company company);

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

  1. <select id="findById" parameterType="string" resultType="company">
  2. select
  3. id,
  4. name ,
  5. expiration_date as expirationDate ,
  6. address,
  7. license_id as licenseId ,
  8. representative ,
  9. phone ,
  10. company_size as companySize ,
  11. industry ,
  12. remarks ,
  13. state,
  14. balance ,
  15. city
  16. from ss_company
  17. where id = #{id}
  18. </select>
  19. <update id="update" parameterType="company">
  20. update ss_company
  21. set name = #{name },
  22. expiration_date= #{expirationDate},
  23. address = #{address },
  24. license_id = #{licenseId },
  25. representative = #{representative },
  26. phone = #{phone },
  27. company_size = #{companySize },
  28. industry = #{industry },
  29. remarks = #{remarks },
  30. state = #{state },
  31. balance = #{balance },
  32. city = #{city }
  33. where id = #{id}
  34. </update>
  1. 测试增加update方法,修改信息成功
    在这里插入图片描述
  2. export_web_manager子工程编写controller

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

company-update.jsp

  1. @RequestMapping(path="/toEdit",method = RequestMethod.GET)
  2. public String toEdit(){
  3. return "company/company-update";
  4. }
  5. <!--企业信息-->
  6. <div class="panel panel-default">
  7. <div class="panel-heading">企业信息</div>
  8. <form id="editForm" action="${path}/company/update" method="post">
  9. <input type="hidden" name="id" value="${company.id}">
  10. <div class="row data-type" style="margin: 0px">
  11. <div class="col-md-2 title">企业名称</div>
  12. <div class="col-md-4 data">
  13. <input type="text" class="form-control" placeholder="企业名称" name="name" value="${company.name}">
  14. </div>
  15. <div class="col-md-2 title">营业执照</div>
  16. <div class="col-md-4 data">
  17. <input type="text" class="form-control" placeholder="营业执照" name="licenseId" value="${company.licenseId}">
  18. </div>
  19. <div class="col-md-2 title">所在城市</div>
  20. <div class="col-md-4 data">
  21. <input type="text" class="form-control" placeholder="所在地" name="city" value="${company.city}">
  22. </div>
  23. <div class="col-md-2 title">企业地址</div>
  24. <div class="col-md-4 data">
  25. <input type="text" class="form-control" placeholder="企业地址" name="address" value="${company.address}">
  26. </div>
  27. <div class="col-md-2 title">法人代表</div>
  28. <div class="col-md-4 data">
  29. <input type="text" class="form-control" placeholder="法人代表" name="representative" value="${company.representative}">
  30. </div>
  31. <div class="col-md-2 title">联系电话</div>
  32. <div class="col-md-4 data">
  33. <input type="text" class="form-control" placeholder="联系电话" name="phone" value="${company.phone}">
  34. </div>
  35. <div class="col-md-2 title">公司规模</div>
  36. <div class="col-md-4 data">
  37. <input type="text" class="form-control" placeholder="公司规模" name="companySize" value="${company.companySize}">
  38. </div>
  39. <div class="col-md-2 title">所属行业</div>
  40. <div class="col-md-4 data">
  41. <input type="text" class="form-control" placeholder="所属行业" name="industry" value="${company.industry}">
  42. </div>
  43. <div class="col-md-2 title">状态</div>
  44. <div class="col-md-4 data">
  45. <select class="form-control select2" name="state" style="width: 100%;">
  46. <option value="0" ${company.state==0 ? 'selected':''}>未审核</option>
  47. <option value="1" ${company.state==1 ? 'selected':''}>已审核</option>
  48. </select>
  49. <input type="text" class="form-control" placeholder="状态" name="state" value="${company.state}">
  50. </div>
  51. <div class="col-md-2 title">余额</div>
  52. <div class="col-md-4 data">
  53. <input type="text" class="form-control" placeholder="余额" name="balance" value="${company.balance}">
  54. </div>
  55. <div class="col-md-2 title rowHeight2x">备注</div>
  56. <div class="col-md-10 data rowHeight2x">
  57. <textarea class="form-control" rows="3" name="remarks">${company.remarks}</textarea>
  58. </div>
  59. </div>
  60. </form>
  61. </div>
  62. <!--工具栏-->
  63. <div class="box-tools text-center">
  64. <button type="button" onclick='document.getElementById("editForm").submit()' class="btn bg-maroon">保存</button>
  65. <button type="button" class="btn bg-default" onclick="history.back(-1);">返回</button>
  66. </div>
  67. <!--工具栏/-->

5.2 更新company

CompanyController

  1. //${path}/company/update.do
  2. @RequestMapping(path="/update",method = RequestMethod.POST)
  3. public String update(Company company){ //表单的参数名要与实体类的变量名一样。
  4. l.info("update company="+company);
  5. iCompanyService.updateCompany(company);
  6. return "redirect:/company/toList.do";//跳转到列表页面
  7. }

发表评论

表情:
评论列表 (有 0 条评论,329人围观)

还没有评论,来说两句吧...

相关阅读