hazy的零碎知识点(防遗忘)

java

// 如何把int[] 变成 List<Integer>
Arrays.stream(arr).boxed().collect(Collectors.toList())
//boxed()是把int转化为包装类Integer
//Collectors.toList()是传入一个方法引用,利用这个方法收集流中的元素到list中

new Random().nextInt(999);//产生[0,999)的随机数

//阿里巴巴druid的一个工具类,比较字符串时内部已进行判空处理
com.alibaba.druid.util.StringUtils.equals(str1, str2)

//加密密码
MD5Encoder.encode(password.getBytes())

在这里插入图片描述

spring

Spring的IOC容器是放在servletContext中的
没错就是在学javaweb的时候:pageContext、servletContext的那个servletContext
因为servletContext在web项目中只有一份,即单例,因此spring很容易找到是否已经存在IOC容器

	//这里表面上是单例模式,但实际上使用了代理类,内部使用了ThreadLocal
	//会在用户单独的线程中赋予不同的request请求
    @Autowired
    private HttpServletRequest httpServletRequest;
    
    //跨域请求只需要添加以下注解
	@CrossOrigin 

spring的事务回滚不会受编译时异常所影响,即只回滚运行时异常

springboot默认使用的日志门面是slf4j,实现是logback
直接在代码中使用LoggerFactory.getLogger(xxx.class)即可使用

//SpringBoot如何兼容Spring项目
//在启动类添加以下注解:
@ImportResource(locations = {"classpath:spring.xml"})
// 读取配置文件相关注解
@PropertySource
@Value
@Environment
@ConfigurationProperties
<!-- 如何在mybatis中使用procedure -->
<select id="killByProcedure" statementType="CALLABLE">
        call execute_seckill(
        #{seckillId, jdbcType=BIGINT, mode=IN},
        #{phone, jdbcType=BIGINT, mode=IN},
        #{killTime, jdbcType=TIMESTAMP, mode=IN},
        #{result, jdbcType=INTEGER, mode=OUT}
        )
    </select>

mysql

show processlist;
//显示目前正在执行的语句,可以用来查询是否被锁住
show create table biao\G;
//显示这个表是如何创建的(创建的语句)
row_count()
//返回上一条增删改语句影响的行数

linux

ps -a
# 显示所有的进程,一般搭配管道和grep使用:ps -a | grep mysql
free
# 显示空余运行内存
top
#实时显示所有进程信息
ps
# 显示当前命令行的当前用户的进程
kill pid
# 向目标程序发送终止信号
ls -th
# t:按照修改时间排序 h:文件大小以k、m等形式展现
less hello.java
# 以翻页的形式查看文本 q为退出 b为上一页 空格下一页 G为末尾 1G为开头
# /a 寻找‘a’字符 此时按n就可以到下一个出现的位置
tail -f filename
# 查看实时变化的日志等 -n 20:显示filename最后20行但是没有持续刷新
# -n +5:从第5行开始显示文件
cat -n filename |grep "xxx"
# 搜索关键字附近的日志
netstat -tn
# n:以ip地址形式显示连接 t:tcp连接 -u为udp -l仅显示正在监听的 -p显示对应的程序名
gzip file/dire
# 进行压缩 而解压一般不用gunzip
tar zxvf file.gz
# 进行解压 如果要看里面是什么就用参数-tf
alias bieming='ls -a'
# 给某个命令起别名
yum list installed
# 查看yum里安装了哪些软件
yum install/update/remove/erase package_name
# 安装/更新/移除/完全移除 某个软件
df -h
# 查看挂载硬盘的容量
# 源码安装常用流程
tar -zxvf xx.gz //解包
 cd xx
 ./configure
 make
 make install

项目

与数据库字段一一映射的模型类可称为 DO(Data Object)
在Service层或是实际业务使用的模型可命名为 ‘Model’
返回给前端的模型类可称为 VO(View Object)
可以把多个DO组装成一个Model;把不暴露给前端的信息去除后赋给VO
常用方法:BeanUtils.copyProperties

commons-lang3里StringUtils封装了一系列的功能,可以尝试使用

前后端ajax请求跨域问题:
前端ajax请求添加:
xhrFields:{withCredentials:true}
后端Springboot的controller添加:
@CrossOrigin(allowCredentials = “true”,allowedHeaders = “*”)

//在mapper里面添加keyProperty="id" useGeneratedKeys="true"
<insert id="insertSelective" parameterType="com.hazy.dataobject.UserDO" keyProperty="id" useGeneratedKeys="true">
//在使用insertSelective方法时,传入的模型会被自动赋值id
//这样使用就很方便。userDO没有id值,使用insertSelective就有了
userDOMapper.insertSelective(userDO);
userDO.getId();
insert ignore into biao ...
//使用ignore关键字,当主键冲突时不会报错,而是返回0

//mybatis 使用“别名”可以为类内部的属性进行赋值 当前类有个seckill的类属性
//下面就相当于给属性seckill的seckillId进行赋值了
//适用于简单的映射
select sk.seckill_id,
        sk.user_phone,
        s.seckill_id "seckill.seckill_id",
        from success_killed sk
        inner join seckill s on sk.seckill_id = s.seckill_id

在前端中可能遇到element.style直接使得某个元素不见的情况(display: none),这时候要在css的
display: unset !important; (unset可以换成其他类型)
加上一个!important来抑制element.style
这种情况的出现好像是因为某个js里进行了响应

insert没有竞争行锁 update有 所以先执行insert 根据insert的结果判断是否要update会减少去竞争行锁的时间
insert的行锁只锁插入那行

这个错误是由于权限问题导致的。在操作系统中,每个文件和文件夹都有特定的权限设置,决定了谁可以对其进行读取、写入和执行操作。当你尝试访问一个文件或文件夹时,如果你没有足够的权限,就会出现"PermissionError: [Errno 13] Permission denied"错误。 解决这个问题的方法有几种: 1. 检查文件或文件夹的权限:首先,你可以检查文件或文件夹的权限设置,确保你有足够的权限来访问它们。你可以使用操作系统提供的命令或图形界面工具来查看和修改权限设置。 2. 以管理员身份运行程序:如果你是在Windows操作系统上运行程序,并且遇到了权限问题,你可以尝试以管理员身份运行程序。右键点击程序的可执行文件,选择"以管理员身份运行"选项。 3. 更改文件或文件夹的所有者:如果你是在Linux或Mac操作系统上运行程序,并且遇到了权限问题,你可以尝试更改文件或文件夹的所有者。使用chown命令可以更改文件或文件夹的所有者,例如: ```shell sudo chown your_username filename ``` 将"your_username"替换为你的用户名,"filename"替换为你要更改所有者的文件或文件夹的路径。 4. 使用sudo命令:如果你是在Linux或Mac操作系统上运行程序,并且遇到了权限问题,你可以尝试使用sudo命令以超级用户身份运行程序。使用sudo命令可以暂时提升你的权限,例如: ```shell sudo python your_program.py ``` 将"your_program.py"替换为你要运行的程序的路径。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值