
2010年8月27日
最近經常做一些數據導入的工作!做數據挖掘項目大家都懂的...
導入數據最痛苦的就是等待他導...不過如果大家沒注意一些需要注意的東西,可能大家會這樣反復等好多次!!
一、
首先,我也是多次吃虧的一件事情,就是老是忘記加入導入日志。因為在導入數據的時候可能會拋出很多異常,這些異常如果不記錄下如果缺失了重要的數據可能要從新導入或找到原因然后重導。太可惜了。加入導入日志一切有據可查,非常重要。
它的做法可以在imp時直接加參數:
log=/oracle/log/imp.log (linux)
log=E:\log\imp.log (windows)
指定日志的路徑和文件名
例如:
imp trade/zhangy@orcl file=/test/trade.dmp show=n buffer=2048000 ignore=n commit=y grants=y full=y log=/oracle/log/imp.log
這樣就有日志了...
二、導入單個表
可能客戶給我們一個整庫文件,但是我們可能只需要其中的一些表就OK了。oracle已經帶有導入單獨表的語法。
IMP trade/trade file=D:\2011-02-18_trade.dmp IGNORE=Y TABLES=(TOS_ContractInterval,TOS_CONTRACTMASTER) FULL=N
當然還有許多語法,我們可以通過imp help=yes來查看..
posted @
2011-06-02 20:04 張元Won 閱讀(612) |
評論 (0) |
編輯 收藏
因為新配置的機器,裝的Oracle10g一直都沒使用過。因為參與到項目,昨天突然用Oracle發現用Plsql不上Oracle了。
蝦米原因?...搞的我蛋疼了一上午...
于是一直找帖糾結這個問題,終于還是解決了,在博客中留個記錄以便以后忘記了翻翻。
導致這個錯誤的原因有很多
可能是SID配置不對,但絕大多數是因為Oracle程序本身問題。就是OracleOraDb10g_home1TNSListener這個服務對應的D:\oracle\product\10.2.0\db_1\BIN\TNSLSNR執行程序沒有執行或者執行中斷造成的。那么我們只要設置一個全局SID服務變量,以后就可以都以這個變量為準來查找到監聽了。
解決方法如下:
打開:%Oracle_Hoem%/network/admin/listener.ora文件 在
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\Oracle\Oracle10g)
(PROGRAM = extproc)
)
后面添加:
(SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = D:\Oracle\Oracle10g)
(SID_NAME = ORACLE)
)
最后變成:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\Oracle\Oracle10g)
(PROGRAM = extproc)
) (SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = D:\Oracle\Oracle10g)
(SID_NAME = ORACLE)
)
)
posted @
2011-05-27 09:17 張元Won 閱讀(1012) |
評論 (0) |
編輯 收藏
第一步: 取消自動validation
validation有一堆,什么xml、jsp、jsf、js等等,我們沒有必要全部都去自動校驗一下,只是需要的時候才會手工校驗一下!
取消方法:
windows–>perferences–>myeclipse–>validation
除開Manual下面的復選框全部選中之外,其他全部不選
手工驗證方法:
在要驗證的文件上,單擊鼠標右鍵–>myeclipse–>run validation
第二步:取消Eclipse拼寫檢查
1、拼寫檢查會給我們帶來不少的麻煩,我們的方法命名都會是單詞的縮寫,他也會提示有錯,所以最好去掉,沒有多大的用處
windows–>perferences–>general->editors->Text Editors->spelling
第三步:取消myeclipse的啟動項
myeclipse會有很多的啟動項,而其中很多我們都用不著,或者只用一兩個,取消前面不用的就可以
windows–>perferences–>general–>startup and shutdown 啟動項功能如下,可以根據自己的需要選擇
Automatic Updates Scheduler
MyEclipse QuickSetup
MyEclipse Derby
MyEclipse EASIE Geronimo 1
MyEclipse EASIE Geronimo 2
MyEclipse EASIE JBOSS 2
MyEclipse EASIE JBOSS 3
MyEclipse EASIE JBOSS 4
MyEclipse EASIE JBOSS 5
MyEclipse EASIE JBOSS
MyEclipse EASIE Jetty 4
MyEclipse EASIE Jetty 5
MyEclipse EASIE Jetty 6
MyEclipse EASIE Jetty
MyEclipse EASIE JOnAS 3
MyEclipse EASIE JOnAS 4
MyEclipse EASIE JOnAS
MyEclipse EASIE JRun 4
MyEclipse EASIE JRun
MyEclipse EASIE Oracle 10 AS
MyEclipse EASIE Oracle 9 AS
MyEclipse EASIE Oracle AS
MyEclipse EASIE Orion 1
MyEclipse EASIE Orion 2
MyEclipse EASIE Resin 2
MyEclipse EASIE Resin 3
MyEclipse EASIE Resin
MyEclipse EASIE Sun 8.x
MyEclipse EASIE Sun 8
MyEclipse EASIE Sun 9
MyEclipse EASIE Glassfish 2
MyEclipse EASIE Glassfish 1
MyEclipse EASIE Sun One
MyEclipse EASIE MyEclipse Tomcat 6 Server
MyEclipse EASIE Tomcat 4
MyEclipse EASIE Tomcat 5
MyEclipse EASIE Tomcat 6
MyEclipse EASIE Tomcat
MyEclipse EASIE WebLogic 10
MyEclipse EASIE WebLogic 6
MyEclipse EASIE WebLogic 7
MyEclipse EASIE WebLogic 8
MyEclipse EASIE WebLogic 9
MyEclipse EASIE WebLogic
MyEclipse EASIE WebSphere 5
MyEclipse EASIE WebSphere 6.1
MyEclipse EASIE WebSphere 6
MyEclipse EASIE WebSphere 4
MyEclipse Examples
MyEclipse Memory Monitor
MyEclipse Tapestry Integration
MyEclipse JSP Debug Tooling
MyEclipse File Creation Wizards
ICEfaces Integration for MyEclipse
MyEclipse Backward Compatibility
MyEclipse Perspective Plug-in
Pluse Collaboration Control Center
eclipse-cs 4.x.x -> 5.0.0 Migration Plug-in
Mozilla Debug UI Plug-in(Incubation)
Dynamic Languages ToolKit Core UI
WTP Webservice UI Plug-in
JavaServer Faces Tools - Core
Automatic Updates Scheduler
Service policy
Atfdebug Plug-in(Incubation)
Auxiliary Web Module Support for MeEclipse
JSF Editor Preview Support for MyEclipse
第五步: 更改內存使用文件
1、打開 eclipse.ini
-startup
../Common/plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
--launcher.library
../Common/plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
-install
D:/Myeclipse 8.5/Program
-vm
D:/Myeclipse 8.5/Common/binary/com.sun.java.jdk.win32.x86_1.6.0.013/jre/bin/client/jvm.dll
-configuration
configuration
-vmargs
-Xmx512m
-XX:MaxPermSize=1024m
-XX:ReservedCodeCacheSize=128m
把下面的那個 -XX:MaxPermSize 調大,比如 -XX:MaxPermSize=1024M,再把 -XX:PermSize 調成跟 -XX:MaxPermSize一樣大
原因:大家一定對這個畫面很熟悉吧:
幾乎每次 eclipse 卡到當都是因為這個非堆內存不足造成的,把最大跟最小調成一樣是因為不讓 myeclipse 頻繁的換內存區域大小
注意:XX:MaxPermSize 和 Xmx 的大小之和不能超過你的電腦內存大小
經理比較奢侈,就調到了1024
第六步: 取消Maven更新(啟動更新)
Window > Preferences > Myeclipse> Maven4Myeclipse > Maven>禁用Download repository index updates on startup
改快捷鍵之類的經理就不介紹了。
posted @
2010-11-17 10:25 張元Won 閱讀(18462) |
評論 (5) |
編輯 收藏
最近發現很多朋友連攔截器都不知道,于是想寫個BLOG總結一下。
java攔截器的基本原理其實非常簡單,說白了就是動態代理類。
下面來看一個簡單的例子
首先,我建立一個攔截器的類InterceptorClass,這里的before()和after()方法是以后攔截器會執行的方法
CODE清單一:

public class InterceptorClass
{

public void before()
{
System.out.println("攔截器InterceptorClass方法調用:before()!");
}

public void after()
{
System.out.println("攔截器InterceptorClass方法調用:after()!");
}
}
我們模擬一個業務組件接口BusinessInterface,和一個業務組件實現類BusinessClass
CODE清單二:

public interface BusinessInterface
{
public void doSomething();
}
CODE清單三:

public class BusinessClass implements BusinessInterface
{

public void doSomething()
{
System.out.println("業務組件BusinessClass方法調用:doSomething()");
}
}
然后,創建一個動態代理類DynamicProxyHandler,這個類是集成InvocationHandler接口的,動態類的原理實際上是使得當你執行一個動態方
法的時候,他可以把這個動態方法dispatch到這個動態類上來。這樣,你就可以在這個方法的前后嵌入自己的一些方法。
CODE清單四:
//包含了業務對象綁定動態代理類的處理,并實現了InvocationHandler接口的invoke方法

public class DynamicProxyHandler implements InvocationHandler
{
private Object business;//被代理對象
private InterceptorClass inceptor = new InterceptorClass();//攔截器
// 動態生成一個代理類對象,并綁定被代理類和代理處理器

public Object bind(Object business)
{
this.business = business;
return Proxy.newProxyInstance(
//被代理類的ClassLoader
business.getClass().getClassLoader(),
//要被代理的接口,本方法返回對象會自動聲稱實現了這些接口
business.getClass().getInterfaces(),
//代理處理器對象
this);
}
// 代理要調用的方法,并在方法調用前后調用連接器的方法

/** *//**
* @param proxy 代理類對象
* @param method 被代理的接口方法
* @param args 被代理接口方法的參數
* @throws Throwable
*/
public Object invoke(Object proxy, Method method, Object[] args)

throws Throwable
{
Object result = null;
inceptor.before();
result=method.invoke(business,args);
inceptor.after();
return result;
}

OK,我們來寫個類測試一下
CODE清單五:

public static void main(String[] args)
{
//生成動態代理類實例
DynamicProxyHandler handler = new DynamicProxyHandler();
//生成待測試的業務組件對象
BusinessInterface business = new BusinessClass();
//將業務組件對象和動態代理類實例綁定
BusinessInterface businessProxy = (BusinessInterface) handler.bind(business);
//用動態代理類調用方法
businessProxy.doSomething();
}
來看看結果:

近期struts2很流行,而且攔截器是struts2里面一個比較好的功能,下面舉個例子說明一下攔截器在struts2中的用法。
struts2對攔截器實現做了一個封裝,使得我們在實現的時候比較簡單。
首先我們要建一個攔截器類
CODE清單六:

public class AuthorizationInterceptor extends AbstractInterceptor
{
@Override

public String intercept(ActionInvocation invocation) throws Exception
{
Map session = invocation.getInvocationContext().getSession();
String userName = (String) session.get("userName");

if ( userName != null && userName.equals("test"))
{
System.out.println("攔截器:合法用戶登錄---");
return invocation.invoke();
}
else

{
System.out.println("攔截器:用戶未登錄---");
return Action.LOGIN;
}
}
}

這個類是必須要繼承struts2包中提供的AbstractInterceptor類,這個類有一個抽象方法intercept,這個方法是必須要實現的。
那么經理在這個攔截器里面寫了一個簡單的實現,對url用戶合法性做了一個限制。
接下來比較關鍵的是過濾器在struts2中的配置,先看看代碼
CODE清單七:
<package name="system" extends="struts-default">
<interceptors>
<!-- 定義權限控制攔截器 -->
<interceptor name="authority"

class="com.sharesin.biz.common.intercepts.struts2.AuthorizationInterceptor"/>
<!-- 定義一個包含權限控制的攔截器棧 -->
<interceptor-stack name="mystack">
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="authority"></interceptor-ref>
</interceptor-stack>
</interceptors>
<!--定義默認攔截器 -->
<default-interceptor-ref name="mystack" />
<!--定義全局處理結果 -->
<global-results>
<result name="login">index.jsp</result>
</global-results>
<action name="login_*" class="com.sharesin.biz.web.system.LoginAction" method="{1}">
<result name="success">system/homepage.jsp</result>
</action>
</package>


在interceptors節點里,我們可以定義多個攔截器,這里的名為authority的只是其中的一個。struts2的攔截器棧我是先執行struts2默認的攔
截器defaultStack,然后再執行我的。然后只需要用default-interceptor-ref標簽設置好這個system包中的默認攔截器為這個攔截器就OK了。
struts2中引入了package這個概念,我覺得十分實用,當然這對struts2攔截器也是個實惠,我們可以根據不同的action來分包和不同的攔截器
ok,來運行測試一下。

結果..

posted @
2010-09-06 17:21 張元Won 閱讀(4514) |
評論 (3) |
編輯 收藏
摘要: 在FLEX開發中有一些小技巧,經理在這里總結下,方便以后查閱,也希望能和大家一起交流。
這些小功能在實際開發中是很經常用的。
一、在DataGrid的列中加圖片
做報表的時候經常會在DataGrid中加入一些刻度條或者增減的圖片表示一些API指標值,其實這個功能FLEX可以實現。
在DataGrid-colums-DataGridColumn中有個itemRenderer屬性,...
閱讀全文
posted @
2010-09-03 11:39 張元Won 閱讀(3919) |
評論 (1) |
編輯 收藏
在使用flex過程中經常會對調樣式感到頭痛,經理在這里準備把常用的一些東東總結一下,以便以后查閱。
以后慢慢總結。
一、公用
1.includeInLayout:它的作用是當使用visible隱藏對象的時候,該對象不會占位。
2.字體:fontsize:全局字體大小,推薦設置12。font-family:"ARIAL"。這些在CSS中設定好
二、Panel
1.headerHeight:Panel頭的寬度,這里一般設置成15比較舒服。
2.borderThicknessBottom:Panel控件下邊框的粗細,一般設置成2比較舒服。
3.borderThicknessLeft:Panel左邊框的粗細,一般設置成2比較舒服。
4.borderThicknessRight:Panel右邊框的粗細,一般設置成2比較舒服。
5.backgroundImage:如果覺得Panel的白色北京太丑,那就用這個換一個漸變背景吧。

三、DataGrid&AdvancedDataGrid
1.headerColors:用于繪制標題背景漸變的兩種顏色的數組。推薦[#60beff,#1273ce],藍色漸變
2.alternatingItemColors:交替模式中行的顏色。此值可以是由多種顏色中任意兩種所組成的數組。推薦[#FFFDCE, #C8ECFF],淺藍和黃色。
3.headerWordWrap:則指定標題文本不適合一行時將換行。(這是在AdvancedDataGridColumnGroup中設置的)。
4.一個標志,指示當此列中各行的文本不能在一行中顯示時,是否能夠自動換行(這是在DataGridColumn中設置的)。
四、Chart
1.showDataTips:指定Flex是否顯示圖表的提示窗口控件。
2.verticalAxis-CategoryAxis-Title:單位可以加在坐標軸上。
3.GradientEntry:設置圖表的漸變色。詳見第..
http://m.tkk7.com/zhangyuan/archive/2010/09/03/330847.html
如下CODE
1
<mx:BarSeries xField="costs" >
2
<mx:fill>
3
<mx:LinearGradient>
4
<mx:GradientEntry color="#A6A602" ratio="0" />
5
<mx:GradientEntry color="#DFDF97" ratio=".2" />
6
<mx:GradientEntry color="#A6A602" ratio=".4" />
7
<mx:GradientEntry color="#F5F655" ratio=".8" />
8
<mx:GradientEntry color="#A6A602" ratio="1" />
9
</mx:LinearGradient>
10
</mx:fill>
11
</mx:BarSeries>
posted @
2010-08-27 15:44 張元Won 閱讀(3014) |
評論 (0) |
編輯 收藏