重点文章

tomcat

请求乱码处理方式之一,在server.xml中添加一个属性:

<Connector connectionTimeout = "20000" port = "8080" protocol = "HTTP/1.1" redirectPort = "8443" URLEncoding = "UTF-8">

node

今天花一天的时间去踩了node的坑,输入npm install指定老是报错,说是网络配置错误,此时要检查一下自己的配置文件(c盘用户目录下的.npmrc)是否配置正确了:

1

第二个坑就是安装webpack时出现的权限错误,用管理员身份打开cmd即可,而下图的错误只需要重新运行下载命令错误就没了。

webpack

第三个是cnpm指令的错误,使用下面的代码进行cnpm的安装:

$ npm install -g cnpm --registry=https://registry.npm.taobao.org

如果安装完之后,还是说“cnpm 不是内部命令”,你可以尝试着重新打开cmd,或者检查你的nodejs安装目录下,看刚刚安装的cnpm文件是否都在这里,如图:

cnpm1

cnpm2

再次运行指令就没错了。

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));
}
Last modification:March 2nd, 2018 at 05:24 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment