启用 -parameters 编译选项简化 mybatis @Param 注解重复问题

介绍了启用 -parameters 编译选项简化 mybatis @Param 注解重复的问题, 包括 maven 的配置及相应 IDE 中的设置(Eclipse 及 Intellij IDEA)

在使用 mybatis 查询的时候, 只需要定义一个查询接口, mybatis 会为我们注入注解实现或是 xml 实现. 但当我们需要传递参数时, 通常需要 @Param 来定义一个名称, 但经常的, 我们也不难发现, 这个名称与参数名称通常是一样的:

User findUser(@Param("username") String username, @Param("password") String password);

如上, usernamepassword 都重复了.

而之所以要这么使用, 是因为 xml 中 ${xxx} 所引用的名称就来自于 @Param 里定义的值:

<select id="findUser" resultType="net.xiaogd.demo.mybatis.entity.User">
    select * from user where username = #{username} and password = #{password}
</select>

这就带来一个重复的问题, 可否简化这个定义, 使得无需重复录入名称, 甚至完全地去掉呢? 比如像下面这样:

User findUser(String username, String password);

答案是可以的, 下面就来说下怎么去做到这一点.

继续阅读

使用 tail -f 实时观测服务器日志输出

应用部署到服务器上之后, 像开发阶段那样实时查看日志的方式

在开发阶段, 有 console 端的输出, 总是可以方便实时地看到应用的日志. 可一旦应用部署到服务器上之后呢, 日志被输出到文件中, 在某些情景下需要不停地查看日志文件的输出以定位某些问题, 此时是否还能像开发那样实时查看日志呢?

答案是可以的! 这个命令就是 tail -f .

继续阅读

为啥有人老是喜欢追捧那些新语言呢? 老的语言不能解决他们的问题吗? 用了新语言就没问题了?

#软件业的怪现象 很多的软件公司自己内部都管不好, 却经常给别人做各式各样的 "XX管理系统"...

实现强人工智能预计还要 30 年, 但我们一万年也解决不了各个应用间音量不统一的问题...