JAVA—咖啡馆

——欢迎访问rogerfan的博客,常来《JAVA——咖啡馆》坐坐,喝杯浓香的咖啡,彼此探讨一下JAVA技术,交流工作经验,分享JAVA带来的快乐!本网站部分转载文章,如果有版权问题请与我联系。

语源科技BlogJava 首页 新随笔 联系 聚合 管理
  447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks

2009年6月2日 #

posted @ 2017-01-20 17:51 rogerfan 阅读(587) | 评论 (0)编辑 收藏

     摘要: 前面做了app微信支付的回调处理,现在需要做微信公众号的支付,花了一天多时间,终于折腾出来了!鉴于坑爹的微信官方没有提供Java版的demo,所以全靠自己按照同样坑爹的文档敲敲敲,所以记录下来,以供自己及后来人参考,不足之处,还请指正。

首先,我们贴出调用支付接口的H5页面,当然,在这个页面之前,还需要做很多其他的操作,我们一步一步的来。

坑爹的官方文档给了两个不同的支付接口,在微信公众平台开发中文档的“微信JS-SDK说明文档”中,给出的支付方式是下面被屏蔽的那一部分,而在商户平台的“H5调起支付API”中,又给了一份不同的接口,即下面未屏蔽正常使用的接口。关于坑爹的微信提供了两个不同的支付接口,网上搜索结果也是众说纷纷,所以,只有自己试了。当然,为了简单,我直接试了下面这一种,然后奇迹般的成功了。
  阅读全文
posted @ 2016-12-07 15:23 rogerfan 阅读(1534) | 评论 (0)编辑 收藏

     摘要: 前言

模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等。不支持广告等营销类消息以及其它所有可能对用户造成骚扰的消息。具体模板消息运营规则请读 模板消息运营规范

关于使用规则,请注意:

1、所有服务号都可以在功能->添加功能插件处看到申请模板消息功能的入口,但只有认证后的服务号才可以申请模板消息的使用权限并获得该权限;
2、需要选择公众账号服务所处的2个行业,每月可更改1次所选行业;
3、在所选择行业的模板库中选用已有的模板进行调用;
4、每个账号可以同时使用15个模板。
5、当前每个账号的模板消息的日调用上限为10万次,单个模板没有特殊限制。【2014年11月18日将接口调用频率从默认的日1万次提升为日10万次,可在MP登录后的开发者中心查看】。当账号粉丝数超过10W/100W/1000W时,模板消息的日调用上限会相应提升,以公众号MP后台开发者中心页面中标明的数字为准。
关于接口文档,请注意:

1、模板消  阅读全文
posted @ 2016-09-23 17:12 rogerfan 阅读(458) | 评论 (0)编辑 收藏

     摘要: 由于柳峰老师的新书还没有出来,网上也没有过多介绍基于Java语言的开发微信公众平台模板消息的例子,因此有了本文。由于个人表达能力和编程能力有限,请多多包涵。本文仅介绍拥有模板消息权限的微信公众账号开发。

本文分为以下两部分:

1.开发模板消息SDK

2.构造模板消息并发送

首先看一下模板消息接口文档:


模版消息
我的模板模板库返回上一层模板库 / 模板消息接口文档
为了保证用户不受到骚扰,在开发者出现需要主动提醒、通知用户时,才允许开发者在公众平台网站中模板消息库中选择模板,选择后获得模板ID,再根据模板ID向用户主动推送提醒、通知消息。



模板消息调用时主要需要模板ID和模板中各参数的赋值内容。请注意:

1.模板中参数内容必须以".DATA"结尾,否则视为保留字;

2.模板保留符号"{{ }}"

  阅读全文
posted @ 2016-09-23 17:02 rogerfan 阅读(965) | 评论 (0)编辑 收藏

     摘要: 在这篇微信公众平台开发教程中,我们将介绍如何开发模板消息,即如何用程序发送模板消息功能。
本文分为以下三个部分:

申请模板消息权限
开发模板消息SDK
构造模板消息体并发送

一、申请模板消息权限
模板消息的申请需账号已经开通微信支付权限。

在微信公众平台的后台,依次进入“功能->添加功能插件->模板消息”,即可申请模板消息。

  阅读全文
posted @ 2016-09-23 16:44 rogerfan 阅读(362) | 评论 (0)编辑 收藏

     摘要: 注意:以下相关软件是以2015-03-23日能找到的最新的版本为基础提供的教程


一、下载并安装memcached服务器端软件

这个就好比mysql数据库,必须安装mysql服务器端软件。

1、下载服务端memcached软件

32bit:下载 memcached-win32-1.4.4-14.zip(直接下)里面包含6个文件,将解压后的文件夹随便放在什么位置(例如:D:\wamp_win7\bin\memcached-win32-1.4.4-14,我本地使用wamp搭建的服务器)。
memcached-win32-1.4.4-14.zip下载页面:http://blog.couchbase.com/memcached-144-windows-32-bit-binary-now-available

  阅读全文
posted @ 2016-09-21 15:21 rogerfan 阅读(542) | 评论 (0)编辑 收藏

     摘要: 首先,我们明确目标,做Tomcat集群的目的是为了提供更高的负载能力,把访问均摊到不同的服务器上。

直观地来说,就是访问test.localhost.com时,nignx会随机将访问请求分发到tomcat1,tomcat2,为了保持session同步,使用memcached去管理session。

为此我们准备的配置清单是: windows x 1 nginx x 1 memcached x 1 tomcat x 2 mysql x 1  阅读全文
posted @ 2016-09-19 09:53 rogerfan 阅读(434) | 评论 (0)编辑 收藏

     摘要: 注:以下批处理是针对tomcat安装版,或者在windows服务中有tomcat服务的解决方案。

定时重启TOMCAT批处理命令:
@echo off
net stop tomcat6
ping 127.0.0.1 -n 20
net start tomcat6

(注:这里的tomcat6根据tomcat在安装时的服务名确定,如tomcat6.0的服务名为tomcat6,这个名字你可以先启动服务器,之后在任务管理器的进程窗口里查看)

如果要在重启tomcat时候,再删除work下的文件和logs目录下的log文件,批处理命令:  阅读全文
posted @ 2016-09-19 09:36 rogerfan 阅读(548) | 评论 (0)编辑 收藏

     摘要: CDN是什么?


谈到CDN的作用,可以用8年买火车票的经历来形象比喻:


8年前,还没有火车票代售点一说,12306.cn更是无从说起。那时候火车票还只能在火车站的售票大厅购买,而我所住的小县城并不通火车,火车票都要去市里的火车站购买,而从县城到市里,来回就是4个小时车程,简直就是浪费生命。后来就好了,小县城里出现了火车票代售点,可以直接在代售点购买火车,方便了不少,全市人民再也不用在一个点苦逼的排队买票了。


CDN就可以理解为分布在每个县城的火车票代售点,用户在浏览网站的时候,CDN会选择一个离用户最近的CDN边缘节点来响应用户的请求,这样海南移动用户的请求就不会千里迢迢跑到北京电信机房的服务器(假设源站部署在北京电信机房)上了。

CDN的优势很明显:(1)CDN节点解决了跨运营商和跨地域访问的问题,访问延时大大降低;(2)大部分请求在CDN边缘节点完成,CDN起到了分流作用,减轻了源站的负载。
  阅读全文
posted @ 2016-07-07 14:45 rogerfan 阅读(1589) | 评论 (0)编辑 收藏

     摘要: 1. CAS 简介
1.1. What is CAS ?
CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的、开源的项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方法(属于 Web SSO )。

CAS 开始于 2001 年, 并在 2004 年 12 月正式成为 JA-SIG 的一个项目。

1.2. 主要特性
1、 开源的、多协议的 SSO 解决方案; Protocols : Custom Protocol 、 CAS 、 OAuth 、 OpenID 、 RESTful API 、 SAML1.1 、 SAML2.0 等。

2、 支持多种认证机制: Active Directory 、 JAAS 、 JDBC 、 LDAP 、 X.509 Certificates 等;

3、 安全策略:使用票据( Ticket )来实现支持的认证协议;

4、 支持授权:可以决定哪些服  阅读全文
posted @ 2016-06-08 10:04 rogerfan 阅读(438) | 评论 (0)编辑 收藏

     摘要: 一、概述

单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。CAS(Central Authentication Service)是一款不错的针对 Web 应用的单点登录框架,本文介绍了 CAS 的原理、协议、在 Tomcat 中的配置和使用,对于采用 CAS 实现轻量级单点登录解决方案的入门读者具有一定指导作用。



二、CAS介绍

CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目(http://www.jasig.org)。CAS 具有以下特点:

1)开源的企业级单点登录解决方案

2)CAS Server 为需要独立部署的 Web 应用

3)CAS Client 支持非常多的客户端(指Web 应用),  阅读全文
posted @ 2016-06-08 10:03 rogerfan 阅读(496) | 评论 (0)编辑 收藏

     摘要: 实施准备:

安装如下应用


1、百度云同步客户端(优点:有回收站,不小心删除的话可以收回,有历史版本管理,不贵,1年3块,可以查看100条历史记录)

2、VisualSVN-Server-2.7.2.msi(建立资源仓库,同步的目标)

3、TortoiseSVN-1.8.2.24708-win32-svn-1.8.3.msi

如有必要,请确保VisualSVN-Server 和 TortoiseSVN对应的Subversion版本一致,后续将介绍如何 自动 commit
  阅读全文
posted @ 2016-05-13 09:34 rogerfan 阅读(978) | 评论 (0)编辑 收藏

posted @ 2016-04-22 18:01 rogerfan 阅读(597) | 评论 (0)编辑 收藏

posted @ 2016-04-22 18:00 rogerfan 阅读(846) | 评论 (0)编辑 收藏

posted @ 2016-04-22 17:58 rogerfan 阅读(669) | 评论 (0)编辑 收藏

     摘要: 本文记录nginx+redis+tomcat实现session共享的过程

nginx安装:http://www.blogjava.net/fanyingjie/archive/2016/04/22/430204.html

redis安装:http://www.blogjava.net/fanyingjie/archive/2016/04/22/430203.html

准备两个tomcat,修改相应的端口




名称 IP 端口 tomcat版本 JDK
tomcat1 10.10.49.23 8080 7.0.40 1.7.0_25
tomcat2 10.10.49.15 8081 7.0.40 1.7.0_25
  阅读全文
posted @ 2016-04-22 17:15 rogerfan 阅读(488) | 评论 (0)编辑 收藏

     摘要: 1,安装redis并配置和启动, tomcat也做相就的下载,其他地方都有,可以在其他地方查阅。
2, 获取tomcat依赖包:
Tomcat使用 从https://github.com/xetorthio/jedis/downloads下载jedis作为java的redis客户端,
从https://github.com/jcoleman/tomcat-redis-session-manager/downloads下载tomcat的redis session manager插件
从http://commons.apache.org/proper/commons-pool/download_pool.cgi下载apache的common pool2包,2.2,将这几个jar包拷贝到tomcat7的lib目录下
包有: redis2.8、jedis.jar、common-pool2.2.jar、tomcat-redis-session-manager-1.  阅读全文
posted @ 2016-04-22 17:14 rogerfan 阅读(442) | 评论 (0)编辑 收藏

posted @ 2016-04-22 17:11 rogerfan 阅读(357) | 评论 (0)编辑 收藏

     摘要: 1.下载redis-3.0.3;
2.tar -zxvf redis-3.0.3.tar.gz
3.make
这里可能会报错,tclsh8.5: not found 发现少了tcl 报错
解决方法:下载,安装tcl
#wget http://downloads.sourceforge.net/tcl/tcl8.5.9-src.tar.gz

#cd /tcl8.5.9-src/unix

#./configure

#make

#make install

接着make ,make test 就没报错了
接着进入redis目录下的src目录
src目录下这些文件作用如下
redis-server:Redis服务器的daemon启动程序
  阅读全文
posted @ 2016-04-22 17:10 rogerfan 阅读(367) | 评论 (0)编辑 收藏

     摘要: 1、redis简介
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hashs(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。
  阅读全文
posted @ 2016-04-22 16:45 rogerfan 阅读(277) | 评论 (0)编辑 收藏

     摘要: 1、技术目标


了解并创建Security框架所需数据表
为项目添加Spring Security框架
掌握Security框架配置
应用Security框架为项目的CRUD操作绑定权限


注意:本文所用项目为"影片管理",参看
http://hotstrong.iteye.com/blog/1156785

2、权限管理需求描述

为系统中的每个操作定义权限,如定义4个权限:
1)超级权限,可以使用所有操作
2)添加影片权限
3)修改影片权限
4)删除影片权限
为系统设置管理员帐号、密码
为系统创建权限组,每个权限组可以配置多个操作权限,如创建2个权限组:
1)"Administrator"权限组,具有超级权限
2)"影片维护"权限组,具有添加影片、修改影片权限
可将管理员加入权限组,管理员登录后具备权限组所对应操作权限
管理员可不属于某权限组,可为管理员直接分配权限  阅读全文
posted @ 2016-03-28 14:01 rogerfan 阅读(507) | 评论 (0)编辑 收藏

     摘要: 一:Git是什么?

  Git是目前世界上最先进的分布式版本控制系统。

  二:SVN与Git的最主要的区别?

  SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。

  Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。  阅读全文
posted @ 2016-03-25 10:18 rogerfan 阅读(299) | 评论 (0)编辑 收藏

     摘要: 关键字:微信公众平台开发
作者:方倍工作室



在这篇微信公众平台开发教程中,我们假定你已经有了PHP语言程序、MySQL数据库、计算机网络通讯、及HTTP/XML/CSS/JS等基础。

我们将使用微信公众账号方倍工作室作为讲解的例子,二维码见底部。

本系列教程将引导你完成如下任务:

创建新浪云计算平台应用
启用微信公众平台开发模式
了解数据收发原理及消息格式
开发实现微信天气预报功能  阅读全文
posted @ 2016-03-22 09:41 rogerfan 阅读(329) | 评论 (0)编辑 收藏

     摘要: 以前写了一篇《Myeclipse 2015 stable 1.0 完美破解方法》,现在跟新一下Myeclipse 2015 stable 2.0 破解方法,此方法来源于贴吧的一篇文章:http://tieba.baidu.com/p/3809637196?pn=1 ;在此先感谢一下作者的付出。下面是我在MAC下破解的图文过程(Linux和windows其实大同小异)。破解方法和我写得《Myeclipse 2015 stable 1.0 完美破解方法》基本一样。这里我用作者的思路:[单击图片可查看高清图片,灰色可先忽略当出问题时回过头来在看]

破解包地址: http://pan.baidu.com/s/1c0x0yqs 密码: natw
(myeclipse软件需要从上面网盘链接里下载,近期官网出来的新版本用此破解包不前无法破解)
注册机我拿源码改了一下,屏蔽了ReplaceJarFile,大家破解就手动吧(主要是替换Jar包那里我懒得改了,也没那个时间)
*注意算号器的作者不是本人,我只是修改了一下,顺便膜拜下作者(别问我作者是谁,我不记得了,  阅读全文
posted @ 2016-03-03 15:21 rogerfan 阅读(877) | 评论 (0)编辑 收藏

     摘要: MyEclipse 2015优化速度方案仍然主要有这么几个方面:去除无需加载的模块、取消冗余的配置、去除不必要的检查、关闭更新。

>MyEclipse 2015下载<

第一步: 去除不需要加载的模块

一个系统20%的功能往往能够满足80%的需求,MyEclipse也不例外,我们在大多数时候只需要20%的系统功能,所以可以将一些不使用的模块禁止加载启动。通过Windows- Preferences打开配置窗口,依次选择左侧的General--> Startup and Shutdown,这个时候在右侧就显示出了Eclipse启动时加载的模块,可以根据自己的实际情况去除一些模块。  阅读全文
posted @ 2016-03-03 15:19 rogerfan 阅读(281) | 评论 (0)编辑 收藏

     摘要: 1. 环境搭建

  1.1 下载

    http://www.sonatype.org/nexus/
    NEXUS OSS [OSS = Open Source Software,开源软件——免费]
    NEXUS PROFESSIONAL -FREE TRIAL [专业版本——收费]。
    所以选择NEXUS OSS  阅读全文
posted @ 2016-03-01 17:36 rogerfan 阅读(337) | 评论 (0)编辑 收藏

     摘要: 分析函数2(Rank, Dense_rank, row_number)



目录
===============================================
1.使用rownum为记录排名
2.使用分析函数来为记录排名
3.使用分析函数为记录进行分组排名

一、使用rownum为记录排名:

在前面一篇《Oracle开发专题之:分析函数》,我们认识了分析函数的基本应用,现在我们再来考虑下面几个问题:

①对所有客户按订单总额进行排名
②按区域和客户订单总额进行排名
③找出订单总额排名前13位的客户
④找出订单总额最高、最低的客户
⑤找出订单总额排名前25%的客户  阅读全文
posted @ 2016-02-26 13:01 rogerfan 阅读(389) | 评论 (0)编辑 收藏

posted @ 2015-12-30 10:09 rogerfan 阅读(570) | 评论 (0)编辑 收藏

     摘要: 因为在jsf要用到jstl标签,这里做有效的整理。在使用这些函数之前必须在JSP中引入标准函数的声明

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
下面是JSTL中自带的方法列表以及其描述  阅读全文
posted @ 2015-12-19 13:48 rogerfan 阅读(509) | 评论 (0)编辑 收藏

posted @ 2015-09-26 16:49 rogerfan 阅读(392) | 评论 (0)编辑 收藏

     摘要: 私服是什么
私服,私有服务器,是公司内部Maven项目经常需要的东东,不总结一下,不足以体现出重视。Nexus是常用的私用Maven服务器,一般是公司内部使用。下载地址是http://www.sonatype.org/nexus/go。默认端口8081,这里我选择最新版nexus-2.5.0-04。

常用功能

Nexus常用功能就是:指定私服的中央地址、将自己的Maven项目指定到私服地址、从私服下载中央库的项目索引、从私服仓库下载依赖组件、将第三方项目jar上传到私服供其他项目组使用。

开启Nexus服务后访问url地址http://localhost:8081/nexus/(推荐使用自己的ip地址),之后登录系统,用户名密码分别是:admin/admin123.

最频繁的就是点击左侧菜单栏的Repositories按钮
  阅读全文
posted @ 2015-09-19 10:35 rogerfan 阅读(488) | 评论 (0)编辑 收藏

     摘要: 1.为什么要用VisualSVN Server,而不用Subversion?

回答:

因为如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装SVN Server为windws service,还要通过修改配置文件来控制用户权限,另外如果要想以Web方式【http协议】访问,一般还要安装配置Apache,如果是新手,岂不是很头痛?而VisualSVN Serve集成了Subversion和Apache,省去了以上所有的麻烦。安装的时候SVN Server已经封装为windws service,Apache服务器的配置也只是在图像界面上,指定认证方式、访问端口等简单操作;另外,用户权限的管理也是通过图像界面来配置。

2.为什么不用TFS?

回答:

因为我们一开始就是用Subversion和TortioseSVN,所以就没有更换其他的软件。至于TFS至今没有用过,其实,我只是看了一些的文章而已,对它也不了解。

3.VisualSVN Serve  阅读全文
posted @ 2015-09-11 16:27 rogerfan 阅读(1312) | 评论 (0)编辑 收藏

     摘要: 本文是关于MySQL数据库性能优化方面的问题,希望对初中级MySQL DBA以及其他对MySQL性能优化感兴趣的朋友们有所帮助。
在平时被问及最多的问题就是关于MySQL数据库性能优化方面的问题,所以最近打算写一个MySQL数据库性能优化方面的系列文章,希望对初中级MySQL DBA以及其他对MySQL性能优化感兴趣的朋友们有所帮助。

数据库属于IO密集型的应用程序,其主职责就是数据的管理及存储工作。而我们知道,从内存中读取一个数据库的时间是微秒级别,而从一块普通硬盘上读取一个IO是在毫秒级别,二者相差3个数量级。所以,要优化数据库,首先第一步需要优化的就是IO,尽可能将磁盘IO转化为内存IO。本文先从MySQL数据库IO相关参数(缓存参数)的角度来看看可以通过哪些参数进行IO优化:

•query_cache_size/query_cache_type (global)

Query cache作用于整个MySQL Instance,主要用来缓存MySQL中的ResultSet,也就是一条SQL语句执行的结果集,所以仅仅只能针  阅读全文
posted @ 2015-09-10 19:22 rogerfan 阅读(478) | 评论 (0)编辑 收藏

     摘要: mysql cache功能分析:

1 mysql的cache功能的key的生成原理是:把select语句按照一定的hash规则生成唯一的key,select的结果生成value,即 key=>value。所以对于cache而言,select语句是区分大小写的,也区分空格的。两个select语句必须完完全 全一致,才能够获取到同一个cache。

2 生成cache之后,只要该select中涉及到的table有任何的数据变动(insert,update,delete操作等),相 关的所有cache都会被删除。因此只有数据很少变动的table,引入mysql 的cache才较有意义。关于这方面的测试,可以参考:《Query Cache,看上去很美》一文。

所以,mysql的cache功能只适用于下列场合:数据变动较少,select较多的table。

那么。在复杂的系统中,如何使用mysql的cache功能呢,基本方法如下:

配置query_cache_type,同时改写程序。

quer  阅读全文
posted @ 2015-09-10 19:20 rogerfan 阅读(489) | 评论 (0)编辑 收藏

     摘要: 开发的应用采用F5负载均衡交换机,F5将请求转发给5台hp unix服务器,每台服务器有多个webserver实例,对外提供web服务和socket等接口服务。之初,曾有个小小的疑问为何不采用开源的 apache、Nginx软件负载,F5设备动辄几十万,价格昂贵?自己一个比较幼稚的问题,后续明白:F5是操作于IOS网络模型的传输 层,Nginx、apache是基于http反向代理方式,位于ISO模型的第七层应用层。直白些就是TCP UDP 和http协议的区别,Nginx不能为基于TCP协议的应用提供负载均衡。


了解了二者之间的区别于应用场景,对Nginx产生浓厚的兴趣,阅读张宴的<实战Nginx>(这个85年的小伙子年轻有为羡慕+妒忌),搞 明白了大致原理和配置,Ubuntu10.10,window下对Nginx+tomcat负载均衡做了配置尝试,将全部请求转发到tomcat,并未做 静态,动态分开,图片防盗链等配置。  阅读全文
posted @ 2015-03-01 11:18 rogerfan 阅读(1553) | 评论 (0)编辑 收藏

     摘要: 就目前形势来看,Web App 正是眼下的一个趋势和潮流,但是,对于Web App的设计可能大家有的不是很了解,下面就将整理好的网页设计的技巧奉献给大家  阅读全文
posted @ 2015-02-13 09:23 rogerfan 阅读(1751) | 评论 (0)编辑 收藏

posted @ 2014-07-16 11:58 rogerfan 阅读(3018) | 评论 (0)编辑 收藏

     摘要: 1、 为什么使用Nexus

如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下 载构件无疑加大了仓库的负载和浪费了外网带宽,如果网速慢的话,还会影响项目的进程。很多情况下项目的开发都是在内网进行的,连接不到maven仓库怎么 办呢?开发的公共构件怎么让其它项目使用?这个时候我们不得不为自己的团队搭建属于自己的maven私服,这样既节省了网络带宽也会加速项目搭建的进程, 当然前提条件就是你的私服中拥有项目所需的所有构件。

2、Nexus下载

下载地址:http://www.sonatype.org/nexus/go

3、Nexus启动

我下载的是zip包,解压后进入\nexus-2.1.2-bundle\nexus-2.1.2\bin\jsw\,根据操作系统类型选择文件夹,我选的是windows-x86-32文件夹,进入后可看到如下所示bat文件。  阅读全文
posted @ 2014-05-26 10:40 rogerfan 阅读(2290) | 评论 (0)编辑 收藏

     摘要: 一、常见的Java内存溢出有以下三种:



1. java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出
JVM在启动的时候会自动设置JVM Heap的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)不可超过物理内存。

可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap的大小是Young Generation 和Tenured Generaion 之和。

在JVM中如果98%的时间是用于GC,且可用的Heap size 不足2%的时候将抛出此异常信息。

解决方法:手动设置JVM Heap(堆)的大小。



2. java.lang.OutOfMemoryError: PermGen space ---- PermGen space溢出。
PermGen space的全称是Permanent Generation space,是指  阅读全文
posted @ 2014-05-16 17:12 rogerfan 阅读(2581) | 评论 (0)编辑 收藏

     摘要: PowerDesigner对数据库反向建立PDM可以使用sql方式,这个很简单,直接导入建表sql文件就可以了。
要说的是使用数据库做源的建模方式,以前弄过一次,很久没弄忘了,这次要弄在网上搜了一下,结果不太满意,于是自己重新整理了一个步骤,贴出来共享一下,也算给自己做个备忘。

注意事先安装好Oracle客户端,并且正确配置好tns。

1、 新建PDM:
选择菜单File->New Model,【Model type】选择Physical Data Model,【Model name】 自由命名,【DBMS】选择“ORACLE Version 10gR2”,OK。  阅读全文
posted @ 2014-02-10 09:29 rogerfan 阅读(2399) | 评论 (0)编辑 收藏

     摘要: 序言
一直以来,报表都是很多项目中一个重要的、不可获取的组成部分。然而其复杂性和专业性又使得程序员不能够也没时间自己设计属于目前手头正在构建的系统的报表模块;即便设计来了又可能由于通用性等原因不能够应用到下一个系统当中,这就导致了报表类库/组件在市场上的火爆。典型的例子就是水晶报表,几乎无处不在。还有一些专门处理中国式报表的组件也陆续出现在软件市场上。然而遗憾的是,他们中的绝大多数都是要收费的--这也无可厚非,毕竟人都是要生存的。所以大多数预算不够充裕的程序员都将目光转向了开源软件,而JasperReport就将是第一个进入他们视线中的佼佼者。
然而代码开源不代表我们就可以大大方方的拿来就用了,人家的文档也是要收费的,所以市面上有关于JasperReport的文档虽然也不少,但大多数都集中在简单应用和介绍基本操作的基础之上。对于复杂的报表设计并不能提供良好的帮助。本文将火力集中在相对复杂的报表设计(不包括图片和超连接等对办公系统或过程没有太大用途的页面元素),交叉表的生成等高级报表设计方案。对于那些基本的操作则留给读者自行体会,相信可以为各位解决一些实际问题。
  阅读全文
posted @ 2013-08-29 10:50 rogerfan 阅读(2356) | 评论 (0)编辑 收藏

     摘要: 1.1 简介
JasperReport是报表的引擎部分,界面设计是用iReport。为什么选择这两个软件呢?因为这两个软件都是开源的,即免费的(虽然某些文档收费,但是磨灭不了我们使用它的理由)。

JasperReport是一个报表制作程序,用户按照它制定的规则编写一个XML文件,然后得到用户需要输出的格式文件。它支持输出的文件格式包括PDF,HTML,XML,XLS,CSV等等。

用JasperReport做报表,可以分为两种方式:

1、 直接利用程序定义一个报表

2、 写一个xml文件来描述这个报表,通常需要借助于iReport

JasperReport做报表时用的都是底层的东西,如线条、静态文本等,底层的好处就是强大、容易控制报表,但缺点就是编写很麻烦。庆幸的是,我们有iReport这个软件,这个软件完全是弥补JasperReport的不足,将底层编写推向可视化,大大的方便了我们。

  阅读全文
posted @ 2013-08-29 10:46 rogerfan 阅读(4154) | 评论 (0)编辑 收藏

     摘要: 有时候当我们注册完的时候系统会提示有一封邮件发送到了你的邮箱,如何做呢?
就要用到spring+velocity+javamail这3个玩意,其实只用了spring,因为其他2个都被spring集成了。
先看代码   阅读全文
posted @ 2013-08-29 10:19 rogerfan 阅读(3097) | 评论 (3)编辑 收藏

     摘要: 安装:
1. 从Oracle网站下载wls1035_oepe111172_win32.exe,约有1G大小。下载地址:http://www.oracle.com/technetwork/middleware/fusion-middleware/downloads/index.html?ssSourceSiteId=ocomen
  阅读全文
posted @ 2013-08-05 15:55 rogerfan 阅读(2446) | 评论 (0)编辑 收藏

     摘要: tomcat的运行模式有3种.修改他们的运行模式.3种模式的运行是否成功,可以看他的启动控制台,或者启动日志.或者登录他们的默认页面http://localhost:8080/查看其中的服务器状态。

1)bio

默认的模式,性能非常低下,没有经过任何优化处理和支持.

2)nio

利用java的异步io护理技术,noblocking IO技术.

想运行在该模式下,直接修改server.xml里的Connector节点,修改protocol为

阅读全文
posted @ 2013-08-01 08:51 rogerfan 阅读(2032) | 评论 (0)编辑 收藏

     摘要: HTTP Post慢速DOS攻击第一次在技术社区被正式披露是今年的OWASP大会上,由Wong Onn Chee 和 Tom Brennan共同演示了使用这一技术攻击的威力。他们的slides在这里:

http://www.darkreading.com/galleries/security/application-security/228400167/slide-show-ddos-with-the-slow-http-post-attack.html

这个攻击的基本原理如下:

针对任意HTTP Server,建立一个连接,指定一个比较大的content-length,然后以很低的速度发包,比如10-100s发一个字节,hold住这个连接不断开。如果客户端持续建立这样的连接,那么服务器上可用的连接将很快被占满,从而导致DOS.

这一攻击引起我注意的原因有这几点:

1. 它可以针对任意Web服务。HTTP协议在接收到request之前是无法对请求内容作校验的,所以即使你的Web应用没有可用form  阅读全文
posted @ 2013-08-01 08:50 rogerfan 阅读(2294) | 评论 (0)编辑 收藏

posted @ 2013-07-15 10:50 rogerfan 阅读(3354) | 评论 (0)编辑 收藏

     摘要: 前几天客户提出要强制使用HTTPS方式访问Tomcat中的相关项目,于是研究了下,现将具体的步骤写下:

主要分2步:让tomcat能使用https--->强制使用https访问

1.让tomcat能使用https

A.在运行命令JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg
RSA -keystore C:\Tomcat\GMAE3.0Tomcat\tomcat.keystore
这样就生成了证书,将证书放到合适的地方(任意地方都可以)

B.打开tomcat目录下的server.xml文件并找到关于ssl的相关段
  阅读全文
posted @ 2013-06-04 11:29 rogerfan 阅读(1074) | 评论 (0)编辑 收藏

posted @ 2013-03-31 05:17 rogerfan 阅读(1368) | 评论 (0)编辑 收藏

     摘要: 最近做一个项目,客户希望可以自己选择想要查看的列表,这样就不好办了,选择列表的名字他们也想自定义,没办法这就需要查看数据表中字段,中文说明,默认标志了。在网上查了部分资料但是发现粘上去的代码都存在问题,无奈只好自己修改了一下,代码如下:

如下代码能正常运行,都是网上查找资料最后拼凑总结出来的。条件就自己加吧。网上好像也有不少类型的东西,这里留着以备不时只需!  阅读全文
posted @ 2013-03-31 04:59 rogerfan 阅读(926) | 评论 (0)编辑 收藏

     摘要: 如果做表单自定义或做数据库管理软件,就必须能自动取得某个用户下数据库的一些信息。比较有用的有:
表名,字段英文名,字段中文名,字段的类型,字段的长度等。其中,字段的中文名按照数据库的记录是无法取到的,但是我们可以变通一下,
通过comments去记录字段中文名。
//取得该用户下所有的表
select * from user_tables;
//取得表名为Sysuser的注释信息
select * from user_tab_comments where table_name = 'SYSUSER';
//取得该用户下表名为Sysuser表的结构
select * from user_tab_columns where table_name='SYSUSER';
//取得该用户下表名为sysuser表中字段的注释信息
select * from user_col_comments where table_name = 'SYSUSER';  阅读全文
posted @ 2013-03-31 04:46 rogerfan 阅读(2503) | 评论 (0)编辑 收藏

     摘要: 目标:
本文主要介绍PowerDesigner中概念数据模型 CDM的基本概念。

一、概念数据模型概述
数据模型是现实世界中数据特征的抽象。数据模型应该满足三个方面的要求:
1)能够比较真实地模拟现实世界
2)容易为人所理解
3)便于计算机实现

概念数据模型也称信息模型,它以实体-联系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充。它从用户的观点出发对信息进行建模,主要用于数据库的概念级设计。

通常人们先将现实世界抽象为概念世界,然后再将概念世界转为机器世界。换句话说,就是先将现实世界中的客观对象抽象为实体(Entity)和联系(Relationship),它并不依赖于具体的计算机系统或某个DBMS系统,这种模型就是我们所说的CDM;然后再将CDM转换为计算机上某个DBMS所支持的数据模型,这样的模型就是物理数据模型,即PDM。  阅读全文
posted @ 2013-02-28 21:53 rogerfan 阅读(637) | 评论 (0)编辑 收藏

     摘要: 需求获取与分析

a)不要在需求获取和分析过程中吝啬你的时间,对需求的明确可以减少你以后设计和开发的改动,提高你所开发软件的可用性。你对它的轻视只可能换来对你的产品修改、计划延迟等方面的惩罚。

b)要使尽各种办法,尽量多的获取客户的需求,主要的方法包括:仔细阅读合同标书和市场资料、与客户直接的谈话交流、让用户观看或使用原型界面提出意见。另外不要忽略内部客户的一些合理需求如测试人员等。

c)进行正规的需求管理,如建立需求文档或使用需求管理数据库等。在文档或数据库中要保留每个需求的详细描述及其来源,最好还能记录一些其他细节信息(如用户的一些原始描述等),另外别忘了确定每个需求的优先级。

d)在设计前组织你的设计人员开会进行需求理解和讨论。由于阅读文字性的信息容易造成一些误解和歧义,最好让需求制定者组织会议,给相关人员(如各子系统设计人员)讲解需求并进行设计讨论。这样做有两个好处,一是避免设计与需求出现偏差,二是激发设计人员产生初步的设计想法。
  阅读全文
posted @ 2013-01-25 15:30 rogerfan 阅读(502) | 评论 (0)编辑 收藏

     摘要: 一:编写目的
本文档的编写旨在探寻规范的软件开发流程、加快软件开发速度、提高软件开发质量、降低项目综合成本。
IT界有一句格言:"You can do it right; you can do it fast; you can do it cheap. Pick two." 而我们要做的就是:提供优质服务、项目周期短、成本低廉
二:总体说明
项目从用户需求说明书的提出,到系统的第一个完整版本的交付使用经历了若干或复杂或简单的过程,但不管项目大小如何一般需要经历以下几个步骤:
1. 需求分析。
2. 撰写需求规格说明书
3. 总体设计
4. 详细设计
5. 编码实现
6. 测试、试运行、上线
7. 验收
8. 日常维护
9. (下一个版本的循环开发)  阅读全文
posted @ 2013-01-25 15:27 rogerfan 阅读(643) | 评论 (0)编辑 收藏

     摘要: 结合本人这几年在项目管理上的总结和得失,本人认为优秀的项目经理要有责任心、要善于沟通、能引导客户、能预测风险、 善于总结、 随需应变、善于激励团队、同时也要懂技术。

  责任心

  作为项目经理首先要有责任心。有了责任心,你会把项目当成自己的孩子,倾注你的全部心血。责任,会驱使你关注项目的进度,千方百计去寻找各种资源,推着项目往前走。甚至吃饭、睡觉,走路、坐车,都想着整个项目团队,想着他们还在加班加点,你可能很自然地给他们带点夜宵、冲杯咖啡,犒劳员工。

  有了项目经理做表率,整个团队会鼎力支持工作,士气非常高,技术问题也迎刃而解,得到领导称赞和客户肯定,项目将朝着预想的方向发展。

  许多开发人员抱怨项目经理一天没干多少事情,而工资还挺高。其实,项目经理一刻都没闲着,他总在想着怎样更好的执行项目计划,调整项目进度等,脑子一直在不停地运转,所以说项目经理是心累。  阅读全文
posted @ 2013-01-23 14:57 rogerfan 阅读(552) | 评论 (0)编辑 收藏

     摘要: 项目经理是项目的领头人,是项目团队灵魂型的人物。项目经理需要具备怎样的良好习惯方能更有助于团队、项目和自我的成功,史蒂芬·柯维博士在《高效能人士的七个习惯》一书中阐述了高效能人事所需要具备的七个习惯:积极主动、以终为始、要事第一、双赢思维、知彼解己、统合综效、不断更新(关于这七个习惯的内涵本文不作描述,有爱好的读者可以去参阅《高效能人士的七个习惯》这本书)。无疑,这七个习惯也是优秀项目经理所需要具备的。然而,从作者多年的工作经验来看,作为项目经理这样一个特别的角色,除了需要具备上述七个习惯外,还需要具备如下与其职位息息相关的六个习惯:目标导向、全局思维、计划先行、关注意点、客户至上和注意团队。以下对这六个习惯进行剖析。
  阅读全文
posted @ 2013-01-23 14:54 rogerfan 阅读(393) | 评论 (0)编辑 收藏

     摘要: 项目背景及概要
  政府项目,项目金额百万级别。属于电子政务范畴,并同时需要开发多套部门应用系统。
  项目启动
  项目启动很重要,这是项目经理判断项目操作的一个最基本点,由于项目性质是政府,目标客户是官僚机构,我一开始并没有去做调研,而是先通过拉关系,建立兄弟般的友情开始,从聊天中我摸清了政府对这个项目的一些基本看法,这对我们实施可是有巨大帮助!属于指导性纲领。
  项目沟通机制
  对于官僚机构,他们最喜欢的就是汇报,有领导的欲望,所以我制定的沟通,每星期碰面一次,每周以工作报告形式汇报。并制定了双方领导通报机制,毕竟政府项目多是领导工程(一把手工程)
  阅读全文
posted @ 2013-01-23 13:36 rogerfan 阅读(560) | 评论 (0)编辑 收藏

     摘要: 为food项目配置了项目管理平台,综合了trac、dotProject、Redmine等几个开源平台,最终选择了Redmine。项目主页 http://www.redmine.org



下面是安装方法:

一、Redmine安装。

1、准备

安装之前请阅读:RailsInstaller简化了Rails在Windows上的安装过程

英文原文:RailsInstaller Provides Easy Rails on Windows Installation

作者:Rob Bazinet 译者:张龙

RailsInstaller向Windows开发者提供了一种便捷的方式以轻松、快速创建Ruby on Rails 3应用。到目前为止,Windows开发者需要自己搭建好Ruby、RubyGems、Rails以及SQLite才能开始创建Rails应用。多亏了来自Engine Yard的Nic Williams博士及其团队,现在一切都变得简单异常。  阅读全文
posted @ 2012-12-26 10:19 rogerfan 阅读(1694) | 评论 (0)编辑 收藏

     摘要: 1. 介绍

Maven是Java开发者中流行的构建工具,Maven的好处之一是可以帮助减少构建应用程序时所依赖的软件构件的副本,Maven建议的方法是将所有软件构件存储于一个叫做repository的远程仓库中。

Maven会从ibiblio.org中的公用仓库中同步构件,这个公用仓库下载缓慢、不稳定,并且不包含一些构件的最新版本,而且不能上传团队私有的构件。通过设置内部Maven仓库,团队可以更有好地利用Maven仓库的优势并且克服使用ibiblio上的仓库时的缺点。

本文着眼于Maven仓库工具应提供的一些功能,列出了选择Maven仓库工具的标准,说明了使用Artifactory设置Maven仓库的相关步骤。在Linux和Windows中设置Maven仓库的过程是相同的,少数不同点在文中已经用高亮显示,本文列出了与这个Maven仓库的使用有关的POM文件的范例,用截图来向用户阐述如何设置Maven仓库,Maven和artifactory配置范例也有列出。  阅读全文
posted @ 2011-10-28 11:08 rogerfan 阅读(1471) | 评论 (0)编辑 收藏

     摘要: SOAP原意为Simple Object Access Protocol(简单对象访问协议),是一个用于分布式环境的、轻量级的、基于XML进行信息交换的通信协议(SOAP is an XML based protocol used to exchange information throughout a distributed environment)。

以下是w3c网站上的定义:

SOAP Version 1.2 (SOAP) is a lightweight protocol intended for exchanging structured information in a decentralized, distributed environment. It uses XML technologies to define an extensible messaging framework providing a message construct that can be exchanged over a variety of underlyi  阅读全文
posted @ 2011-09-24 10:22 rogerfan 阅读(1683) | 评论 (0)编辑 收藏

     摘要: 在传统的RPC编程接口逐渐淡出人们视线的同时,新的、更便于使用且附加了更多特性的RPC编程接口也不断涌现,CORBA作为分布式对象计算技术的典范,在很长一段时间内极大地吸引了大家的注意,但是由于CORBA规范试图覆盖过多的内容,使得CORBA显得过于复杂,也极大地限制了CORBA的应用范围,本系列将向大家介绍几种轻量级的,更适于在Java开发中使用的RPC编程接口:RMI、XML-RPC、SOAP。

RMI(Remote Method Invocation)
与本系列将介绍的其它两种RPC编程接口不同,RMI(Remote Method Invocation)显得有些老旧,它是在Java-IDL加入J2SE之前被引入的。RMI开发流程与CORBA如出一辙(从出现的时间上无法确定RMI是否是按照CORBA规范定制的),因此,其开发过程相对比较烦琐,但是由于RMI是EJB的基础,因此,它在Java开发中具有十分重要的地位。

以下是创建远程方法调用的5个步骤:

1. 定义一个扩展了Remote接口的接口,该接口中的每一个方法必  阅读全文
posted @ 2011-09-24 10:21 rogerfan 阅读(4504) | 评论 (0)编辑 收藏

     摘要: XML-RPC是一种简单的,轻量级的通过HTTP协议进行RPC通信的规范。本文以Apache XML-RPC 3.0为基础,对XML-RPC的基本原理及Apache XML-RPC 3.0的主要特性进行了讨论和分析。

  阅读全文
posted @ 2011-09-24 10:16 rogerfan 阅读(3223) | 评论 (0)编辑 收藏

     摘要: 现在流行安卓系统,鉴于囊中羞涩,买不起手机,所以我就在网上找了个安卓模拟器,特整理了一下,发给大家,对安卓系统感兴趣的朋友不妨拿来解解馋吧。
方法如下:
一.安装java JDK 1.6,并配置以下三个环境变量:
下载地址
1.添加
变量名:JAVA_HOME
变量值:C:\Program Files\Java\jdk1.6.0_10
  阅读全文
posted @ 2011-08-25 14:41 rogerfan 阅读(3634) | 评论 (2)编辑 收藏

     摘要: Tomcat内存设置方法
windows中大家都知道,JAVA程序启动时都会JVM都会分配一个初始内存和最大内存给这个应用程序。这个初始内存和最大内存在一定程度都会影响程序的性能。比如说在应用程序用到最大内存的时候,JVM是要先去做垃圾回收的动作,释放被占用的一些内存。
所以想调整Tomcat的启动时初始内存和最大内存就需要向JVM声明,一般的JAVA程序在运行都可以通过中-Xms -Xmx来调整应用程序的初始内存和最大内存:
如:java -Xms64m -Xmx128m a.jar.
tomcat的启动程序是包装过的,不能直接使用java -X..... tomcat.*来改变内存的设置。在Tomcat在改变这个设置
有两种方法:
1. 适合用%tomcat_home%\bin中的startup.bat脚本启动,需要在环境变量中加上CATALINA_OPTS这个属性 。
如 SET CATALINA_OPTS= -Xms64m -Xmx512m;
ms是最小的,mx是  阅读全文
posted @ 2011-01-11 16:57 rogerfan 阅读(780) | 评论 (0)编辑 收藏

     摘要: 分享一下多年来在myeclipse中支持jquery、ext、YUI、mooto等主流框架的自动完成、提示、调试等方法。百忙之中非常想念各位群友,MMT很快就会回来。以下着重介绍link方式安装,不推荐升级模式安装,升级安装会带来很多问题,并且尝尝安装不成功。

1、从http://update1.aptana.org/studio/3.2/024747/index.html下载aptana studio的eclipse插件 aptana_update_024747.zip

2、在D:\Myeclipse下创建myPlugins文件夹。 (我的myeclipse装在D盘)

3、在 D:\Myeclipse\eclipse\links 下创建一个link文件aptana.link,内容如下:path=D:\\Myeclipse\\myPlugins\\aptana

4、在 D:\Myeclipse\myPlugins中创建文件夹aptana,在这个aptana文件夹下创建名为eclipse的文件夹。 阅读全文
posted @ 2010-12-09 15:40 rogerfan 阅读(1951) | 评论 (0)编辑 收藏

     摘要: 首 先在代码与生产库间建立一个Connection,将读取到的数据放在ResultSet对象,然后再与开发库建立一个Connection。从 ResultSet取出数据后通过TestConnection插入到开发库,以此来实现Copy。代码写完后运行程序,速度太慢了,一秒钟只能Copy 一千条数据,生产库上有上亿条数据,按照这个速度同步完要到猴年马月呀,用PreparedStatement批处理速度也没有提交多少。我想能不能用多 线程处理,多个人干活总比一个人干活速度要快。
假设生产库有1万条数据,我开5个线程,每个线程分2000条数据,同时向开发库里插数据,Oracle支持高并发这样的话速度至少会提高好多倍,按照这 个思路重新进行了编码,批处理设置为1万条一提交,统计插入数量的变量使用 java.util.concurrent.atomic.AtomicLong,程序一运行,传输速度飞快CPU利用率在70%~90%,现在一秒钟可 以拷贝50万条记录,没过几分钟上亿条数据一条不落地全部Copy到目标库。  阅读全文
posted @ 2010-11-26 14:11 rogerfan 阅读(1021) | 评论 (0)编辑 收藏

     摘要: 1. SELECT子句中避免使用 “*”
当你想在SELECT子句中列出所有的COLUMN时,使用动态SQL列引用 ‘*’ 是一个方便的方法.不幸的是,这是一个非常低效的方法. 实际上,ORACLE在解析的过程中, 会将“*” 依次转换成所有的列名, 这个工作是通过查询数据字典完成的, 这意味着将耗费更多的时间.

2.使用DECODE函数来减少处理时间
使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表. 例如:
Sql代码 1.SELECT COUNT(*),SUM(SAL) FROM EMP WHERE DEPT_NO = 0020 AND ENAME LIKE ‘SMITH%’;
2.SELECT COUNT(*),SUM(SAL) FROM EMP WHERE DEPT_NO = 0030 AND ENAME LIKE ‘SMITH%’;
SELECT COUNT(*),SUM(SAL) FROM EMP WHERE DEPT_NO = 0020 AND ENAME LIKE ‘SMITH%’;   阅读全文
posted @ 2010-11-19 14:06 rogerfan 阅读(623) | 评论 (0)编辑 收藏

     摘要: 1、将文件checkout到本地目录
svn checkout path(path是服务器 上的目录)
例如:svn checkout svn://192.168.1.1/pro/domain
简写:svn co

2、往版本库中添加新的文件
svn add file
例如:svn add test.php(添加test.php)
svn add *.php(添加当前目录下所有的php文件)

3、将改动的文件提交到版本库
svn commit -m “LogMessage“ [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)
例如:svn commit -m “add test file for my test“ test.php
简写:svn ci

4、加锁/解锁
svn lock -m “LockMessage“ [--force] PATH
例如:svn lock -m “lock te  阅读全文
posted @ 2010-11-18 10:28 rogerfan 阅读(1357) | 评论 (0)编辑 收藏

posted @ 2010-11-10 11:10 rogerfan 阅读(825) | 评论 (0)编辑 收藏

     摘要: 常见的内存溢出有以下两种:

java.lang.OutOfMemoryError: PermGen space

java.lang.OutOfMemoryError: Java heap space



---------------------------------------------------------

这里以tomcat环境为例,其它WEB服务器如jboss,weblogic等是同一个道理。


一、java.lang.OutOfMemoryError: PermGen space

PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,
这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,
它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主  阅读全文
posted @ 2010-11-08 14:57 rogerfan 阅读(4981) | 评论 (0)编辑 收藏

     摘要: 1. 环境:

1.1. Red Hat Linux 9

1.2. Tomcat 5.5.17

2. 需要解决一下几个问题

2.1. 不同的tomcat启动和关闭监听不同的端口

2.2. 不同的tomcat的启动文件startup.sh 中要指定各自的CATALINA_HOME和CATALINA_BASE这两个环境变量。

阅读全文
posted @ 2010-07-11 19:18 rogerfan 阅读(1634) | 评论 (0)编辑 收藏

     摘要: DWR是一个框架,简单的说就是能够在javascript直接调用java方法,而不必去写一大堆的javascript代码。它的实现是基于ajax的,可以实现无刷新效果。

网上有不少DWR的例子,但大都只是某种方法的调用,本文只在使用层面上介绍DWR,并不涉更多的技术与设计,其目的是让初学者能够很快的学会各种java方法在javascript中是如何调用的。

本文以DWR 1.1 为基础,对于DWR 2.0,因为还没有正式发布版,故不做介绍。

一、dwr配置篇之web.xml

1、最小配置
  阅读全文
posted @ 2010-07-11 19:17 rogerfan 阅读(605) | 评论 (0)编辑 收藏

     摘要: 我的试验主要包括4种:
1.回传一个普通的String字符串.
2.回传一个组织好的Javascript字符串.
3.回传一个Json对象.(需要引入json.jar)
4.回传一个XML对象.
基本实现如下:
其中测试页面为:  阅读全文
posted @ 2010-07-11 19:06 rogerfan 阅读(1586) | 评论 (0)编辑 收藏

     摘要: 一、使用校验规则创建Person-validation.xml文件


为了利用WebWork校验框架实现数据校验有两件事情要做,第一是创建一个validation.xml文件,第二是在需要进行校验的action中加入一个校验interceptor引用。

WebWork允许两种类型的校验 —— per-action和model-based。因为所有的Action对Person引用都要使用相同的校验规则,所以本文将使用model-based类型的校验。

在src/dao/**/model目录下创建Person-validation.xml文件并加入下列内容:
  阅读全文
posted @ 2010-07-11 18:46 rogerfan 阅读(387) | 评论 (0)编辑 收藏

     摘要: 准备工作

  首先先下载Windows版本的SVN服务器(各位都会使用搜索引擎所以就不提供下载地址了),这里我以svn-win32-1.4.3的ZIP解压缩版为例,将其解压缩到目标目录,例如我是解压到D盘下的Subversion目录,把D:\Subversion\bin加到系统环境变量,如果你的解压位置与我不同,那么请按照你的实际路径设置环境变量。

第一步:创建SVN数据库

  打开Windows命令提示符,执行命令svnadmin create F:\SVN,svnadmin create是创建SVN数据库的命令,F:\SVN是你的SVN数据库位置,这里我只是举个例子,你可以自己决定SVN数据库位置,执行完以上命令后就会在F盘下多出一个SVN目录,里面有若干目录和文件,conf目录是用来存放权限配置的,后面会详细说明,dav目录用来提供给apache和mod_dav_svn存储内部数据,db目录是所有版本控制的数据文件,hooks目录用来放置hook脚本文件,locks目录存放Subversion文件库锁定数据,用来追踪存取  阅读全文
posted @ 2010-07-09 09:02 rogerfan 阅读(711) | 评论 (0)编辑 收藏

     摘要: 对比版本
Release 10.2.0.1.0 XE windowsXP
5.0.45-community-nt-log MySQL Community Edition (GPL)

当作计算器
SQL> select 1+1 from dual;
mysql> select 1+1;

mysql> select 1+1 from dual;

显示表结构
SQL> desc 表名
mysql> desc 表名;

SQL> describe 表名
mysql> describe 表名;

mysql> explain 表名;

注意:explain 也可以用来获取执行计划。

需要访问:

User_tables、user_tab_cols、USER_COL_COMMENTS、USER_INDEXES等等字典表。
mysql> show columns fro  阅读全文
posted @ 2010-07-08 15:40 rogerfan 阅读(1552) | 评论 (0)编辑 收藏

     摘要: 需要的软件:

1.apache 2.2.11 (此下载地址被墙,翻*墙可下载,其他版本的Apache可以在这里找到 http://archive.apache.org/dist/httpd/binaries/win32/)

2.Subversion 1.6.5

3.TortoiseSVN 1.6.8

4.TortoiseSVN 1.6.8 中文语言包



安装方法:



1.先安装apache ,没有什么特别的,这里就按照默认安装路径 C:/Program Files (x86)/Apache Software Foundation/Apache2.2/



2.安装Subversion 也按默认路径安装 C:\Program Files (x86)\Subversion
  阅读全文
posted @ 2010-07-06 11:13 rogerfan 阅读(769) | 评论 (0)编辑 收藏

     摘要: maxRequests
同时执行 SQL 语句的最大线程数。大于这个值的线程将阻塞直到另一个线程执行完成。不同的 DBMS有不同的限制值,但任何数据库都有这些限制。通常这个值应该至少是maxTransactions(参见以下)的 10 倍,并且总是大于 maxSessions 和maxTranactions。减小这个参数值通常能提高性能。

例如:maxRequests=“256”
缺省值:512

maxSessions
同一时间内活动的最大 session 数。一个 session 可以maxSessions是代码请求的显式 session,也可以是当线程使用SqlMapClient 实例(即执行一条语句)自动获得的session。它应该总是大于或等于 maxTransactions 并小于 maxRequests。减小这个参数值通常能减少内存使用。

例如:maxSessions=“64”
缺省值:128  阅读全文
posted @ 2010-07-01 11:21 rogerfan 阅读(2091) | 评论 (0)编辑 收藏

     摘要: 1.ibatis中使用缓存
首先设置SqlMapConfig.xml中节点的属性cacheModelsEnabled="true"

然后在具体sqlmap文件中书写

Xml代码







posted @ 2010-06-30 16:58 rogerfan 阅读(212) | 评论 (0)编辑 收藏

     摘要: 最近开始重构公司一套手机论坛系统(为什么我不说wap论坛,是因为需要针对不同的手机浏览器,实现自动适配成wap、html以及wap2.0版本的页面)。原系统存在架构层次不清晰(表现层全jsp,直接配合数据层获取数据),访问速度慢的问题。其使用的OR映射框架是Hibernate,鉴于Hibernate的一些不满足需要情况下,我们在重构的时候换成了iBatis,为了加快访问速度,采用了iBatis的缓存技术。

iBatis的缓存配置比较简单易懂,以我使用的iBatis2.3为例,做以下配置即可实现对某些查询进行缓存:

1、在sqlMap文件中加入cacheModel的配置:





阅读全文
posted @ 2010-06-29 21:55 rogerfan 阅读(948) | 评论 (0)编辑 收藏

     摘要: 1.1. 设置结果页面路径
默认所有的结果页面都存储在WEB-INF/content下,你可以通过设置struts.convention.result.path这个属性的值来改变到其他路径。如:

Xml代码:






则将路径配置到了WEB-INF/page 下。

1.2. 设置Convention搜索包
默认包路径包含action,actions,struts,struts2的所有包都会被struts作为含有Action类的路径来搜索。你可以通过设置struts.convention.package.locators属性来修改这个配置。如:


  阅读全文
posted @ 2010-06-21 10:16 rogerfan 阅读(696) | 评论 (0)编辑 收藏

posted @ 2010-06-21 10:15 rogerfan 阅读(434) | 评论 (0)编辑 收藏

posted @ 2010-06-21 10:13 rogerfan 阅读(358) | 评论 (0)编辑 收藏

posted @ 2010-06-21 10:11 rogerfan 阅读(322) | 评论 (0)编辑 收藏

     摘要: 支持英文、数字、中文(简体)混合分词
常用的数量和人名的匹配
超过22万词的词库整理
实现正向最大匹配算法

//采用正向最大匹配的中文分词算法,相当于分词粒度等于0
MMAnalyzer analyzer = new MMAnalyzer();

//参数为分词粒度:当字数等于或超过该参数,且能成词,该词就被切分出来
MMAnalyzer analyzer = new MMAnalyzer(2);


//增加一个新词典,采用每行一个词的读取方式
MMAnalyzer.addDictionary(reader);

//增加一个新词
MMAnalyzer.addWord(newWord);
  阅读全文
posted @ 2010-06-21 10:10 rogerfan 阅读(3038) | 评论 (0)编辑 收藏

     摘要: 1. 禁止右键点击
view plaincopy to clipboardprint?

1. $(document).ready(function(){

2. $(document).bind("contextmenu",function(e){

3. return false;

4. });

5. });


2. 隐藏搜索文本框文字view plaincopy to clipboardprint?

1. $(document).ready(function() {

2. $("input.text1").val("Enter your search text here");

3. textFill($('input.text1'));   阅读全文
posted @ 2010-06-21 10:09 rogerfan 阅读(281) | 评论 (0)编辑 收藏

     摘要: 1. 各种Query
1.1. 概述
query.toString()查看原子查询

1.2. 使用特定的分析器搜索
IndexSearcher searcher = new IndexSearcher(path );

Hits hits = null;

Query query = null;

QueryParser parser =new QueryParser("contents", new StandardAnalyzer());

query =parser.parse("11 a and hello");

hits=searcher.search(query); //查找 name:11 name:hello 共1个结果

System.out.println("查找 "+query.toString()+" 共" + hits.length() + "个结果");
  阅读全文
posted @ 2010-06-21 10:07 rogerfan 阅读(340) | 评论 (0)编辑 收藏

     摘要: 1. 排序
1.1. Sort类
public Sort()

public Sort(String field)

public Sort(String field,Boolean reverse) //默认为false,降序排序

public Sort(String[] fields)

public Sort(SortField field)

public Sort(SortField[] fields)

Sort sort=new Sort(“bookname”);按照“bookname“这个Field值进行降序排序

Sort sort=new Sort(“bookname”,true) //升序排序

Sort sort=new Sort(new String[]{“bookNumber”,”bookname”,”publishdate”});按照三个Field进行排序,但无法指定升序排序,所以用SortField <  阅读全文
posted @ 2010-06-21 10:06 rogerfan 阅读(647) | 评论 (0)编辑 收藏

     摘要: 1. lucene中主要的类
1.1. Document文档类
1.1.1.常用方法
方法
描述

void add(Field field)
往Document对象中添加字段

void removeField(String name)
删除字段。若多个字段以同一个字段名存在,则删除首先添加的字段;若不存在,则Document保持不变

void removeFields(String name)
删除所有字段。若字段不存在,则Document保持不变

Field getField(String name)
若多个字段以同一个字段名存在,则返回首先添加的字段;若字段不存在,则Document保持不变

Enumeration fields()
返回Document对象的所有字段,以枚举类型返回

Field [] getFields(String name)
根据名称得到一个F  阅读全文
posted @ 2010-06-21 10:05 rogerfan 阅读(333) | 评论 (0)编辑 收藏

     摘要: 1. 概述
Lucene是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎。Lucene以其方便使用、快速实施以及灵活性受到广泛的关注。它可以方便地嵌入到各种应用中实现针对应用的全文索引、检索功能,本总结使用lucene--2.3.2。

2. lucene 的包结构
1、org.apache.lucene.analysis对需要建立索引的文本进行分词、过滤等操作, 语言分析器,主要用于的切词Analyzer是一个抽象类,管理对文本内容的切分词规则。

2、org.apache.lucene.analysis.standard是标准分析器

3、org.apache.lucene.document提供对Document和Field的各种操作的支持。索引存储时的文档结构管理,类似于关系型数据库的表结构。Document相对于关系型数据库的记录对象,Field主要负责字段的管理。

4、org.apache.lucene.index是最重要的包,用于向Lucene提供建立索引时各种操作的支持。  阅读全文
posted @ 2010-06-21 10:04 rogerfan 阅读(228) | 评论 (0)编辑 收藏

     摘要: 4 索引是如何创建的
为了使用Lucene来索引数据,首先你比把它转换成一个纯文本(plain-text)tokens的数据流(stream),并通过它创建出Document对象,其包含的Fields成员容纳这些文本数据。一旦你准备好些Document对象,你就可以调用IndexWriter类的addDocument(Document)方法来传递这些对象到Lucene并写入索引中。当你做这些的时候,Lucene首先分析(analyzer)这些数据来使得它们更适合索引。详见《Lucene In Action》
  阅读全文
posted @ 2010-06-21 09:58 rogerfan 阅读(276) | 评论 (0)编辑 收藏

     摘要: 1 什么是索引
为了使用Lucene来索引数据,首先你得把它转换成一个纯文本(plain-text)tokens的数据流(stream),并通过它创建出Document对象,其包含的Fields成员容纳这些文本数据。一旦你准备好些Document对象,你就可以调用IndexWriter类的addDocument(Document)方法来传递这些对象到Lucene并写入索引中。当你做这些的时候,Lucene首先分析(analyzer)这些数据来使得它们更适合索引。详见《Lucene In Action》

下面先了解一下索引结构的一些术语。

1.1 索引数据结构介绍
1.1.1 术语定义
Lucene中基本的概念(fundamental concepts)是index、Document、Field和term。

ú 一条索引(index)包含(contains)了一连串(a sequence of)文档(documents)。

ú   阅读全文
posted @ 2010-06-21 09:58 rogerfan 阅读(305) | 评论 (0)编辑 收藏

     摘要: 3 索引类关系图
下面逐个介绍与建立索引有关的一些类及它们的关系。



3.1 org.apache.lucene.store.IndexWriter
一个IndexWriter对象只创建并维护一个索引。IndexWriter通过指定存放的目录(Directory)以及文档分析器(Analyzer)来构建,direcotry代表索引存储(resides)在哪里;analyzer表示如何来分析文档的内容;similarity用来规格化(normalize)文档,给文档算分(scoring);IndexWriter类里还有一些SegmentInfos对象用于存储索引片段信息,以及发生故障回滚等。以下是它们的类图:
  阅读全文
posted @ 2010-06-21 09:56 rogerfan 阅读(255) | 评论 (0)编辑 收藏

     摘要: 1 Lucene是什么
Apache Lucene是一个高性能(high-performance)的全能的全文检索(full-featured text search engine)的搜索引擎框架库,完全(entirely)使用Java开发。它是一种技术(technology),适合于(suitable for)几乎(nearly)任何一种需要全文检索(full-text search)的应用,特别是跨平台(cross-platform)的应用。

Lucene 通过一些简单的接口(simple API)提供了强大的特征(powerful features):

可扩展的高性能的索引能力(Scalable, High-Performance Indexing)

ü 超过20M/分钟的处理能力(Pentium M 1.5GHz)

ü 很少的RAM内存需求,只需要1MB heap

ü 增量索引(incremental indexi  阅读全文
posted @ 2010-06-21 09:53 rogerfan 阅读(229) | 评论 (0)编辑 收藏

     摘要: 附:MyEclipse 5.0 官方提供的图文教程:

http://www.myeclipseide.com/ContentExpress-display-ceid-81.html#webservices

开发环境
Sun Java 5+ Eclipse 3.2 +MyEclipse 5.0.0.

概述

本文介绍了使用MyEclipse Web Service来迅速开发和测试一个HelloWorld Web Service,其中包括:
1. 介绍了MyEclipse Web Services的基本概念
2. 创建一个MyEclipse Web Services工程
3. 创建一个简单的HelloWorld Web Service
4. 在Web容器中,如Tomcat 5中部署Web Service
5. 使用Web Services Explorer来测试部署的Web Services
<  阅读全文
posted @ 2010-05-27 14:54 rogerfan 阅读(862) | 评论 (0)编辑 收藏

     摘要: 本实例的原BLOG网站地址为:http://blog.csdn.net/meteorlWJ/archive/2009/09/12/4545100.aspx,有兴趣的朋友多多支持
在开始前,先介绍一些概念:

XFire Java SOAP框架概述 (摘自:http://tech.it168.com/j/e/2006-10-28/200610281432707.shtml)
MyEclipse Web Services是建立在XFire JavaSOAP框架和工具基础上的, XFire是一款开源的JavaSOAP框架。它拥有一个轻量级的信息处理模块,通过STAX来与SOAP信息相结合。提供了一个工作在WebServices下的简单API,支持POJO和schema开发. XFire支持 Web Services standards,Spring整合, 支持JBI , 支持 JAXB ,XMLBeans,Java 5 和JAX-WS.并支持HTTP, JMS, XMPP,In-memory传输协议

一、环境配置:MyEcl  阅读全文
posted @ 2010-05-27 11:31 rogerfan 阅读(5146) | 评论 (7)编辑 收藏

     摘要: maven2 起步
相信maven1 大家都已经很熟悉了,具体maven能做什么,就不详细说了。个人觉得maven在开源项目中用的还是比较多的,公司内部,就不太清楚了。我以前的公司用过一段时间,不过后来就没有下文了。
与maven1 相比,maven2可算是几乎重写了,不过从速度来说应该更快。
主要的几个新特性包括:(详细参考http://www.ibm.com/developerworks/cn/opensource/os-maven2/index.html)
1. 更快、更简单
速度方面可以比上ant了
2. 更少的配置文件
现在的配置文件只剩下了settings.xml和pom.xml了。
3. Plugin语言更换
语言开始支持java,BeanShell和ant
4. 提供了预定义的模版
这点是最有帮助的,用户可以自己定义自己的项目模版了,就像用  阅读全文
posted @ 2010-05-09 19:10 rogerfan 阅读(199) | 评论 (0)编辑 收藏

     摘要: iBatis的sqlMap配置文件的selectKey元素有个type属性,可以指定pre或者post表示前生成(pre)还是后生成(post)。

  阅读全文
posted @ 2010-04-30 13:46 rogerfan 阅读(4086) | 评论 (1)编辑 收藏

     摘要: 方法1:
适用于 SQL Server 2000/2005
SELECT TOP 页大小 *
FROM table1
WHERE id NOT IN
(
SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id
)
ORDER BY id
  阅读全文
posted @ 2010-04-30 10:26 rogerfan 阅读(1214) | 评论 (0)编辑 收藏

     摘要: SQL Server 2000企业版本适用于WIN 2000操作系统,Windows 2003操作系统和Windows XP一般装不了,只能安装个人版,这让我们用XP操作系统的程序员很头疼,为了使用SQL Server 2000还得装个Windows 2000操作系统,下面介绍一下在Windows XP下安装SQL Server 2000企业版的方法。

一、在SQL服务器的安装盘中找到MSDE这个目录,并且点击SETUP.EXE安装它,过程简单,直接下一步就OK 了。

二、重启系统Windows XP,在任务栏右下角就可以看到SQL服务的图标出现了。

三、再拿出SQL服务器版的安装光盘,直接安装客户端工具,安装方法:点击光盘根目录下的AUTORUN.EXE,选择“安装SQL Server 2000组件“,选择”安装数据库服务器“, 根据提示安装,自检过程中会提示操作系统不是SERVER版,只安装客户端工具。  阅读全文
posted @ 2010-04-28 17:07 rogerfan 阅读(368) | 评论 (0)编辑 收藏

posted @ 2010-04-28 15:51 rogerfan 阅读(3173) | 评论 (0)编辑 收藏

     摘要: 使用XFire+Spring构建Web Service

XFire是与Axis 2并列的新一代Web Service框架,通过提供简单的API支持Web Service各项标准协议,帮助你方便快速地开发Web Service应用。

相 对于Axis来说,目前XFire相对受欢迎,加上其提供了和Spring集成的支持,在目前的Web Service开源社区拥有众多的追随者。并且因为XFire为Spring提供的支持,使得我们可以很容易在Spring中使用XFire构建Web Service应用。

XFire与Axis2相比具有如下特征:

l 支持一系列Web Service的新标准--JSR181、WSDL2.0 、JAXB2、WS-Security等;

l 使用Stax解释XML,性能有了质的提高。XFire采用Woodstox 作Stax实现;

l 容易上手,可以方便快速地从pojo发布服务;

l 支持Spring、Pico、Plexus、Loom  阅读全文
posted @ 2010-04-27 10:53 rogerfan 阅读(3534) | 评论 (0)编辑 收藏

posted @ 2010-04-27 10:51 rogerfan 阅读(2076) | 评论 (0)编辑 收藏

     摘要: Oracle数据库的三种标准的备份方法:
1.导出/导入(EXP/IMP)。

2.热备份。

3.冷备份。

注释:导出备件是一种逻辑备份,冷备份和热备份是物理备份。

一、 导出/导入(Export/Import)

利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。

1、简单导出数据(Export)和导入数据(Import)

Oracle支持三种方式类型的输出:   阅读全文
posted @ 2010-04-27 09:25 rogerfan 阅读(342) | 评论 (0)编辑 收藏

     摘要: 当你需要同时包含日期和时间信息的值时则使用DATETIME类型。MySQL以'YYYY-MM-DD HH:MM:SS'格式检索和显示DATETIME值。支持的范围为'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。(“支持”表示尽管先前的值可能工作,但没有保证)。

当你只需要日期值而不需要时间部分时应使用DATE类型。MySQL用'YYYY-MM-DD'格式检索和显示DATE值。支持的范围是'1000-01-01'到 '9999-12-31'。

TIMESTAMP列类型的属性不固定,取决于MySQL版本和服务器运行的SQL模式。这些属性将在本节后面描述。
  阅读全文
posted @ 2010-04-24 07:57 rogerfan 阅读(15961) | 评论 (0)编辑 收藏

     摘要: 本章介绍Oracle 9i网络中两种主要的成分——数据库服务器和治理客户机的安装和配置过程。本章目的在于帮助读者把握如何安装Oracle 9i以及如何配置Oracle 9i网络环境。
本书采用windows 2000 Server作为安装的网络操作系统平台,数据库服务器采用Oracle 9i Database for Windows 2000的企业版。
2.1.1 安装的硬件环境需求
下列从5个主要的方面阐述Oracle 9i对硬件环境的要求。
1. 对CPU的要求
CPU最低配置到Pentium 166就可以。
2. 对内存的要求
内存容量最低为64MB,最好在256MB以上。
3. 对硬盘的要求
建议配置8GB容量以上硬盘。
4. 对光驱的要求
建议选用快速光驱,16倍速以上。
5. 对网卡的要求
一般可以选用10/100MB自适应网卡。  阅读全文
posted @ 2010-03-24 15:55 rogerfan 阅读(316) | 评论 (0)编辑 收藏

     摘要: 汇总:
set autotrace on
set autotrace traceonly explain
set timing on

或通过SQL*PLUS trace,然后查看user_dump_dest下的跟踪文件,使用tkprof工具格式化后阅览。
alter session set events '10046 trace name context forever,level 12';
alter session set events '10046 trace name context off';
SELECT p.spid,s.username FROM v$session s,v$process p WHERE s.audsid=USERENV('sessionid') AND s.paddr = p.addr;

使用方法示例:
DBserver% sqlplus perf/perf
SQL*Plus: Release 9.2.0.6.0 - Production on Mon  阅读全文
posted @ 2010-03-24 14:51 rogerfan 阅读(644) | 评论 (0)编辑 收藏

     摘要: HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类,HashSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同,但它们底层的 Hash 存储机制完全一样,甚至 HashSet 本身就采用 HashMap 来实现的。
通过 HashMap、HashSet 的源代码分析其 Hash 存储机制

集合和引用

就像引用类型的数组一样,当我们把 Java 对象放入数组之时,并不是真正的把 Java 对象放入数组中,只是把对象的引用放入数组中,每个数组元素都是一个引用变量。


实际上,HashSet 和 HashMap 之间有很多相似之处,对于 HashSet 而言,系统采用 Hash 算法决定集合元素的存储位置,这样可以保证能快速存、取集合元素;对于 HashMap 而言,系统 key-value 当成一个整体进行处理,系统总是根据 Hash 算法来计算 key-val  阅读全文
posted @ 2010-03-23 09:37 rogerfan 阅读(1069) | 评论 (0)编辑 收藏

     摘要: java 集合框架详解
经常会看到程序中使用了记录集,常用的有Collection、HashMap、HashSet、ArrayList,因为分不清楚它们之间的关系,所以在使用时经常会混淆,以至于不知道从何下手。在这儿作了一个小例子,希望有助于帮大家理顺思路。
首先看一下它们的关系:
Collection
--List:-----------------------以特定次序存储元素。所以取出来的顺序可能和放入顺序不同。
---ArrayList
---LinkedList
---Vector
--Set :----------------------- 不含有重复的元素
--- HashSet
--- TreeSet
Map
---HashMap
---HashTable
---TreeMap   阅读全文
posted @ 2010-03-22 15:47 rogerfan 阅读(1882) | 评论 (0)编辑 收藏

     摘要: 现在在Java开发中,使用的开发工具大部分都是Eclipse,并且和Eclipse关系紧密的要数MyEclipse了,但是 MyEclipse是一个EXE可执行程序,对于没有安装Eclipse与MyEclilpse的电脑来说,首先得先解压Eclipse,然后再安装 MyEclipse,这不光很麻烦,而且还很费时,对于已经安装好的电脑来说,如果哪天电脑出了问题或是Eclipse崩溃了,导致工具不能用,这时又不得不重新安装时,那可真够郁闷滴~~~,因此,大象本着我为人人,人人为我的奉献精神,在此,将Eclipse+MyEclipse的完全绿色版制作方法写出来,和大家一起分享,让大家都能享受到这种方便。

在这里,大象采用Eclipse3.3.1与MyEclipse_6.0.1GA_E3.3.1_Installer版来举例说明,其它的版本做法与此相同。

第1步:下载Eclipse3.3.1和MyEclipse_6.0.1GA

这里我要提醒大家注意一下:下载3.2的版本,因为3.3版本以上的支持,另外就是下载MyEclipse6.0.1的插件  阅读全文
posted @ 2010-03-18 17:34 rogerfan 阅读(1524) | 评论 (0)编辑 收藏

     摘要: 最近项目中需要用到CXF,但是本人使用的MyEclipse Blue Edition 6.1居然没有集成CXF的支持。因此抽时间研究了下将Eclipse SOA Tools Platform插件集成到其中。

MyEclipse Blue Edition 6.1中使用的Eclipse Platform为3.3.2。因此本人下载了多个Eclipse 3.3.2版本的STP插件进行测试。最后发现STP R200710161054版可以和MyEclipse Blue Edition 6.1版完美集成。

此处可以下载STP R200710161054 all in one版。

具体安装其实超简单,将下载的ZIP包解压到MyEclipse安装目录下的myeclipse目录中。此处需要特别小心,注意:eclipse,feature和plugins目录可以覆盖;但是feature和plugins中的同名目录不能覆盖。

此外,由于STP插件中的文件的目录和文件名比较长,解压后可能会发生  阅读全文
posted @ 2010-03-18 17:33 rogerfan 阅读(1601) | 评论 (0)编辑 收藏

     摘要: 一、下载

1、PowerDesigner 12.5官方下载地址 +|'}kOAa
 http://download.sybase.com/eval/PowerDesigner/powerdesigner125_eval.exe
 大小125 MB (132,006,349 字节) uzR(8lA
  阅读全文
posted @ 2010-03-17 16:09 rogerfan 阅读(55586) | 评论 (36)编辑 收藏

     摘要: 这次发布的Spring Security-3.0.1是一个bug fix版,主要是对3.0中存在的一些问题进行修正。文档中没有添加新功能的介绍,但是将之前拼写错误的一些类名进行了修正,建议开发者以这一版本的文档为参考。

另:Spring Security从2010-01-01以后,版本控制从SVN换成了GIT,我们在翻译文档的时候,主要是根据SVN的变化来进行文档内容的比对,这次换成GIT后,感觉缺少了之前那种文本比对工具,如果有对GIT熟悉的朋友,还请推荐一下文本比对的工具,谢谢。  阅读全文
posted @ 2010-03-16 17:03 rogerfan 阅读(211) | 评论 (0)编辑 收藏

     摘要: 进入需要在项目中用java处理json格式的数据,因此封装了一个class,现将这个class共享出来和大家分享
1 /**
2
3 * Copyright (c) linkwise 2007-2009 corporation.
4
5 * All rights reserved
6
7 */
8
9 package com.linghui.common.util;
10
11 import java.util.ArrayList;
12
13 import java.util.Date;
14
15 import java.util.HashMap;
16
17 import java.util.Iterator;
18
19 import java.util.List;
20
21 import java.util.Map;
2  阅读全文
posted @ 2010-03-09 10:00 rogerfan 阅读(7189) | 评论 (1)编辑 收藏

     摘要: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。

JSON建构于两种结构:

* “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
* 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
*

JSON具有以下这些形式:

对象是一个无序的“‘名称/  阅读全文
posted @ 2010-03-08 18:19 rogerfan 阅读(1213) | 评论 (0)编辑 收藏

     摘要: JSON定义

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。它基于ECMA262语言规范(1999-12第三版)中JavaScript编程语言的一个子集。 JSON采用与编程语言无关的文本格式,但是也使用了类C语言(包括C, C++, C#, Java, JavaScript, Perl, Python等)的习惯,这些特性使JSON成为理想的数据交换格式。

JSON的结构基于下面两点

1. "名称/值"对的集合 不同语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),键列表(keyed list)等
2. 值的有序列表 多数语言中被理解为数组(array)
JSON使用:

JSON以一种特定的字符串形式来表示 JavaScript 对象。如果将具有这样一种形式的字符串赋给任意一个 JavaScript 变量  阅读全文
posted @ 2010-03-05 09:42 rogerfan 阅读(428) | 评论 (0)编辑 收藏

     摘要: 在笔记本电脑早已普及到会议室的这个年代,商务人士拿笔记本来演示PPT以及做电子版的会议记录;在笔记本电脑已经普及到教室的这个年代,学生们甚至在用笔记本翻阅资料进行开卷考试。
随着笔记本电脑正在成为人们生活中不可或缺的一部分,新的问题来了,盲目的追求性价比导致的是机身重量肆无忌惮的在力压人们的肩膀,也就是“扁担效应”。有笔记本常识的人都知道,性价比和便携性是笔记本领域的正反命题,它们之间永远对立而不可能和谐相处,即使国家在努力提倡和谐社会。

很多对移动性有要求的用户,在吃了第一个笔记本的性价比甜头的同时却都在忍受着“扁担效应”的副作用。因此他们开始选择只为便携而存在的第二台机器,而这种机器大多有一个特点,就是无光驱设计!在市场里放眼望去,不带光驱的笔记本通常都是轻便型机器的代表,它们的重量很轻,性能却不马虎,虽然售价高高在上,但依然获得了很多受不了“扁担效应”,追求移动性强的笔记本用户的青睐。

笔者就有不少朋友在使用不带光驱的笔记本,但是问题也来了,需要重装系统的时候,没有光驱,该怎么办?也许你会说可以在dos下硬盘安装,但有几个人会  阅读全文
posted @ 2010-02-11 09:57 rogerfan 阅读(18556) | 评论 (2)编辑 收藏

     摘要: Maven的基本原理很简单,采用远程仓库和本地仓库以及一个类似build.xml的pom.xml,将pom.xml中定义的jar文件从远程仓库下载到本地仓库,各个应用使用同一个本地仓库的jar,同一个版本的jar只需下载一次,而且避免每个应用都去拷贝jar。如图1。同时它采用了现在流行的插件体系架构,只保留最小的核心,其余功能都通过插件的形式提供,所以maven下载很小(1.1M),在执行maven任务时,才会自动下载需要的插件。
这个基本原理与Pear――PHP扩展与应用库(the PHP Extension and Application Repository)的原理非常相似,都有一个官方的仓库,都是微内核,通过网络将需要的文件下载到本地,通过官方仓库将相应的类库进行统一管理。Pear已经成为PHP开发事实上的标准,而Maven在Java世界的地位也逐渐加强,成为标准指日可待。  阅读全文
posted @ 2010-02-04 22:41 rogerfan 阅读(451) | 评论 (0)编辑 收藏

     摘要: 为了方便ajax调用传输数据,在struts2中加入的json插件用来做对象的序列化和反序列化,json插件的下载地址

http://code.google.com/p/jsonplugin/

1. 下载json插件包,将jar包拷贝到WEB-INF/lib目录

注:struts2的json插件有两个版本0.32和0.34,我用的struts2的版本是2.0.11,在加入0.34版本json插件时启动发生异常,提示找不到相关方法,后来就换成了低版本的0.32一切OK,仔细查看文档后发现struts2的2.0.*版本的对应插件的0.32版本,struts2.1.*版本对应0.34版本
  阅读全文
posted @ 2010-01-26 11:36 rogerfan 阅读(19352) | 评论 (7)编辑 收藏

     摘要: 这是ntfs权限造成的,解决办法:

1、选择“工具” > “文件夹选项” >“查看”,去掉“使用简单文件共享”前的勾

2、找到数据库所在文件夹,点击右键“属性”并切换到“安全”选项卡,添加给EveryOne 用户所有权限。

添加方法为:安全>添加>高级>立即查找>选中everyone>确定>点上“修改”一项

3、同理给internet来宾帐户添加修改权限

4、找到数据库,右键>安全,为internet来宾帐户添加“修改”权限,确定。这项很重要,一定要做

现在数据库就可以顺利连上了

fat32系统一般不会出现这类问题  阅读全文
posted @ 2010-01-10 16:22 rogerfan 阅读(2147) | 评论 (0)编辑 收藏

     摘要: 前言
关于Struts2入门以及提高等在这里就不介绍了,但是关于Struts2的学习有以下推荐:

struts2-showcase-2.0.6.war:这个是官方自带的Demo(struts-2.0.6-all.zip\struts-2.0.6\apps目录下),非常全面,直接部署就可以了(很多朋友Struts2能学很好我估计还是直接从这里学来的)。
wiki-WebWork:入了门的朋友应该都知道,strust2由webwork2和struts1.x合并起来的,但主要还是以webwork2为主,所以如果找不到Struts2的资料可以找WebWork资料看看。
Max On Java的博客,他的博客的资料在中文的Struts2算是比较全的了,写得很详细。
The Code Project、Google - CodeSearch、Koders:这几个代码搜索网站在我找不到中文资料甚至英文文章的时候帮了我大忙!
关于JFreeChart入门等这里我也不打算介绍了,中文资料很多了。

阅读全文
posted @ 2010-01-06 17:08 rogerfan 阅读(2109) | 评论 (0)编辑 收藏

     摘要: 论坛上看了不少Spring Security的相关文章。这些文章基本上都还是基于Acegi-1.X的配置方式,而主要的配置示例也来自于SpringSide的贡献。

众所周知,Spring Security针对Acegi的一个重大的改进就在于其配置方式大大简化了。所以如果配置还是基于Acegi-1.X这样比较繁琐的配置方式的话,那么我们还不如直接使用Acegi而不要去升级了。所以在这里,我将结合一个示例,重点讨论一下Spring Security 2是如何进行配置简化的。

搭建基础环境

首先我们为示例搭建基本的开发环境,环境的搭建方式,可以参考我的另外一篇文章:http://www.javaeye.com/wiki/struts2/1321-struts2-development-environment-to-build   阅读全文
posted @ 2009-12-18 16:07 rogerfan 阅读(885) | 评论 (0)编辑 收藏

     摘要: 【图】黑莓8700精美桌面320x240(珍藏二)不断更新中……   阅读全文
posted @ 2009-12-09 22:20 rogerfan 阅读(2212) | 评论 (0)编辑 收藏

     摘要: 之前写过一篇“蹭网必备:BT3破解无线路由密码过程详解(第一篇:硬盘版)”的帖子,那个是将BT3安装在硬盘上的,操作起来比较麻烦。今天帖子的方法是将BT3安装在U盘或者SD卡上。

不明白BT3和无线信号密码破解是怎么回事的先自己百度一下吧,在这里就不详细介绍原理了。

本帖的思路:
在U盘(或者SD卡)上安装BT3系统,从U盘启动进入BT3,利用Spoonwep2来破解wep加密的无线信号。
  阅读全文
posted @ 2009-12-01 11:49 rogerfan 阅读(7284) | 评论 (0)编辑 收藏

     摘要: 已经修过两篇用Backtrack3(BT3)破解无线信号密码的教程了,其中一篇是将BT3安装到硬盘的方法;另外一篇是将BT3安装到U盘的方法。但是这两种方法都有一个共同的要求:那就是你的笔记本内置的无线网卡必须支持BT3破解才行,如果不在BT3所支持的无线网卡列表上,那就只能干瞪眼了。
从目前主流的一些上网本来看,大部分内置的无线网卡都是不支持BT3破解的,所以我们需要想一些别的办法让我们的Netbook支持BT3破解:那就是需要另外购买一个外置的USB接口的无限网卡。

所以本文即是利用外置的USB无线网卡来破解无线信号的密码。
首先是在选购USB无线网卡的时候一定要确认是支持BT3破解的才可以,这个在淘宝上购买的话一般商家都知道的,而且很多商家也都在商品的标题上注明了是否支持BT3破解。  阅读全文
posted @ 2009-12-01 11:38 rogerfan 阅读(11482) | 评论 (0)编辑 收藏

     摘要: 最近很多人问我怎么破解WiFi密码…看来大家都对免费的东西比较有兴趣。要么也可能是我太招摇了…囧…

好吧,我就写篇小小的教程,看完后,你应该能够破解大部分无线路由器密码了,写这个教程也是为了加强大家对无线网络安全性的重视,后面也有简单的防破解的办法。

好了,正式开始。

首先,你需要的工具:

软件:

① BackTrack 3(简称BT3)

BT3有光盘版,硬盘版还有U盘版,由于本本基本上可以刻碟,我就懒得弄那些U盘版,硬盘版了,直接刻了张碟,所以这篇教程使用光盘版。

下载地址:

U盘版:http://backtrack.unixheads.org/bt3final_usb.iso

光盘版:http://www.remote-exploit.org/cgi-bin/fileget?version=bt3-cd
  阅读全文
posted @ 2009-12-01 11:29 rogerfan 阅读(9249) | 评论 (0)编辑 收藏

     摘要: 目前从实际应用来看,ORM的老大自然是Hibernate,可是iBatis因为相对比较直观、学习曲线相对较低,因而也赢得了不少用户的青睐。
本文主要介绍作为iBatis辅助工具的iBator的使用方法。
iBator是一个iBatis相关代码的自动生成工具。
1、安装iBator的插件
在Eclipse中,使用添加站点的方法,输入网址http://ibatis.apache.org/tools/ibator,进行iBator的安装。
2、建议不要直接在使用iBatis的项目里直接使用iBator,推荐另外单独建立一个项目来生成。比如,建立一个项目叫:IbatorPrj
3、右键点击IbatorPrj这个项目,如果刚才的插件安装正确的话,就会看到一个“Add iBATOR to the build path”的选项,点击一下。
4、创建iBator的配置文件。下面是我的例子,大家在实际使用的过程中,需要根据自己的情况进行相应的修改。  阅读全文
posted @ 2009-11-24 10:26 rogerfan 阅读(2154) | 评论 (0)编辑 收藏

     摘要: OSCache是当前运用最广的缓存方案,JBoss,Hibernate,Spring等都对其有支持,
下面简单介绍一下OSCache的配置和使用过程。

1.安装过程
从http://www.opensymphony.com/oscache/download.action下载合适的OSCache版本,
我下载的是oscache-2.0.2-full版本。
解压缩下载的文件到指定目录

从解压缩目录取得oscache.jar 文件放到 /WEB-INF/lib 或相应类库目录 目录中,
jar文件名可能含有版本号和该版本的发布日期信息等,如oscache-2.0.2-22Jan04.jar

如果你的jdk版本为1.3.x,建议在lib中加入Apache Common Lib 的commons-collections.jar包。
如jdk是1.4以上则不必

从src或etc目录取得oscache.properties 文件,放入src根目录或发布环境的/W  阅读全文
posted @ 2009-11-17 14:36 rogerfan 阅读(180) | 评论 (0)编辑 收藏

     摘要: 一。简介

OSCache是OpenSymphony组织提供的一个J2EE架构中Web应用层的缓存技术实现组件,它的出现解决了我们面临的问题。 OSCache目前最新的稳定版本是2.3.2,本文中的例子都是基于这个版本的,如果大家运行例子的过程中发生问题,请首先确认是否采用了正确的软件版本。

二。安装

1. 下载、解压缩OSCache

请到OSCache的主页http://www.opensymphony.com/oscache/download.action下载Oscache的最新版本,作者下载的是OSCache的最新稳定版本2.3.2。

将下载后的。Zip文件解压缩到c:\oscache(后面的章节中将使用%OSCache_Home%来表示这个目录)目录下

2. 新建立一个web应用

3. 将主要组件%OSCache_Home%\oscache.jar放入WEB-INF\lib目录

4. commons-log  阅读全文
posted @ 2009-11-17 14:34 rogerfan 阅读(196) | 评论 (0)编辑 收藏

     摘要: 为了减轻DBA的工作,数据库自动备份当然少不了,今天我和大家一起来学习通过crontab实现mysql数据的自动备份

我们在/etc/cron.daily/目录下创建文件backup内容如下

#!/bin/bash
#定义变量name的值,/bin/date日期格式为Y年-m月-d日
name=`/bin/date "+%Y-%m-%d"`
#/usr/bin/mysqldump 备份数据库的命令路径
#-u root 数据库的用户名
#-p password 数据库的密码把password替换成你自己的密码  阅读全文
posted @ 2009-08-19 11:54 rogerfan 阅读(658) | 评论 (0)编辑 收藏

     摘要: 首先,设置mysql的环境变量(在path中添加%MYSQL_HOME%\bin),重启电脑。
完整代码:
/**
* @param args
*/
public static void main(String[] args) {
/*
* 备份和导入是一个互逆的过程。
* 备份:程序调用mysql的备份命令,读出控制台输入流信息,写入.sql文件;
* 导入:程序调用mysql的导入命令,把从.sql文件中读出的信息写入控制台的输出流
* 注意:此时定向符">"和"<"是不能用的
*/
backup();
load();
}
  阅读全文
posted @ 2009-08-18 17:38 rogerfan 阅读(598) | 评论 (0)编辑 收藏

     摘要: 用java实现打印,java.awt中提供了一些打印的API,要实现打印,首先要获得打印对象,然后继承Printable实现接口方法print,以便打印机进行打印,最后用用Graphics2D直接输出直接输出。
下面代码实现了简单的打印功能:  阅读全文
posted @ 2009-08-18 09:59 rogerfan 阅读(353) | 评论 (0)编辑 收藏

     摘要: 什么是动态定时任务:是由客户制定生成的,服务端只知道该去执行什么任务,但任务的定时是不确定的(是由客户制定)。
这样总不能修改配置文件每定制个定时任务就增加一个trigger吧,即便允许客户修改配置文件,但总需要重新启动web服务啊,研究了下Quartz在Spring中的动态定时,发现
《bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean" 》
《property name="jobDetail" ref="schedulerJobDetail"/》
《property name="cronExpression"》
《value》0/10 * * * * ?《/value》
《/property》
中cronExpression是关键,如果可以动态设置cronExpression的值,也就说如果我们可以直接调用CronTrigge  阅读全文
posted @ 2009-08-11 10:00 rogerfan 阅读(3495) | 评论 (1)编辑 收藏

     摘要: 一、前言
早就知道maven 在java 项目的管理方面名声显赫,于是就想着学习掌握之,于是查阅了大量文档。发现这些文档的作者都是java 的大腕,大多都是站在掌握了一定maven 基础的角度上进行介绍,让我这初学者看的云里雾里不知所云。于是又去查看maven 的官方网站,总算是有所了解,但一旦动手实际操作却又雾里看花。唉,没办法,就只有一遍一遍的动手尝试,经过种
种磨难总算是有一点眉目了。现在就将我的经验写出来,一来避免将来遗忘,二来也给和我一样的菜鸟们提供一点点的方便。呵呵。本文的主题在于实用操作,个中原理还是麻烦大家去查一下java大腕们的文章吧。这里推荐两篇文章:

Maven 2.0:编译、测试、部署、运行
http://www.ideagrace.com/html/doc/2006/06/14/00847.html

Maven2 的新特性
http://www-128.ibm.com/developerworks/cn/opensource/os-maven2/index.html  阅读全文
posted @ 2009-07-13 14:55 rogerfan 阅读(607) | 评论 (0)编辑 收藏

     摘要: 简介
Maven作为Apache的一个开源项目,旨在给项目管理提供更多的支持,主页地址为http://maven.apache.org 。它最早的意图只是为了给apache组织的几个项目提供统一的开发、测试、打包和部署,能让开发者在多个项目中方便的切换。很多伟大的事业,出发点都很简单,ebay就是很好的例证。而maven的成功又一次验证了这一点,越来越多的项目开始使用maven。
基本原理
Maven的基本原理很简单,采用远程仓库和本地仓库以及一个类似build.xml的pom.xml,将pom.xml中定义的jar文件从远程仓库下载到本地仓库,各个应用使用同一个本地仓库的jar,同一个版本的jar只需下载一次,而且避免每个应用都去拷贝jar。如图1。同时它采用了现在流行的插件体系架构,只保留最小的核心,其余功能都通过插件的形式提供,所以maven下载很小(1.1M),在执行maven任务时,才会自动下载需要的插件。
  阅读全文
posted @ 2009-07-13 14:35 rogerfan 阅读(186) | 评论 (0)编辑 收藏

     摘要: 近期在学习Maven,主要是想把Ant构建的项目换成Maven构建,查了不少资料,也做了一些实践,感觉已经有些入门,现将自己的学习过程整理出来,希望对看到这篇文章的人员有所帮助。由于查了不少资料,参考了不少文档,在此表示感谢!

1、下载

开源网址:http://maven.apache.org/
下载网址:http://maven.apache.org/download.html  阅读全文
posted @ 2009-07-13 11:44 rogerfan 阅读(288) | 评论 (0)编辑 收藏

     摘要: UML建模软件目前用的主要有3种:

商业版本:Telelogic TAU 和 Rational Rose

开源版本:StarUML

Telelogic TAU与Rational Rose的功能很强,但是需要买License。

StarUML就是希望能提供和TAU/Rose一样功能的开源版本。

目前使用起来还是不错的。

能熟练使用其中一个是软件设计人员的基本功。
  阅读全文
posted @ 2009-06-19 17:31 rogerfan 阅读(1972) | 评论 (0)编辑 收藏

     摘要: 导读:
StarUML是专业的UML建模工具,又因为它是免费开源的,因此是初学者的首选软件。废话少说,开始:
1、界面介绍:
主要是四个方面:工具栏、工作区、浏览区和属性区。结构如下图:  阅读全文
posted @ 2009-06-19 10:43 rogerfan 阅读(1732) | 评论 (2)编辑 收藏

posted @ 2009-06-11 17:33 rogerfan 阅读(810) | 评论 (0)编辑 收藏

     摘要: 一、了解备份的重要性

  可以说,从计算机系统出世的那天起,就有了备份这个概念,计算机以其强大的速度处理能力,取代了很多人为的工作,但是,往往很多时候,它又是那么弱不禁风,主板上的芯片、主板电路、内存、电源等任何一项不能正常工作,都会导致计算机系统不能正常工作。当然,这些损坏可以修复,不会导致应用和数据的损坏。但是,如果计算机的硬盘损坏,将会导致数据丢失,此时必须用备份恢复数据。

  其实,在我们的现实世界中,已经就存在很多备份策略,如RAID技术,双机热备,集群技术发展的不就是计算机系统的备份和高可用性吗?有很多时候,系统的备份的确就能解决数据库备份的问题,如磁盘介质的损坏,往往从镜相上面做简单的恢复,或简单的切换机器就可以了。但是,上面所说的系统备份策略是从硬件的角度来考虑备份与恢复的问题,这是需要代价的。我们所能选择备份策略的依据是:丢是数据的代价与确保数据不丢失的代价之比。还有的时候,硬件的备份有时根本满足不了现实需要,假如你误删了一个表,但是你又想恢复的时候,数据库的备份就变的重要了。ORACLE本身就提供了强大的备份与恢复策略,这里我  阅读全文
posted @ 2009-06-02 16:07 rogerfan 阅读(299) | 评论 (0)编辑 收藏

     摘要: ----------------------------------------------------------------
用户授权:
GRANT ALTER ANY INDEX TO "user_id "
GRANT "dba " TO "user_id ";
ALTER USER "user_id " DEFAULT ROLE ALL
创建用户:
CREATE USER "user_id " PROFILE "DEFAULT " IDENTIFIED BY " DEFAULT TABLESPACE "USERS " TEMPORARY TABLESPACE "TEMP " ACCOUNT UNLOCK;
GRANT "CONNECT " TO "user_id ";
用户密码设定:
ALTER USER "CMSDB " IDENTIFIED BY "pass_word "
表空间创建:
CREATE TABLESPACE "table_space " LOGGING DATAFILE '  阅读全文
posted @ 2009-06-02 16:06 rogerfan 阅读(717) | 评论 (0)编辑 收藏

     摘要: 13-4 Lob类型
13.4.1 基本介绍
Oracle和plsql都支持lob(large object) 类型,用来存储大数量数据,如图像文件,声音文件等。Oracle 9i realse2支持存储最大为4g的数据,oracle 10g realse1支持最大8到128万亿字节的数据存储,依赖于你的db的block size。
在plsql中可以申明的lob类型的变量如下:
类型 描述
BFILE 二进制文件,存储在数据库外的操作系统文件,只读的。把此文件当二进制处理。
BLOB 二进制大对象。存储在数据库里的大对象,一般是图像声音等文件。
CLOB 字符型大对象。一般存储大数量文本信息。存储单字节,固定宽度的数据。
NCLOB 字节字符大对象。存储单字节大块,多字节固定宽度,多字节变宽度数据。  阅读全文
posted @ 2009-06-02 16:02 rogerfan 阅读(1748) | 评论 (0)编辑 收藏

     摘要: 环境区域是用来处理SQL语句的一个oracle存储区域。游标是指向它的指针或句柄。通过游标,PL/SQL程序可以控制这个环境区域中被处理的语句。

Oracle中的游标有两种:显式游标、隐式游标。

显示游标是用cursor...is命令定义的游标,它可以对查询语句(select)返回的多条记录进行处理,而隐式游标是在执行插入(insert)、删除(delete)、修改(update)和返回单条记录的查询(select)语句时由PL/SQL自动定义的。
  阅读全文
posted @ 2009-06-02 16:01 rogerfan 阅读(3549) | 评论 (0)编辑 收藏

     摘要: ORACLE 游标

一. PL/SQL 是用游标来管理 SQL 的 SELECT 语句的 . 游标是为了处理这些语句而分配的一大块内存 . 它提供了对一个结果集进行逐行处理的能力 , 可看作是一种特殊的指针 . 它与某个查询结果集相关联 , 可以指向结果集的任意位置 , 以便对指定位置的数据进行处理 . 使用它可以在查询数据的同时对数据进行处理 .

二. 游标的分类 : 静态游标和动态游标

1. 在说明游标分类之前, 先说明一下PL/SQL 的两个操作, 游标属性, 变量属性

SET SERVEROUTPUT ON ;-- 此语句用于开启打印输出功能

DMBS_OUTPUT.PUT_LINE();-- 打印输出并换行.
  阅读全文
posted @ 2009-06-02 16:00 rogerfan 阅读(1217) | 评论 (0)编辑 收藏