tomcat
请求乱码处理方式之一,在server.xml中添加一个属性:
<Connector connectionTimeout = "20000" port = "8080" protocol = "HTTP/1.1" redirectPort = "8443" URLEncoding = "UTF-8">
node
今天花一天的时间去踩了node的坑,输入npm install指定老是报错,说是网络配置错误,此时要检查一下自己的配置文件(c盘用户目录下的.npmrc
)是否配置正确了:
第二个坑就是安装webpack时出现的权限错误,用管理员身份打开cmd即可,而下图的错误只需要重新运行下载命令错误就没了。
第三个是cnpm
指令的错误,使用下面的代码进行cnpm
的安装:
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
如果安装完之后,还是说“cnpm 不是内部命令”,你可以尝试着重新打开cmd,或者检查你的nodejs安装目录下,看刚刚安装的cnpm文件是否都在这里,如图:
再次运行指令就没错了。
webpack
又遇到了一次:“cannot find module 'yargs'”,直接重新装了webpack才好。。
然后在使用html-webpack-plugin
插件的时候,出现了“Error: Cannot find module 'webpack/lib/node/NodeTemplatePlugin'”的错误,解决办法:
// 执行这两条命令
npm i webpack -g
npm link webpack --save-dev
JavaScript
判断对象属性是否存在
JavaScript判断对象的属性是否存在有两种方式:
let user = {
name: 'imain'
}
// 方法一:点表示法
if (user.name) {
console.log(true); // true
} else {
console.log(false);
}
// 方法二:括号表示法
if (user['name']) {
console.log(true); // true
} else {
console.log(false);
}
if中条件不成立的情况
false
undefined
null
0
""
''
NaN
mybatis-plus
逻辑删除
以SpringBoot为例,第一步:
mybatis-plus:
global-config:
# ...
logic-delete-value: 0
logic-not-delete-value: 1
sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector
第二步,在逻辑删除字段上注解@TableLogic
:
@TableLogic
@TableField(value = "is_null")
private Integer isNull;
执行CRUD操作就可以看到效果。
会在mp自带查询和更新方法的sql后面(很重要),追加『逻辑删除字段』=『LogicNotDeleteValue默认值』 删除方法: deleteById()和其他delete方法, 底层SQL调用的是update tbl_xxx set 『逻辑删除字段』=『logicDeleteValue默认值』
分页
一个是比较简单的分页:
public class Person extends Model<Person> { // ... }
new Person().selectPage(new Page(1, 10), new EntityWrapper().eq("", ""));
第二个分三步,xml:
<!-- 自定义需要分页的SQL -->
<select id="selectUserList" resultType="User">
SELECT * FROM user WHERE state=#{state}
</select>
mapper:
public interface UserMapper{//可以继承或者不继承BaseMapper
/**
* <p>
* 查询 : 根据state状态查询用户列表,分页显示
* </p>
*
* @param page
* 翻页对象,可以作为 xml 参数直接使用,传递参数 Page 即自动分页
* @param state
* 状态
* @return
*/
List<User> selectUserList(Pagination page, Integer state);
}
service 调用翻页方法,需要 page.setRecords
回传给页面:
public Page<User> selectUserPage(Page<User> page, Integer state) {
// 不进行 count sql 优化,解决 MP 无法自动优化 SQL 问题
// page.setOptimizeCountSql(false);
// 不查询总记录数
// page.setSearchCount(false);
return page.setRecords(userMapper.selectUserList(page, state));
}