当前访问本站: hits

yjhmily

坚持走自己的路……
posts - 54, comments - 313, trackbacks - 0, articles - 6

2008年12月9日

       假设我们现在有user和org两张表:
1、user用户表 字段包含:id、name、orgId 其中orgId标示该用户所属的组织
2、org组织表   字段包含:id、name
两表之间的关系很简单,一个组织下会拥有多个用户,一个用户属于某个组织。

         在解析之前先普及一下数据库空值(null)的概念:
有很多时候我们都能碰到某表中某字段值为空的情况,空值不等同于字符串中的空格、空串
也不等同于数字类型的0,所以,一般我们用IS NULL 关键字来检索有空值字段的记录。而不是用!=、<>这些判断符。

        接下来,我们给示例库表中做上一些测试数据,如下图:
                             

        有了这些数据,咱们就可以进入正题啦:
一、左连接、右连接
        A Left join(左连接)优先解出左表中所有的记录,包含右表中没有匹配到得记录。
        A Right join(右连接)优先解出右表中所有的记录,包含左表中没有匹配到得记录。

左右连接是相互对应的,所以在这里一并解释。
罗嗦一句如何区分左表和右表:
        在JOIN的左边出现的表叫左表,在JOIN的右边出现的表叫右表
具体体现在SQL语句上即:(以左连接为例)
        左连接语句:SELECT user.name,org.name FROM user LEFT JOIN org ON  user.orgId = org.id
        右链接语句:SELECT user.name,org.name FROM user RIGHT JOIN org ON  user.orgId = org.id
显而易见,该SQL中,user为左表、org为右表
下面我们来看看这两个语句分别执行后的效果:
                                   
        为了更好的看出左右连接的效果,我们再来看看内连接查询出来的效果
        内连接:SELECT user.name,org.name FROM user JOIN org ON  user.orgId = org.id
内连接语句执行后的效果:
                                                    
        很明显:
内连接与左连接相比,检索结果集中漏掉了user表的user3数据
内连接与右连接相比,检索结果集中漏掉了org表的org4数据

posted @ 2010-03-14 18:25 kangxm 阅读(50) | 评论 (0)编辑 收藏

       
        进入10年了,先回顾一下吧:

        08年注定是变化的一年,该死的金融危机上来就搞倒了我待了3年多的公司,到现在还灰常的怀念以前公司的工作氛围和那些一起奋斗的日子。那时候做项目,真的是把项目当自己的孩子来养,很有感情;怀念ing.

        09年注定是压抑的一年,生活压抑,工作压抑,很多压抑。。。压抑到实在不想纠缠。

        10年注定是拼搏的一年,勾画了美丽的图,也承诺了很多事,必须做了。

        10年的那些事在这里留个记录吧,年终的时候再来看;

        1、ZZ的那个网站,我已经答应下来了,不管多难也要搞出来;
        2、WX的那些活,希望我能做的比去年更好,也希望他那边能再多接一些新活;
        3、公司的那摊事,走一步看一步吧,毕竟09年失望太多,希望能找到合适的契机和方向;
        4、考驾照、买车,今年必须实现了,要不5年计划没法划上句号了;


        

posted @ 2010-02-24 10:15 kangxm 阅读(47) | 评论 (2)编辑 收藏

早上读RSS,看到不错的东西,抄录下来


1、  坚持不懈的向团队传达目标

2、  崇拜质量

3、  每天都和项目成员聊上两句

4、  敢于说不,慎于说不

5、  帮助项目成员解决困难,而不是帮他干活

6、  敏感,不将风险留到最后才面对

7、  懂得欢庆

个人觉得总结的蛮好,简单易懂,回想我工作这几年:
不管作项目组成员,还是作Team Manager;
不管项目成功,还是失败;
以上都比较有感触

posted @ 2009-05-12 11:24 kangxm 阅读(52) | 评论 (0)编辑 收藏

不小心把快速启动里面的“显示桌面”图标搞没了,懒得折腾,所以一直用WIN+D,还是觉得不太习惯。总觉得少了点什么......

后来还是把“显示桌面”找回来了!记录一下

以前用过一个自己编写“显示桌面.scf”文件的办法干过,具体操作如下:

记事本输入:[Shell]Command=2IconFile=explorer.exe,3[Taskbar]Command=ToggleDesktop另存为"显示桌面.scf",文件类型为所有文件。然后将文件拖到快速启动栏即可;


不过有点麻烦,这次 google了一下,找到一个更简单的办法;

“start”-->“Run”-->输入“regsvr32 /n /i:u shell32”

显示桌面.jpg

这个时候你会发现你的快速启动栏里面就有了“显示桌面”

posted @ 2009-04-21 10:29 kangxm 阅读(75) | 评论 (0)编辑 收藏

     摘要: 转:唐骏:我的创业第一步
寻找新的发展空间
  我的人生其实经历了很多次失败。考大学是一次失败,留学日本读研究生又是一次失败。我和板仓老师发生冲突后私逃美国的行为,无论如何都是不妥当的。但从另一个角度讲,从日本到美国的人生环境转变,是我的主动选择,也为我未来的职业生涯创造了新的契机。

  阅读全文

posted @ 2008-12-18 11:33 kangxm 阅读(88) | 评论 (0)编辑 收藏

例子在:\jasperreports-3.1.2-project\jasperreports-3.1.2\demo\samples

用ant工具运行就可以看到效果

1. alterdesign

该例子演示了报表编译后,在报表展现的时候如何动态的控制其中的元素
比如让某一个矩形变色或其他

2. antcompile

演示如何让 ant 来编译
3. chart

演示了如何在报表中添加图像,JasperReport是用Scriptlet的方式
往报表中添加图像,而Scriptlet是调用也是开源的jfreechart的Api来
生成图形,去jfreechart看一下,该工具能的图形生成能力也很强
4. datasource

演示了如何在报表中使用各种数据源,能够使用beanarray
beancollection,也可以用自定义的数据源,只要继承了JRDataSource的
两个接口,这个能给用户提供非常大的灵活性,报表的数据不用局限于一
条Sql语句,也可以使用存储过程,对生成报表中的数据也可以排序,二
次检索,等等
5. fonts

各种字体的演示
6. horizontal

演示了水平分栏的报表,演示报表中分了三栏,其中还用到了
textFieldExpression,就像if语句的效果来选择输出的内容
7. hyperlink

演示了各种样式的链接
8. images

演示了如何在报表中加入图像以及图像的显示方式
9. jasper

演示了分组分栏的报表,演示中用了2次group
10. jcharts

演示了调用另一个开源的API jcharts来往报表中加入分析图形,原理同
上chart,如果jfreechart都还不能满足你分析图形的要求,那到jcharts
里找找看吧,说不定有
11. landscape

演示横向的报表
12. nopagebreak

演示比如在IE中不分页的方式打印出报表的内容,通过这个演示也可以
了解报表输出如何配置参数
13. noreport

演示了如何直接通过java程序生成JasperPrint对象来输出
14. noxmldesign

演示了如何直接通过java程序生成JasperDesign对象来动态的生成报
表,根据这个例子,用户可以作出自定义选列的报表,当然比较麻烦,
而且肯定自己要补充他的API库
(JasperReport真是强大啊,呵呵)
15. pdfencrypt

演示了pdf的输出方式,可以给pdf文件加密码,其实就是pdf输出方式的
参数配置,具体有那些参数可配置,去看看API吧
16. printservice

演示了如何直接打印报表
17. query

演示了如何让查询的sql动态起来,比如你可以通过一个Jsp页面传
报表的sql的where条件,order条件,甚至整个sql语句
18. rotation

演示了文字纵向显示的报表
19. scriptlet

演示了如何继承JRDefaultScriptlet,并加入自己的处理语句,这个功能
可是很强大的哦,看看这些接口
beforeReportInit() afterReportInit() beforePageInit()
afterPageInit() beforeColumnInit() afterColumnInit()
beforeGroupInit(String groupName)
afterGroupInit(String groupName)
看看这些名字就知道你能完成那些功能,比如显示一列数据后,马上跟
上该列数据的分析图形,当然你也可以加上自己的方法并在报表中调用
20. shapes

演示了JasperReport中自带的图形,及能配置的参数
当然你也能继承或者覆写JasperReport中的Api生成你要的图形,
21. stretch

演示了如何处理报表中数据拉伸以及带来周围的线及框的拉伸,
你能了解到虽然黑框式表格不是JasperReport中缺省的展现方式,
但在JasperReport中不难实现
22. subreport

演示了子报表,还告诉你一个报表中可以有n个子报表,子报表中还可以
嵌套子报表
23. tableofcontents

演示了如何生成一个有目录的,复杂的报表
24. unicode

演示了各种 字符编码
25. webapp

演示了如何把报表放到一个JavaWeb项目中,可以用Jsp Servlet
applet,笔者做了一个有参数页面,可以选择html pdf applet
输出方式的报表,有兴趣的 我可以在后面放上代码

posted @ 2008-12-09 16:59 kangxm 阅读(358) | 评论 (0)编辑 收藏