∪∩deniable Design

个人JAVA版GAE(google app engine),struts2+jpa+jQuery开发,互相交流 http://iunbug.appspot.com/
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

推荐一个GAE免费博客程序-Micolog

posted @ 2010-09-03 12:45 ∪∩BUG 阅读(117) | 评论 (0)编辑 收藏

在Google app engine 上开发Java版的GAE真是太难了, 不过终于过去了,现在我的GAE也上线了,我的blog终于获得了新生啊, 这个GAE是struts2+JAP开发的,没用JDO也没用Spring.Ajax用的是jQuery. 如果想做GAE开发的希望能互相交流.http://iunbug.appspot.com/index.html

posted @ 2010-09-03 12:43 ∪∩BUG 阅读(297) | 评论 (0)编辑 收藏

Ext JS 4.0新特性抢先看

posted @ 2010-09-03 10:26 ∪∩BUG 阅读(314) | 评论 (0)编辑 收藏

一直对myeclipse6.6总觉得有什么遗憾,后来安装了7.1突然觉得好多了.. 可是,一个很让人无法忍受的问题又摆在眼前,响应太慢了,在目录里右键或者点个一个树总会卡卡的,打开什么文件都是响应太慢,这个问题在用了一段时间后变得更加突出, 能配置的我都配置了,一点起色也没有,实在想放弃,后来我想了想问题在哪里呢?我3GB的内存啊... 终于,终于被我发现了,我因学习建立了很多测试项目,我把除当前编辑的项目外其他会关了,发现奇迹出现啦,运行非常快,打开什么文件几乎是像记事本的感觉,原来打开properties文件会卡假死的问题也没有了,右键也是即时呼出..哈哈哈.. 我欣喜啊...

posted @ 2009-04-25 21:13 ∪∩BUG 阅读(1221) | 评论 (0)编辑 收藏

My SQL 学习笔记
2008 09 29
首先:MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。

(1)系统管理
1.运行CMD后用CD命令到Mysql的BIN目录下(如:E:\Program File\MySQL\MySQL Server 5.0\bin)[以下几步的操作都在此目录下执行]
2.启动MySQL服务:  net start mysql
3.连接MySQL:    mysql -h localhost(主机) -u userName(用户) -p databaseName(可选) (然后输入密码)
4.修改root密码:
 1)新密码不为空
  mysqladmin -u root -p password 新密码 (然后输入:旧密码)
 2)新密码为空
  mysql -u root -p (然后输入:旧密码)
   use mysql;
   update user set password=password('') where user='root';
   flush privileges;  (刷新权限.)
   quit (退出)
 3)原密码为空
   mysql -u root -p (然后回车)
   use mysql;
   update user set password=password('新密码') where user='root';
   flush privileges;  (刷新权限.)
   quit (退出)
(2)基本命令(注意:执行语句以";"号或"\g"结束!)
1.列出My SQL的有多少个数据库:    show databases;
2.选择某个数据库:          use databaseName;
3.列出当前数据库中的所有表:     show tables;
4.列出某个表的结构:         desc tableName;
5.显示当前数据库:          select database();
6.显示当前用户:           select user();
7.显示时间:             select now();   [按格式显示时间:select date_format(now(),'%Y-%m-%d %H:%i:%s');]
8.显示MySQL版本:          select version();

(3)MySQL实现分页的思路
所谓分页显示,也就是将数据库中的结果集人为的分成一段一段的来显示,这里需要两个初始的参数:    
   
  每页多少条记录(PageSize)?    
  当前是第几页(CurrentPageID)?    
   
  现在只要给一个结果集,就可以显示某段特定的结果出来。    
  至于其他的参数,比如:上一页(PreviousPageID)、下一页(NextPageID)、总页数(numPages)等等,都可以根据前边这几个东西得到。    
   
  以mysql数据库为例,如果要从表内截取某段内容,sql语句可以用:select   *   from   table   limit   offset,   rows。
  (offset是起始行(第一行从0开始),row是要显示的行个数)
  看看下面一组sql语句,尝试一下发现其中的规率。    
   
  前10条记录:select   *   from   table   limit   0,10    
  第11至20条记录:select   *   from   table   limit   10,10    
  第21至30条记录:select   *   from   table   limit   20,10    
  ……    
   
  这一组sql语句其实就是当PageSize=10的时候取表内每一页数据的sql语句,我们可以总结出这样一个模板:    
   
  select   *   from   table   limit   (CurrentPageID   -   1)   *   PageSize,   PageSize    
   
  拿这个模板代入对应的值和上边那一组sql语句对照一下看看是不是那么回事。  

posted @ 2008-09-30 00:58 ∪∩BUG 阅读(401) | 评论 (1)编辑 收藏

这些天都在学习,上J道突然发现了这篇文章,当时心里咯噔一下.......


现代软件和以往传统软件主要区别在于:现代软件基于internet互联网技术,运行于开放的网络环境,不象传统软件只是运行在封闭的局域网,运行环境的区别就决定了软件操作用户的多少,在一个开放互联网环境, 你的软件系统用户是不断增长,特别是那些对所有人群开放的社区网站系统,更是承受前所未有的访问负载。那么,这些软件系统承受的压力主要会集中在软件的哪个环节呢?如果你使用传统软件的设计思路,那么无疑压力都集中在数据库上。

  随着用户的爆发量增长,在某个凌晨醒来时,你发现:数据库已死。

  传统软件系统实则应该叫数据库软件系统,是一个数据库系统,开发这样的系统非常简单,成本 也非常低廉,只要根据需求先设计好数据表结构,然后,就找一些大学毕业生写大量SQL语句,虽然还使用 JAVA/PHP/.NET等语言,但实际上这些语言只是将SQL送往数据库执行的运输工,没有什么价值和地位。

  所以,这样的系统运行在互联网环境下以后,主要负载就集中在数据库的SQL运行上,也就是说:整个软件系统性能关键点就集中在数据库上了,数据库是性能主角,是王者;虽然你购置了昂贵的Websphere/weblogic等应用服务器,但是由于Java只是运输工,根本起不到性能上负载分担的作用。

  著名的社区网站MySpace就是因为一个好的idea,用户疯狂增长,但是系统却不能平滑承受增长的用户访问,这些用户访问网站缓慢、无法访问甚至丢失数据,他们经过几次伤筋动骨的架构升级,在微软SQLServer直接技术支持下, 好容易才勉强应付过去。看看他们痛苦经历,你是否也愿意再来一次呢?详细情况: http://www.jdon.com/jivejdon/thread/34601.html

  从中可以看出,数据库性能微调和挖潜总是有限度的,对数据库性能优化提高性能的步伐永远赶不上用户增长量, 有人也提出数据库集群的概念,其实数据库集群是一个骗人概念,一般只是备份,在集群数量和failover上有制约, 否则,数据库巨头Oracle不会跑到JavaEE阵营摇旗呐喊,还最早推出EJB3服务器,并扬言要收购JavaEE过去老大 Bea Weblogic。

  很显然,数据库成已经为软件系统的主要性能瓶颈了,单纯依靠数据库自救的方式已经行不通,是宣布数据库退出主角时候了,那么由谁来宣布:教皇数据库已死?无疑是Java。

  Java社区早在本世纪初就提出中间件概念,用以取代数据库地位,实则就是将软件系统主要负载从数据库上转移到中间件服务器上,分担负载。 也就是说:Java社区提出:既然数据库已经成为瓶颈,修修补补也无济于事,不如放弃它,不再依赖它。

  也就是说:Java不再做SQL的运输工,不再是跑龙套的了,而是主角,那么如何让Java成为主角呢?那必须依赖对象这个概念,对象是生活在中间件服务器内存中,它又是数据库数据的业务封装,它和数据库有着 千丝万缕的关系,但是它又和关系数据库存在天然矛盾,两者水火不容。

  过去,我们是将业务逻辑写成SQL送往数据库执行,导致数据库成为业务逻辑主要运行瓶颈,那么,如果我们将 业务逻辑用对象概念表达,而不是SQL,那么我们的业务逻辑就围绕内存中的对象反复计算,这样,负载不是集中在 对象运行的中间件服务器上(也就是应用服务器Weblogic/websphere/JBoss/Tomcat)?而对象/中间件都是用Java 语言表达的,无疑,这样的架构,Java才成为主角。

  再进一步想想:如果我们从软件系统开始之初,就使用对象分析设计,不与数据库沾边,整个流程就完全OO,分析设计直至代码都摆脱了数据库影响,这个流程如下:

  分析建模 细化设计(通过Evans DDD) 架构设计 代码实现 调试测试 部署运行。

  那么数据库在什么时候建立呢?数据库表结构的创建可以延缓到部署运行时,由Hibernate/EJB CMP/JPA等ORM技术自动实现。这样, 整个上游环节就不涉及数据库技术,而是使用更符合自然的表达OO方式,软件质量就更高了。我在J道网站已经大量阐述了如何从OO分析 到OO实现的过程,包括我的Jdon框架也直接支持这样一个自然方式。

  现在,很多人已经理解,分析设计要用OO,但是数据库是运行阶段缺少不了的,确实,这是正确观点,我们夺取数据库的王位,不是将它打倒,只是理性和平移交权力重心而已,数据库退出主角地位,让位于Java中间件,也预示着过去数据库为王的时代的结束, 但是数据库会和操作系统一样,成为我们现代软件系统一个不可缺少重要的基础环节。

  正是基于这样事实,虽然我早在2005年喊出“数据库时代的终结一文,回帖长达几百贴, 大部分是怀疑论,不信论,由此可见,由于传统观点影响和不及时与国际新思想同步,国内数据库保皇派还是有相当人数的。我BanQ人微言轻,抛出这些观点被保皇派讥讽为所疯话,那么看看,著名ORM框架Hibernate和SEAM框架创始人Gavin King的一段观点:

  In almost all enterprise applications, the database is the primary bottleneck, and the least scalable tier of the runtime environment. 数据库成为了大多数企业应用的主要瓶颈,也成为了运行环境中最不具伸缩性的层。... PHP/Ruby的用户会说什么都不共享(share nothing)的架构照样具有很好的伸缩性,.... 这些傻瓜真正想的是“除了数据库以外什么都不共享(Share nothing except for the database)”的架构。更多参看这里

  所谓伸缩性,就是弹性,整个软件架构既支持小负载运行,也支持大负载支持,只要增加服务器即可; 由于软件系统负载已经从SQL转移到内存中的对象上,那么我们就可以通过增加这些应用服务器数量,通过分布式计算甚至云计算,达到业务对象在多台应用服务器之间传递共享,而不必通过数据库这个环节,既减轻数据库负载,又能轻松扩充性能,不必走 集中试大型主机之路,只要添置低廉PC服务器即可。经过权威测试:websphere/weblogic的20台PC服务器集群性能不亚于一台SUN/IBM的中型机,性价比已经一目了然了。

  JavaEE的服务器的集群相对于Linux等操作系统集群的好处在于:JavaEE集群能够针对某个繁忙负载大的具体业务功能进行集群,换句话说: 就是做到精确制导,精确解决问题,而显然,Linux操作系统的集群则无法直至业务核心的。

  从另外一个方面看:虽然现在PHP号称走上对象路线,Ruby的铁轨开始铺进企业,但是他们的运行环境实则依赖数据库的, 特别是Ruby On Rails还是最适合Evans DDD对象建模路线,但是目前来讲还是"披着羊皮的狼",批着DDD,实则是以数据库中心。当然相信 ROR等将来会提供分布式计算环境,但是JavaEE在2002年时就通过EJB以及分布式缓存成熟稳定地提供分布式计算的中间件,并且已经大量成熟应用。

  本文结束以前,我相信大家明白,在众多语言平台竞争中,为什么Java能够击败过去拳王数据库,夺得新的拳王冠军,以及他的特点所在。有人可能会说:你忘记谈.NET了,这个不用我回答你,用微软中国董事长张亚勤的话回答:8年前.NET战略很天真, 你会将你的重要业务企业计算依赖一个很天真不成熟的技术吗?除非你自己也很天真:)。
进入原文:http://www.jdon.com/artichect/dbdead.htm

posted @ 2008-09-28 22:50 ∪∩BUG 阅读(405) | 评论 (3)编辑 收藏

     摘要: 关于如何配置请参看:Hibernate学习笔记(一)--用MyEclipse 6.5+MySQL 5.0的环境跑起来 准备:建表 用MySQL在名为STMS数据库中建表Titems  src/org.lxh.hibernate4.TItems.java  1package org.lxh.hibernate4;  2/**...  阅读全文

posted @ 2008-09-01 17:18 ∪∩BUG 阅读(624) | 评论 (1)编辑 收藏

     摘要: 关于如何配置请参看:Hibernate学习笔记(一)--用MyEclipse 6.5+MySQL 5.0的环境跑起来 准备:建表 用MySQL在名为STMS数据库中建表 Titem Tbook Tdvd  src/org.lxh.hibernate3.TItem.java  1package org.lxh.hiber...  阅读全文

posted @ 2008-09-01 17:03 ∪∩BUG 阅读(548) | 评论 (1)编辑 收藏

     摘要: 关于如何配置请参看:Hibernate学习笔记(一)--用MyEclipse 6.5+MySQL 5.0的环境跑起来 准备:建表 用MySQL在名为STMS数据库中建表personx   src/org.lxh.hibernate2.Personx.java  1package org.lxh.hibernate2;  2 ...  阅读全文

posted @ 2008-09-01 16:43 ∪∩BUG 阅读(912) | 评论 (1)编辑 收藏

     摘要: 关于如何配置请参看:Hibernate学习笔记(一)--用MyEclipse 6.5+MySQL 5.0的环境跑起来 准备:建表 用MySQL在名为STMS数据库中建表persons  src/org.lxh.hibernate.Contact.java  1package org.lxh.hibernate;  2  3...  阅读全文

posted @ 2008-09-01 16:12 ∪∩BUG 阅读(592) | 评论 (4)编辑 收藏

仅列出标题
共14页: First 上一页 6 7 8 9 10 11 12 13 14 下一页