首页 > 技术文章 > java常用接口范例

shihangbo 2017-11-24 17:23 原文

本文记录在一个月的前后台开发过程中,记录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     }

 

 

推荐阅读