通用mapper | |
https://www.cnblogs.com/xiaoxi-3-/p/7839278.html | postman的使用 |
@Table(name="数据库名称") | 是指定实体类对应的数据库表 (实体类中写) |
@Id | 指的是主键映射(实体类中写) |
select(T record) | 根据T对象中的属性名称查询 |
selectOne(T record) | 根据实体中的属性进行查询,只能有一个返回值,有多个结果是抛出异常, |
selectByPrimaryKey(Object key) | 根据主键查询 说明:根据主键字段进行查询,方法参数必须包含 完整的主键属性,查询条件使用等号 |
selectCount(T record); | 说明:根据实体中的属性查询总数,查询条件使用等号 |
insert(T record); | 保存一个实体,null的属性也会保存,不会使用数据库默认值 |
insertSelective(T record); | 说明:保存一个实体,null的属性不会保存,会使用数据库默认值 |
updateByPrimaryKey(T record); | 说明:根据主键更新实体全部字段,null值会被更新 |
updateByPrimaryKeySelective(T record); | 说明:根据主键更新前台属性不为null的值 |
Mapper updateByExampleSelective(要修改的值对象如哪些字段需修改成什么,修改条件如example) | 修改表中一个字段信息,返回值为修改的数量 |
delete(T record); | 说明:根据实体属性作为条件进行删除,查询条件使用等号 |
deleteByPrimaryKey(Object key); | 说明:根据主键字段进行删除,方法参数必须包含完整的主键属性 |
criteria.andEqualTo("name",a) | 条件筛选,name需为a,相当于where |
Example example = new Example(Sku.class); | 相当于sql中的where查询条件 |
Example.Criteria criteria = example.createCriteria(); |
criteria.andEqualTo("spuId",id);可接多个andEqualTo相当于条件 |
List<Sku> skuList = skuMapper.selectByExample(example); |
criteria.andIn("id", Arrays.asList(ids));/ | 相当于sql中的where后的in |
* 统一异常处理类 | |
@ControllerAdvice |
public class BaseExceptionHandler { |
|
@ExceptionHandler(Exception.class) |
@ResponseBody |
public Result error(Exception e) { |
e.printStackTrace(); |
System.out.println("调用了公共异常处理类"); |
return new Result(1,e.getMessage()); |
} |
} |
console.info(变量) | 将数据输出到前台的控制台 |
const | 用于在前端声明常量 |
let | 用于在前端声明变量,只在方法中有效 |
:current-page.sync="currentPage" | .sync代表同步,分页点击不管用时加上 |
CommonsMultipartResolver | 文件上传需要配置解析器,使用 Apache 的 commons-fileupload 等 jar 包支持,但它能在比较旧的 servlet 版本中使用。 |
StandardServletMultipartResolver | 文件上传需要配置解析器,它使用 servlet 内置的上传功能,但是只能在 Servlet 3 以上的版本使用。 |
<!-- 多部分文件上传 --> | 文件上传配置解析器 |
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> |
<property name="maxUploadSize" value="104857600" /> |
<property name="defaultEncoding" value="UTF-8"></property> |
</bean> |
@RestController @Controller与@ResponseBody合并 | |
@RequestMapping("/upload") |
public class UploadController { |
@Autowired |
private HttpServletRequest request;//此处存在线程安全问题 |
@PostMapping("/native") |
public String nativeUpload(@RequestParam("file") MultipartFile file) { |
String path=request.getSession().getServletContext().getRealPath("img");//获取img路径 |
String filePath = path +"/"+ file.getOriginalFilename();//获取图片路径 |
File desFile = new File(filePath); |
if(!desFile.getParentFile().exists()){ |
desFile.mkdirs(); |
} |
try { |
file.transferTo(desFile); |
} catch (Exception e) { |
e.printStackTrace(); |
} |
return "http://localhost:9101/img/"+file.getOriginalFilename(); |
} |
} |
IdWorker idWorker=new IdWorker(1,1); | 雪花算法 |
<!--雪花ID生成器--> | |
<bean id="idWorker" class="com.qingcheng.util.IdWorker"> |
<constructor-arg index="0" value="1"></constructor-arg> |
<constructor-arg index="1" value="1"></constructor-arg> |
</bean> | |
StringUtils.isEmpty(sku.getSoec()) | 判断sku.getSoec()是否为空或null,Spring框架提供StringUtils工具类 |
Serializable | 系统封装的可序列化接口,前端向后端发送请求数据,封装类时需继承它 |
springtask框架 | |
<task:annotation-driven></task:annotation-driven> | 定时任务:web工程下的配置文件开启任务调度 |
xmlns:task="http://www.springframework.org/schema/task" | 定时任务:添加命名空间 |
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd | 定时任务:约束 |
@Scheduled(cron="") | 用于设定程序多久运行,什么时候运行 |
一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。 |
* * * 0 2 ? | |
按顺序依次为 | |
秒(0~59) | |
分钟(0~59) | |
小时(0~23) | |
天(月)(0~30,但是你需要考虑你月的天数) | |
月(0~11) | |
天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT) |
年份(1970-2099)SpringTask是不支持第七个表达式的 | |
其中每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配符。由于"月份中的日期"和"星期中的日期"这两个元素互斥的,必须要对其中一个设置? |
0 0 10,14,16 * * ? 每天上午10点,下午2点,4点 | |
0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时 | |
0 0 12 ? * WED 表示每个星期三中午12点 | |
0 0 12 * * ? 每天中午12点触发 | |
0 15 10 ? * * 每天上午10:15触发 | |
0 15 10 * * ? 每天上午10:15触发 | |
0 15 10 * * ? * 每天上午10:15触发 | |
0 15 10 * * ? 2005 2005年的每天上午10:15触发 | |
0 * 14 * * ? 在每天下午2点到下午2:59期间的每1分钟触发 | |
0 0/5 14 * * ? 在每天下午2点到下午2:55期间的每5分钟触发 | |
0 0/5 14,18 * * ? 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 |
0 0-5 14 * * ? 在每天下午2点到下午2:05期间的每1分钟触发 | |
0 10,44 14 ? 3 WED 每年三月的星期三的下午2:10和2:44触发 | |
0 15 10 ? * MON-FRI 周一至周五的上午10:15触发 | |
0 15 10 15 * ? 每月15日上午10:15触发 | |
0 15 10 L * ? 每月最后一日的上午10:15触发 | |
0 15 10 ? * 6L 每月的最后一个星期五上午10:15触发 | |
0 15 10 ? * 6L 每月的最后一个星期五上午10:15触发 | |
0 15 10 ? * 6#3 每月的第三个星期五上午10:15触发 | |
LocalDate | 时间类,返回当地年月日 |
LocalTime | 时间类,返回当地时分秒 |
LocalDateTime | 时间类,返回当地年月日时分秒 |
Echars开源的百度图表插件(报表用) | https://echarts.baidu.com/官网 |
dobbu中使用注解开发 | http://dubbo.apache.org/zh-cn/blog/dubbo-annotation.html |
Bcrypt随机盐加密 | http://www.mindrot.org/projects/jBCrypt/ |
下载BCrypt放入工程 | |
BCrypt.gensalt() | 生成随机盐,29个字符,随机生成 |
BCrypt.hashpw("123456", gensalt) | 根据盐对密码进行加密 |
Bcrypt.checkpw(原密码,加密后密码) | 返回ture或false来判断是否是该密码 |