2019.1.14
买了教程视频 捋一遍 之前看的教程没有的br/>@WebListener
severlet监听器(主要作用 统计)
public class RequestListener implements ServletRequestListener
上下文监听器(资源加载)
public class CustomContextListener implements ServletContextListener
整合mybatis没什么复杂,
操作时候打印sql在配置文件加上mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
2019.1.15
@Transactional 事物
lsof -i:8080 查看端口占用情况
generator 使用方法
打开rapid-gen.bat
- 生成器自带了测试数据库,运行start_db.bat后再运行gen user_info即可生成文件
- 生成器的主要配置文件为generator.xml,里面修改数据库连接属性
- template目录为代码生成器的模板目录,可*调整模板的目录结构
templateRootDir:C:\Users\林博轩\Documents\WeChat Files\lbx345\Files\generator-hcb\generator-hcb\template
Usage:
gen table_name [include_path]: generate files by table_name
del table_name [include_path]: delete files by table_name
gen [include_path]: search database all tables and generate files
del [include_path]: search database all tables and delete files
quit : quit
[include_path] subdir of templateRootDir,example: 1. dao 2. dao/,service/
please input command:
输入命令gen 表名(t_city)
即可到处实体类/mapper/mtbatis/service2019.1.16
mac logback 日志权限
老大更改了logback生产文件的目录,今早项目跑不起来了,提示找不到/opt/work/logs/****.log 但同事跑起来没问题,查找资料+问老大 解决问题。
原因:我的mac 根目录下没有opt文件,同事的电脑都是windows则没有问题 因为window没这些权限问题
解决方案 在根目录下 sudo mkdir opt 用高权限方式新建opt文件目录
项目就可以跑起来了2019.1.17
写业务
case when and/or使用
SELECT package_times - play_times as times,CASE WHEN device_no=#{deviceNo} and package_times-play_times>0 THEN 1 ELSE 0 END AS STATUS FROM t_race_order WHERE user_id = #{userId} AND pay_status = 1 ORDER BY create_time DESC
mybatis 返回类型错误解决
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: Error instantiating interface com.hcb.cloud.mapper.race.RacePropOrderMapper with invalid types () or values (). Cause: java.lang.NoSuchMethodException: com.hcb.cloud.mapper.race.RacePropOrderMapper.<init>()
解决:返回值类型写错 写成mapper了。。。
tabbitMQ 主题模式Topic
老大通俗讲解:多个消费者订阅一个主题 当主题生产了一条消息后 多个消费者都接到了 但经过订阅着路由转发 (实际情况是appid) 转发到具有执行权的消费者。
百度搜索了解:rabbitMQ模式 搜的是有5种
insertUseGeneratedKeys 返回id 用法
正确用法:
RacePropOrderEntity racePropOrderEntity = RacePropOrderEntity.buildPropOrder(raceGameRequestVo);
racePropOrderMapper.insertUseGeneratedKeys(racePropOrderEntity);
return RacePropOrderIdVo.build(racePropOrderEntity.getId());
错误用法:该方法获取的int指总是1 (不是id,是插入成功状态)
int i = racePropOrderMapper.insertUseGeneratedKeys(racePropOrderEntity);
2019.1.18
上午 写业务
一些地方增加了@async异步方法 用起来很方便