redis方法实战
redisUtil.set(k,v);存放值v
redisUtil.get(k);取出值v
redisUtil.del(k);删除值v
redisUtil.expire(k,time);设置v失效时间
redisUtil.removeAll("x");移除全部含有x的k
redisUtil.set("ckb","11"); redisUtil.set("ckb",1); 1会替代11 输出结果为1
redisUtil.set("ckb",(int)redisUtil.get("ckb")+1); 结果为2 因为两个都是数据类型 符号+为数字运算
redisUtil.set("ckb",(int)redisUtil.get("ckb")+"1"); 结果为11 因为“1”为字符类型 此时符号+作连接符使用
mysql
1. 数据库表规范
建表规范:是一点要遵循多个字段使用_拼接。例如sys_user、sys_dict、sys_log。
新增表字段的规范:
1) 望文生义,比如用户名称名字为user_name,用户编码为user_code,两个单词组合。看到字段名称可以直接从名字上看出字段意思。(一定切记不要用拼音或者不写注释!!!!)
补充:(注释的作用,梳理思路)
// 1.通过用户名去数据库中查询用户信息。
// 2.拿到用户信息后,对比登录时候输入密码和查询出来的用户密码做对比。不一致报错,提示账户密码错误。
// 3.如果登录账号密码错误,redis错误次数记录加1.如果错误次数达到5的时候,该账户冻结(修改用户的状态)。
// 4.如果登录成功,返回一个token。
2)多个单词拼接使用_拼接。比如用户名称名字为user_name,用户编码为user_code,两个单词组合。
3)代码中一定要使用驼峰命名法。实体的字段对应数据路字段。userName对应user_name。
mapper接口说明
public SysUser getUserByName(@Param("username") String username);
<select id="getUserByName" resultType="org.jeecg.modules.system.entity.SysUser">
select * from sys_user where username = #{username} and del_flag = 0
</select>
SysUser是返回类型。表示getUserByName返回的数据是一个对象类型。和sql中的resultType类型一致。
getUserByName方法名是和sql中的id的值一致。
入参【重点】:@Param("username") String username ,username值用于接收service中调用此方法时候传的值。这个值就被username接收,在sql中#{username}占位符就被username的值替换掉。比如 调用getUserByName的时候入参传了“admin”的用户名,那么在sql中#{username}就替换成了“admin”。所以呢 完整执行的sql就是select * from sys_user where username = 'admin' and del_flag = 0。