数据库表之间的关系处理
多对多: 映射:
主表 (aid ) 中间表(id 主键,2个字段 aid bid联合主键 ) 主表(bid)
新增: 先 添加主表aid,并且得到b主表的id, 再去添加 中间表的aid 和bid
删除: 先 删除中间的 关联关系, 再去删除 主表的 id
查询: 查询对应项: 先得到一张主表的id , 作为关联条件, 利用中间表查另一张主表的数据(用集合去装载),
返回给主页面.
修改: 根据id 先去 删除 中间表 的id的关联关系,再去修改主表的的 数据 id, 再去中间表建立 新的关联关系.
显示:
首先发送ajax 查询到这张表本身的一些信息,回显到页面
其次 发送axios查询所有的关联项 显示 内部再 发送一次ajax 查到关联的关系 利用中间表. 所有的关联项查到
赋值给复选框 表示选中…
jvm 信息 与线程 监视 快速定位问题 arthas
java -jar arthas-boot.jar 启动 arthas dashboard查看GC 信息 堆栈 Eden区 survivor1 survivor2 的 占用信息
CPU 占用信息 ==== > 快速线上 排查问题
CAS : lock cmpxchg (汇编指令)
ApachPOI 用来操作EXcel 表格, 他封装了 几个核心 的对象 供我们来使用:
XSSFWorkBook: 工作簿 代表的是Excel 文件对象
XSSFSheet : 代表Excel 中的 区域对象
row : 每一行数据
cell: 每一个细胞数据 , 单个数据
mysql + mybatis 实现 有就更新 无就添加的操作:
sql需要有主键 , INSERT INTO t_ordersetting(id,orderDate,number,reservations) VALUES(10,NULL,15,18) ON DUPLICATE KEY UPDATE reservations=14;
mybatis mapper参数类型传入的是一个参数 反正 最外层的包装不用,就是说第二层包装属性可以直接获得. 获得 里面的加 .
redis JdeisPool 获得连接资源 getresources connect 最后需要去归还 connect.close();
bug记录: 业务逻辑方面 稍后总结
如果我们用的是 JDK8以上可以DateTimeFormatter 代替 SimpleDateFormat
因为DateTimeFormatter 底层 使用了 LOCK 指令 是CAS compareandExchange 保证了 线程的安全性
mapper映射文件中parameterType是多个如何传参
使用注解,@param
queryUserByuserNameAndPass(@param(''userName")String userName,@param("password")String password)
<select id="queryUserByuserNameAndPass" resultType="User">
select * from user u where u.user_name=#{userName} and u.pass_word=#{passWord}//
</select>
锁升级稍后会讲
## FreeMarker
页面静态化技术
模板template + 文件.ftl + 指令(if assign )
创建一个配置对象,
设置模板文件所在的目录,
设置配置对象的字符集
加载模板文件( 配置对象getTemplate() );
准备模板文件中所需要的数据, 用map封装
创建一个输出流, 需要指定流的编码 utf-8 装饰者 模式
调用api process(map,writer)
关流
**assign 指令**
<#assign linkname= />
${linkname}
<#assign a ={b:“123”…} />
${a.b}
**include 指令**
<#include …/> 导入其他文件
**if 与else指令**
```xml
<#if 键名 = ...>
<#else /if>
list指令
<# list alist as b >
${b.c}
1 判断当天是否有设置 可预约? 没有设置预约信息 则不可预约
2 判断当天预约的余量是否充足
3 判断用户是否重复预约 = 同一个用户在同一天 预约同一个套餐
4 检查用户是会员 不是就直接完成会员的注册…
5 预约成功 已预约人数+1
刚刚一直没办法调起这个controller的接口,验证 了 一下地址没有错误,一直以为是后端的问题. 后来发现dispatcherservlet 中 加载了一个地址*.do 去比对了一下前台h5的地址,发现地址不对AXIOS 请求 少加了.do … 用了很多种工具去测试 , postman 用了 感觉不太好 idea 自身有集成 接口调试工具 建议使用idea自带的