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