存档

文章标签 ‘数据库’

Spring JdbcTemplate 具名参数使用简介

2016年2月28日 2 条评论

公司原有项目中,因为以前赶时间,有些地方做的稍微粗糙了一些,某些地方存在 N+1查询问题。最近这两个月再做一个新项目。所有,以前踩过的坑,希望这次能尽量避免。比如 N+1查询问题

公司技术方面,Dao 层使用的是 Spring JdbcTemplate;数据库使用的是 MySQL。所以,关于这次的主题,D瓜哥 也只关注 Spring JdbcTemplate 和 MySQL。

从出坑到入坑

讲述解决办法之前,D瓜哥 先说明一下背景问题:一个订单 Order 中,会有多个订单元素 OrderItem,在查看订单列表时,需要根据订单 ID 查询相关的订单元素信息。查询方式有两种:一、在循环中,每次循环根据一个订单 ID 查询一个订单对应的订单元素信息。这就是典型的 N+1查询问题。另外一种方式,根据查询出来的所有的订单 ID 一次查询出所有相关的订单元素信息。显然,第二种方式要比第一种方式效率上高很多。这是基本的背景问题。下面来说明一下 D瓜哥 在解决这个问题过程中犯的错误以及更好的解决办法。

看到上述问题时,D瓜哥的第一反应就是使用 IN 就可以很好地解决。开始噼里啪啦写代码:

String sql = " SELECT * " +
        " FROM `order_item` " +
        " WHERE order_id IN ( ? )";

List<OrderItem> orderItemList = getJdbcTemplate().query(sql, new BeanPropertyRowMapper<OrderItem>(OrderItem.class), orderItemArray);

结果一运行,代码妥妥地 阅读全文…

Redis Sentinel 启动脚本

2016年2月18日 没有评论

公司项目中使用到了 Redis Sentinel。以前只用过 Reids。所以,也只了解 Redis 的关闭和启动。至于 Redis Sentinel,那就抓瞎了。每次使用,都是先用现查,特别麻烦。这次在查资料时,在 Github Gist 上查到一个非常不错的启动脚本,可以非常方便地解决这个问题。分享给大家,希望对大家有所帮助。另外, 推荐大家认真阅读一下 阅读全文…

在Mac OSX上通过Homebrew安装PostgreSQL

2015年9月22日 没有评论

最近玩一个 Rails 项目,项目中使用了 PostgreSQL 数据库,正好借此也了解一下 PostgreSQL 。

对于 Ubuntu 系统,阮一峰老师的文章已经非常详细地介绍了关于 PostgreSQL 的安装使用。但是,在 Mac 上有些细节却不是很适用。在上网找资料的时候,各种资料也是零零碎碎,查找起来极不方便。正好整理成文,分享出来,方便自己,也方便需要的朋友参考。

坑已经挖好。听口令:预备,跳……

Homebrew 安装

工欲善其事,必先利其器。D瓜哥准备用 Homebrew 安装 PostgreSQL。所以,我们先来介绍一下 Homebrew 。Homebrew 可以说是 Mac 上居家旅行之必备神器!上可以装软件,下可以一键更新,实乃方便至极!

这样的神器,安装也非常简单,这么娇艳欲滴,实在让人爱不释手啊:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

其实,本来不想加上 Homebrew 的安装了 阅读全文…

分类: 挨踢(IT), 数据库 标签:

强烈推荐十本好书

2014年11月10日 6 条评论

上周三(2014年11月5日)公司搞入职培训,所讲的一些东西和我关注的东西有点“不谋而合”,感觉很爽;周四蔡导(当然就是讲师了)把讲座的PPT群发到技术部邮件组里,参与讨论时,我就询问想推荐一些书,看大家感不感兴趣,结果不少人回应很“激烈”。到周五(2014年11月7日)在公司技术群里求推荐好书,又掀起来一波热潮。大家推荐了不少好书。中国向来是礼仪之邦,正所谓来而不往非礼也!D瓜哥也来推荐一些书。

上面是废话,下面开始转入正题。

推荐原则

从去年找工作,甚至再往前,从上大学开始,到现在为止,翻过不少书(好多没看完,姑且叫翻吧),运气还算不错,确实遇到一些不错的好书,值得反复阅读,细细品味。不过,一次太多,容易把人吓着,所以,暂且推荐十本吧。

另外,这次的介绍主要是面向公司内部同事,考虑到公司所用技术方向,也为了照顾大多数人,推荐的书籍大部分不限于某一语言。不过,因为本人几乎一直从事Java开发,所以,相对来说可能稍微侧重一些;另外,因为从来没有从事过PHP的开发(为了优化博客,折腾Wordpress不算),所以不推荐专门的PHP相关书籍。

最后一个,也是最重要的原则:D瓜哥看过、试过之后有一种“醍醐灌顶”的“顿悟”感。(当然,D瓜哥水平有限,所以“顿悟”的可能比较频繁。这个,牛人、大拿可以直接飞过去了。呵呵)

一、《大话设计模式 》

先说明一下,这本书的代码是用C#实现的,搞C#的人可以先高兴一下。

不过,代码都很浅显易懂,可以很方便地“迁移”到其他语言了。所有的技术人员都可以高兴一下了。哈哈

引用本书中的一句话:如果说数学是思维的体操,那么设计模式就是 阅读全文…

MySQL远程访问设置终极解决方案

2014年8月28日 没有评论

数据库对于服务端开发人员来说,几乎就是左膀右臂。几乎每一个服务端开发人员都要和数据库打交道。而MySQL又以其开源免费,小巧玲珑,简单易用,功能强大占据中国数据库使用份额的半壁江山。从去年接触到Vagrant以来,Vagrant以其方便易用深深吸引了D瓜哥。为了尽可能地和生产环境保持尽可能的一致性,减少不必要的问题的发生,Vagrant+Ubuntu+MySQL几乎是绝配。

MySQL允许远程访问的设置

  1. 注释bind-address = 127.0.0.1

    >cd /etc/mysql
    >sudo vim my.cnf
    

    阅读全文…

发一些曾经面试时被问的一些面试题,权当年末总结

2013年12月31日 3 条评论

2013年已经过完了。在2013年里,对D瓜哥来说最重要的一件事情就是面试,长达半年的面试(2013年5月10日离职到2013年11月15日上班)。至于找工作的时候经常玩,这种丢脸的事情,我会到处张扬吗?别人都去写年末总结了,D瓜哥也想写,但是还没动手。所以,滥竽充数,把以前面试时整理的一些面试题拿出来权当年末总结吧。这是D瓜哥2013年10月18日面试时,被问的问题和“昨天面试被问到的一些问题”有不少区别的,而且也确实有一些是我自己不太确定或者说研究得不够透彻。所以, 阅读全文…

昨天面试被问到的一些问题

2013年10月15日 2 条评论

昨天D瓜哥参加了一个Java工程师面试,具体公司名称就不透露了。感觉被问的问题挺有代表性。简单整理一下,发布出来,给需要的朋友一个参考吧。暂时没有解答,抱歉!

  1. 以前工作中收获最大的一次经历是什么?
    这里只说明一下收获吧。

    1. 高性能网站的十四条黄金法则
    2. 高性能JavaScript
  2. 所需知识哪些 阅读全文…

分享D瓜哥最近攒的资料(架构方面)

2013年8月27日 6 条评论

扯扯蛋

以前见过零零散散地介绍一些知名网站架构的分析文章。最近D瓜哥也想研究一下各大知名网站的架构。所以,就搜集了一下这方面资料。限于时间问题,这篇文章分享的文章并没有都看完,所以不保证所有文章的质量。另外,如果有朋友发现更好的文章,欢迎留言告知。再补充进来。

知名网站架构分析

  1. 探索Google App Engine背后的奥秘(1)–Google的核心技术
  2. 探索Google App Engine背后的奥秘(2)–Google的整体架构猜想
  3. 探索Google App Engine背后的奥秘(3)- Google App Engine的简介
  4. 探索Google App Engine背后的奥秘(4)- Google App Engine的架构
  5. 探索Google App Engine背后的奥秘(5)- Datastore的设计
  6. 探索Google App Engine背后的奥秘(6)- 阅读全文…

动员令:诚邀MySQL数据库爱好者为翻译MySQL手册而战

2013年8月7日 4 条评论

动员令

您有没有因小小的MySQL支撑互联网80%以上的业务而惊奇?您有没有觉得MySQL是多么神秘而美丽?您有没有为开源贡献一份力量的热心?您有没有意识到翻译一份中文版本的MySQL文档的重要性?帮助更多的人学习和提高,从手册开始。

请加入我们!将 MySQL5.6 的手册 翻译成我们的母语中文,让全世界五分之一的人口不再因为MySQL文档是英文的而蛋疼!(考虑到性别因素,可能是十分之一,:))让全世界五分之一的人口可以使用自己的母语阅读MySQL手册!

我们的目标是翻译 MySQL 5.6 的手册。我们的核心是以译促学,提高自身MySQL技能。既可以为开源社区做贡献,又可以提高自身知识水平。一举俩得,何乐而不为?

初步计划

道之所存,虽千万人吾往矣!我们计划 阅读全文…

分类: 挨踢(IT), 数据库 标签: , , ,

分享一些资料(侧重Linux)

2013年4月3日 12 条评论

  以前没有攒资料的习惯,这一两年才养成了这个习惯。有次和大学老师聊天,和她说攒了不少资料,她就让我分享给她看。后来和她进一步沟通,觉得整理一下,分给学弟学妹看也许对他们更有帮助。为了这个目标,把资料重新梳理了一下,并且添加了一点我个人对学习方法的理解,分享出来,希望对大家有所帮助!

  本文章面向刚刚踏入挨踢行业的新手,高手可以直接飞过!当然,如果有好的资料,或者一些不同的看法,请留言交流!

学习方法论

  1. 享受学习!寻找学习中的乐子,享受这种乐子!强化学习中的成就感,提高自己对课程,对学习,对生活的自信心!在《只要一部计算机,就可以创造出 阅读全文…