0%

今天做了一个 nginx 项目的迁移,把老的整个 nginx 文件夹拷贝到新的机器上,启动 nginx, 结果报错,信息如下:

1
2
# sbin/nginx
nginx: [emerg] getpwnam("nginx") failed in /nginx/nginx-1.12.2/conf/nginx.conf:3

说明在 nginx.conf 配置文件的第三行有错。查看文件内容:

1
user nginx nginx;

新的机器没有 nginx 这个用户,添加一个便是。

1
# useradd nginx

重启再次启动 nginx,成功。

安装插件

在 IntelliJ IDEA 中使用 Mybatis 可以安装 Free Mybatis Plugin 插件。

这个时候可以很方便在 Mapper DAO 文件和 xml 文件中切换。

在 DAO 中写 @Param 注解

1
2
3
4
5
6
@Mapper
public interface UserMapper {

User getById(@Param("id") Integer id);

}

这样在 xml 文件中,这个id才会有智能提示。会提示id = #{id} 而非 id = #{param}

插入记录后获取主键id

在使用 mysql 的自增主键时,要插入成功后,才能知道主键的值。如果要在插入后,获取id的值,需要在 insert 标签里面添加两个属性。

1
2
3
<insert id="insertSelective" useGeneratedKeys="true" keyProperty="id">
INSERT INTO table...
</insert>

com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of gy.finolo.Outer$Inner (although at least one Creator exists): can only instantiate non-static inner class by using default, no-argument constructor

fasterxml无法实例化非静态内部类。把内部类改为 static 的静态类就可以了。

1
2
3
4
5
6
7
8
9
10
@Data
public class Outer {

private Inner inner;

@Data
public static class Inner {

}
}