前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java Web技术经验总结(七)

Java Web技术经验总结(七)

作者头像
阿杜
发布2018-08-06 11:40:55
2280
发布2018-08-06 11:40:55
举报
文章被收录于专栏:阿杜的世界阿杜的世界
  1. apache-commons-collections升级 apache-commons项目群的地址在:link。最近开发时发现,原来的apache-commons-colllections依赖库不能用了,然后去官网查了下,发现近期apache-commons-collections进行了迁移。如下所示:

apache-commons项目迁移

  1. MyBatis中,#和$符号的区别?SQL的参数读取要用#,表示占位符;给出如下SQL语句:
代码语言:javascript
复制
<select id="getByKpInPaging" resultMap="calllogNumberOutgoingBeanResultMap">
    SELECT
      DISTINCT a.number, a.outgoing_count, b.name, b.icon
    FROM
         a_detail a outer join b_detail b
    WHERE
      calllog.kp=#{kp}   AND  contact.kp=#{kp}     AND      contact.number=calllog.number
   LIMIT #{start}, #{pageSize}
</select>

如果我在获取kp参数的时候使用#符号,则执行过程中,参数会以占位符的形式出现,并按照参数的类型赋值。当表中该参数有索引的时候,只有类型对才能用到索引。例如,这里的kp在表中有索引,那么只有用#{}传入参数才可用到索引。如果用$符号,则MyBatis会做明文替换,传递给MySQL的SQL语句也没有指定正确的数据类型,就用不到kp的索引。

  1. 在HashMap中,如何使用可变对象作为key? 参考:Java 用自定义类型作为HashMap的键
  2. 在JavaWeb开发中,你需要掌握的MySQL知识,可以参考:MySQL总结这篇文章。
  3. insertOrUpdate语句,通过Insert...values() on duplicate key update ....语句实现,这里有两点需要注意:
  • 影响行数:insert 1、update 2、和当前row的值完全相同则为0;
  • select LAST_INSERT_ID() 返回值:在insert ... on duplicate key update...语句中,insert返回刚刚插入的记录的ID;update 无意义。
  1. 通过正则表达式匹配正确的IP4地址,参考link正则表达式如下:
代码语言:javascript
复制
^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
  1. 在Spring MVC项目中,可能需要添加业务监控日志,我们这里用到Spring AOP功能。在Controller中添加AOP,可能会出现拦截方法不生效的情况,这种情况可以参考SpringAOP拦截Controller,Service实现日志管理(自定义注解的方式);另外,也可以利用filter、mvc interceptor或者method intercetpor实现,对于需要统计方法的运行时间,使用method interceptor最合适,参考使用方法拦截器MethodInterceptor和AOP统一处理log
  2. 开发过程中的代码质量规范,利用google check style规范,在intelij idea中也有对应的check-style插件可供使用。
  3. 在开发的过程中,有时会对某个项目的代码行数感兴趣,对于git管理的代码库,可以使用如下命令统计:
代码语言:javascript
复制
git log --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s removed lines: %s total lines: %s\n", add, subs, loc }'
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016.06.30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档