摘要: 上回书说道MySQL的auto-reconnect的问题,可以通过重新建立Connection的方法解决之,于是我就更新了一下该数据库封装 类。这里介绍一下背景:为了使用方便,一些小型项目中,我倾向于直接使用JDBC,这样执行效率和开发效率相对而言都比较高,而实际使用中,所有的数据库 操作,都被封装在一个DatabaseFactory类中(有时间我会考虑一下,整理一下Open Source It)。 在修改这个类的过程中,顺便研究了下数据批量更新的效率问题,分析结果如下。由于对于不同的数据库,效果也不尽相同,这里以MySQL和Oracle为例,并分开描述: MySQL: MySQL本身并不支持 阅读全文
posted @ 2012-06-19 23:08 ChaunceyHao 阅读(970) 评论(0) 推荐(1)
摘要: 换了部iPhone,用的是联通的3G卡,96的套餐,一个月才340M数据,如果要每月1G以上的流量,就得办386的套餐,有些不划算,并且我的移动卡还继续用,算起来就更不划算了。于是先用起来再说。 前3个月,联通每月额外赠送500M的流量,三个月后就恢复到正常的340M每月,所以我得在前几个月把自己的使用方式和习惯建立起来,以便达到套餐使用的最大利用率。第一件事情就是分析自己的每日数据使用量。 于是乎,安装了几个流量监控软件,比如QQ手机管家,Data Usage等。几天监控下来,发现日平均流量很大,至少有几十兆,这样一个月下来,肯定远远超过340M的上限。这些流量监控软件都无法具体看到是哪个. 阅读全文
posted @ 2012-06-19 23:07 ChaunceyHao 阅读(514) 评论(0) 推荐(0)
摘要: [暂定用此方法] 一新项目,考虑到Flex做UI太方便了,准备用Flex做,遇到一个用户鉴权的问题。Flex本身是属于客户端的东西,无法获得Session,所以不能直接得知当前用户是否Session过期。 这里提到的解决方法是:写一个Filter,然后在doFilter()中,查看Session是否存在,如果不存在,就转向登录页面,比如SignIn.html。 看似简单,不过今天走了些弯路,我原先的web.xml配置如下: <filter> <filter-name>authFilter</filter-name> <filter-class>o 阅读全文
posted @ 2012-06-19 23:00 ChaunceyHao 阅读(455) 评论(0) 推荐(0)
摘要: Linux下的/etc/motd的作用是全局的消息提示,我想为每个账户设置自己的motd,就在$HOME/.bashrc的最后加了行: ~/.msg 而.msg的内容如下: #!/bin/sh . /mnt/autofs/dvlp/libs/shell/color-def.sh def_colors echo Welcome to"$c_red" viper project"$c_normal" home directory: echo 1. "$c_blue"vupload-install"$c_normal" 阅读全文
posted @ 2012-06-19 22:59 ChaunceyHao 阅读(403) 评论(0) 推荐(0)
摘要: MySQL缺省配置下,会自动断开那些idle超过8小时的Connection,如果应用程序保持这个连接,8个小时 (wait_timeout=28800秒)后,用JDBC,再次访问数据库,会有异常抛出,据说用autoReconnect=true可以避免这个问 题,不管你信不信,反正我信了,而且好多年前,我就这么做的。 直到最近,在一个鲜有人访问的应用中发现,问题依旧,8小时候后的第一次访问,总是失败,刷新一下页面,就正常了。Google了一下,才知道MySQL不推荐使用autoReconnect=true来解决此问题,http://bugs.mysql.com/bug.php?id=5020, 阅读全文
posted @ 2012-06-19 22:58 ChaunceyHao 阅读(667) 评论(0) 推荐(0)
摘要: 相对前面的工厂、创建者模式而言,适配器模式的变化主要体现在Adapter类型上,因为对客户程序而言,它需要的抽象接口ITarget是固定 的,您只须告诉它用哪个实现了ITarget的类型即可,额外的可能需要把Adapter的一些执行参数配置上去即可。我们看一个现成的例子:.NET Framework中关于Data Provider的设置。 首先,在Machine.Config中有个名为<system.data>的ConfigurationSection,它的下面有 一个名为<DbProviderFactories>的节点(ConfigurationElemeentCol 阅读全文
posted @ 2012-06-19 22:48 ChaunceyHao 阅读(171) 评论(0) 推荐(0)
摘要: 重新排列参数 重新排列参数操作可以使你重新排列方法、索引器中的参数。你将方法的参数重新排列后,所有使用该方法的地方都会相应调整。以下面代码为例: class Person{public void Print(string name, int age, bool sex){}}class Program{static void Main(string[] args){Person p = new Person();p.Print("妞妞",28,false);}} 将光标放置在“Print”方法上使用“重新排列参数”命令,将会弹出下面对话框(29.16): 图29.16 重构 阅读全文
posted @ 2012-06-19 22:46 ChaunceyHao 阅读(199) 评论(0) 推荐(0)
摘要: 理解线程池——外加一个Word模拟程序 事实上系统在创建和销毁一个线程时开销是相当大的。对于线程,系统在创建时不仅要给其分配资源,而且还要在线程之间互相切换,这些都会造成程序性能 降低。为了改进这种情况,.NET提供了线程池这种技术让我们更好的利用线程。通过线程池技术,可以减少频繁的线程创建与销毁对系统性能的影响。我们可以 将线程池看作是系统自己维护的线程的集合。对于每一个进程系统都会给其创建一个线程池,你如果想要执行线程操作,你只需要向线程池发出一个执行某个操作的 请求即可。 线程池在被创建时会带有很多个工作线程,对于每个传入的请求,线程池都将分配一个线程,因此可以异步处理请求,而不会占用主 阅读全文
posted @ 2012-06-19 22:46 ChaunceyHao 阅读(165) 评论(0) 推荐(0)