• java常用接口范例


    本文记录在一个月的前后台开发过程中,记录java常用接口范例,以备过段时间就忘了;
    java常用接口,如下:
      返回对象返回数组返回布尔值/返回对象数组
      插入数据/修改数据/删除数据
      精确查询/模糊查询
      最大值/最小值
      多表多条件查询,返回列表
      多表查询对应属性,返回有目标属性的列表
      唯一性验证 
      分页
      id自增长日志写入/增删改查时间处理/字符串的循环处理方案
    java工具库的使用如下:
      Map 参数定义 :Map<String, Object> paramMap = new HashMap<>();
      Map 加入参数 :paramMap.put("customer_code", Integer.parseInt(customerCode));
      List  返回对象列表 :List<CustomerPayment> list = customerPaymentService.selectByMap(paramMap);
      利用ArrayList实例化 List集合 :List<String> contriesCode = new ArrayList<>();
      利用 add方法向集合添加对象 :contriesCode.add(item.getContrycode());
      比较-相等比较 :item.getId().equals(id);  // boolean
      表id自增长设置(分两步):
        1. Navicat Premium 表中id字段设为自增长和key;
        2. java程序: domain层设置
          @TableName("tc_cp_type")
          public Entity {
            @TableId(value = "id", type = IdType.AUTO)
            private Integer id;
          }
      版本控制(domian层做的处理) :private static final long serialVersionUID = 1L; // 相当于java类的身份证,serialVersionUID作用是序列化时保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。
      
     

     
    【返回对象】--- 供应商详情
    应用场景:根据id查产品;
    描述:使用 mybatis框架中的方法,不需要写xml;
    代码:
    “controller层”
    “service层”
    【返回数组---多表】--- 产品配置中根据货品二级属性查询产品列表
    应用场景:根据产品属性(多选),查询产品列表;
    描述:自定义查询方法;
    代码:
    “controller层”

    “service层”

     

    “dao层 -> xml”

     
    【返回对象数组】
    应用场景:产品列表中返回blacklist字段,记录了当前产品相关的产品黑名单信息;
    描述:多种自定义查询方法;
    代码:
    “ProductEntity”
    // 产品黑名单相关
    @TableField(exist = false)
    private List<Object> blacklist;
    “service层”
     
     
    【修改数据】
    应用场景:编辑接口;
    描述:update();
    代码:
    “controller层”
    “service层”
    “dao层 -> xml”

    【模糊查询】
    应用场景:自动补全筛选名称,模糊匹配地址等;
    描述:sql使用 like 模糊匹配字段内容;
    代码:
    “controller层”
     “service层”
    “dao层 -> xml”

     
    【是否选择查询】
    应用场景:filter页面,是/否/不选对应查询;
    描述:前端用1/2控制是否选择,不传值对应不选查询。后台;
    代码:
    “controller层(CustomerModel类)”

    “service层”

    “dao层 -> 对应xml增加查询条件”

    “数据库表”

    【最大值】
    应用场景:自动获取员工编号;
    描述:一张表,查询最大值;
    代码:
    “controller层” 

    “service层”

    “dao层 -> xml(dao层代码封装sql语句,进行数据查询)”

    【多表多条件查询,返回列表】
    应用场景:根据产品属性查询产品列表;
    描述:两张表,根据表1的条件(多选)查询表2的数据;
    思路:前端查询条件传回 “a,b,c” 的字符串,后端接受分解需要一个循环查询;
    代码:
    “service层” 

    “dao层 -> xml”

    【多表查询对应属性,返回有目标属性的列表】
    应用场景:根据产品信息查询产品属性,返回有对应属性的产品列表;
    描述:两张表,根据表1的productCode,去查表2对应的属性;
    代码:
    “service层” 
    【唯一性验证】
    应用场景:产品编号验证,验证产品编码,但编辑正常提交;
    描述:一张表,唯一性验证;
    代码:
    “controller层”:selectByMap(param) 为java工具库里面的查询函数,基本的查询都可以使用它来完成!

     
    【分页】
    应用场景:列表页面;
    描述:代码中引入 PageInfo类和selectPage方法进行按照分页信息查询;
    代码:
    “controller层”
    “service层”
    【日志写入】
    应用场景:增删改日志记录;
    描述:用户对于业务的处理的实时记录,在controller层进行处理;
    代码:
    “controller层”:
     1 import com.cmhb.cmcc.core.bean.UserAgent; // 定义用户实体类,后台用户的session持久化对象
     2 import com.cmhb.cmcc.module.customer.domain.CustomerChangeLog; // 定义日志实体类,对应表 tc_customer_change_log
     3 import com.cmhb.cmcc.module.customer.constants.customer.EntityTypeEnum; // 枚举类信息,定义如客户信息,合同信息,所属公司等等,即定位到该条记录操作的业务
     4 import com.cmhb.cmcc.module.customer.constants.customer.MethodTypeEnum; // 枚举类信息,定义如新增,更新,删除等等,即定位到该条记录的操作行为
     5 import org.apache.shiro.SecurityUtils; // 工具函数,用于身份验证的
     6 import com.cmhb.cmcc.module.customer.service.CustomerChangeLogService; // 日志service层实现,服务类
     7 
     8     @Autowired
     9     CustomerChangeLogService customerChangeLogService;
    10 
    11     // 新增
    12     @PostMapping(value= "/blacklist")
    13     public void insert(@RequestBody CustomerBlacklist customerBlacklist) {
    14         customerBlacklistService.insertBlacklist(customerBlacklist);
    15 
    16         // 新增黑名单日志
    17         if (customerBlacklist.getProductCode() != null) {
    18             val changelog = new CustomerChangeLog();
    19             changelog.setEntity(EntityTypeEnum.BLACKLIST.value());
    20             changelog.setType(MethodTypeEnum.NEW.value());
    21             changelog.setCustomerCode(customerBlacklist.getCustomerCode());
    22             changelog.setEntityId(customerBlacklist.getId());
    23             UserAgent user = (UserAgent) SecurityUtils.getSubject().getPrincipal();
    24             changelog.setOperateId(user.getUsername());
    25             customerChangeLogService.insert(changelog);
    26         }
    27     }
     
  • 相关阅读:
    PAT (Advanced Level) Practice 1129 Recommendation System (标记+排序)
    PAT (Advanced Level) Practice 1135 Is It A Red-Black Tree (30分) (红黑树知识+建树+判断)
    PAT (Advanced Level) Practice 1134 Vertex Cover (25分) (存边+标记点!!)
    PAT (Advanced Level) Practice 1133 Splitting A Linked List (25分) (静态链表的遍历)
    PAT (Advanced Level) Practice 1139 First Contact (30分) (unordered_map用来标记+哈希)
    PAT (Advanced Level) Practice 1132 Cut Integer (20分) (atoi、stoi区别、stringstream使用)
    PAT (Advanced Level) Practice 1138 Postorder Traversal (25分) (不键树、法一找规律法二先序中序变后序)
    区间DP学习 LibreOJ-10147 石子合并
    2020 Nowcoder Training
    UVA1347 Tour 动态规划
  • 原文地址:https://www.cnblogs.com/shihangbo/p/7891582.html
Copyright © 2020-2023  润新知