2019 第三周 开发笔记

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

  1. 生成器自带了测试数据库,运行start_db.bat后再运行gen user_info即可生成文件
  2. 生成器的主要配置文件为generator.xml,里面修改数据库连接属性
  3. 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/service

    2019.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异步方法 用起来很方便

上一篇:ES6学习笔记(十五)Generator函数


下一篇:【算法设计与分析】第九章 字符串算法