定时器
<!—开启这个配置,spring才能识别@Scheduled注解 -->
<task:annotation-driven scheduler="qbScheduler" mode="proxy"/>
<task:scheduler id="qbScheduler" pool-size="10"/>
LOCATE(substr,str), LOCATE(substr,str,pos)
第一个语法返回substr在字符串str 的第一个出现的位置。
第二个语法返回子符串 substr 在字符串str,从pos处开始的第一次出现的位置。如果substr 不在str 中,则返回值为0 。
DATE_ADD(a.alarmHappenTime,INTERVAL 10 DAY_MINUTE) 给sql中的time 增加时间
DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 2 HOUR)
FIND_IN_SET(str,strlist) 查找用“,”隔开的数据
content="upgrade-insecure-requests" 将http转为https 再<matter>标签中
@EnableCaching
开启redis 缓存 在启动类
sql 日期
select date_sub(now(), interval 1 hour)
substr(rd_componentId, -3, 1) 获取字符串的几位 -3代表从后面数第三位,1代表几个字符
bootstrapTable 数据开始前进行销毁
$("#approveTable").bootstrapTable('destroy');
sql
根据时间来进行天的比较
day(ad.ad_time) 把时间转为天 day("2020-10-19 14:36:00.0")
js 获取map的所有key
Object.keys()
mybatis 遍历arraylist
<foreach item="item" collection="componentIdList" separator="," open="(" close=")" index="">
#{item, jdbcType=VARCHAR}
</foreach>
拆分字符串
selrow.split("-")[1]
mybatis 模糊查询
concat('%',#{},'%')
map 转json.
fastjson:
JSONObject jsonObject = JSONObject.fromObject(map);
String result = jsonObject.toString();
json-lib
JSONUtils.toJSONString(requestMap);
生成 min-max的随机数
Math.floor(Math.random()*(max-min+1)+min);
获取选中的信息
$("#hisName option:selected").text()
字符串str左端填充若干个字符串pad,直到新的字符串达到指定长度len为止。
LPAD(VARCHAR str, INT len, VARCHAR pad)
关于Scheduled问题
@Scheduled(cron = "0 0/1 * * * ? ")
public void getAAA() {
try {
Thread.sleep(62000);
} catch (InterruptedException e) {
e.printStackTrace();
}
log.info("*******************"+Thread.currentThread().getName());
}
@Scheduled(cron ="0 0/1 * * * ? ")
public void getBBBB(){
log.info("######################"+Thread.currentThread().getName());
}
通过代码输入显示 他们是异步执行的,这个没什么问题,但是AAA他等待时间以及超过了下次的执行时间,所以他的显示是 如果此次没有执行完成,下一个时间点就不会再进入此方法内。等执行完成后才会再进入此方法、
关于 mybatis 中 foreach 标签
id 值为String 的 "a,b,c"
id in
<foreach collection="ids.split(',')" item="id" open="(" separator="," close=")">
#{id}
</foreach>
list 的类型是List
INSERT INTO
aaa
(a, b, c)
VALUES
<foreach collection="list" item="item" index="index" separator="," close=";">
(
#{item.a},
#{item.b},
#{item.c}
)
</foreach>
获取选中的select 的文本值
$("#aaa option:selected") .text()
jquery 赋值之后 触发一下监听事件 trigger(“触发事件类型:change ,click等等”)
mybatis插入方法时 有条件时语法
<updateid="updateBatch"parameterType="list">
update course
<trim prefix="set" suffixOverrides=",">
<trim prefix="name=case" suffix="end,">
<foreach collection="list" item="item" index="index">
<if test="item.name!=null">
when id=#{item.id} then #{item.name}
</if>
</foreach>
</trim>
<trim prefix="title =case" suffix="end,">
<foreach collection="list" item="item" index="index">
<if test="item.title!=null">
when id=#{item.id} then #{item.title}
</if>
</foreach>
</trim>
</trim>
where
<foreach collection="list" separator="or" item="item" index="index">
id=#{item.id}
</foreach>
</update>
可替代LocalStorage的的插件库LocalForage
<script src="https://cdnjs.cloudflare.com/ajax/libs/localforage/1.7.3/localforage.min.js"></script>
<script>
//放数据
localforage.setItem('key', value)
.then(function() {
console.log('数据已成功存储');
})
.catch(function(err) {
console.error('存储数据时出错:', err);
});
//取数据
localforage.getItem('key')
.then(function(value) {
console.log('获取到的数据:', value);
})
.catch(function(err) {
console.error('获取数据时出错:', err);
});
//删除数据
localforage.removeItem('key')
.then(function() {
console.log('数据已成功删除');
})
.catch(function(err) {
console.error('删除数据时出错:', err);
});
//清除数据
localforage.clear()
.then(function() {
console.log('所有数据已成功清除');
})
.catch(function(err) {
console.error('清除数据时出错:', err);
});
</script>
Hutool GenericBuilder 方式 链式调用
Hutool 是一个小而全的 Java 工具类库,通过静态方法封装,降低相关 API 的学习成本,提高工作效率,使 Java 拥有函数式语言般的优雅,让 Java 语言也可以“甜甜的”。其中,Hutool 提供了 GenericBuilder 类,可以实现链式调用,具体实现代码如下:
Student stu = GenericBuilder.of(Student::new)
.with(Student::setName, "磊哥")
.with(Student::setAge, 18)
.build();
python 支持离线安装包命名格式指令
python -m pip debug --verbose
redis 添加key 的形式为key:1, value 会创建key的文件夹