Alt+Shift+Q,Q 弹出"Show View"选择界面 Alt+Shift+Q,T Show View(View: Hierarch) Alt+Shift+Q,B Show View(View: Breakpoints) Alt+Shift+Q,H Show View(View: Cheat Sheets) Alt+Shift+Q,C Show View(View: Console) Alt+Shift+Q,L Show View(View: Error Log) Alt+Shift+Q,Z Show View(View: History) Alt+Shift+Q,J Show View(View: Javadoc) Alt+Shift+Q,O Show View(View: Outline) Alt+Shift+Q,P Show View(View: Package Explorer) Alt+Shift+Q,X Show View(View: Problems) Alt+Shift+Q,S Show View(View: Search) Alt+Shift+Q,Y Show View(View: Synchronize) Alt+Shift+Q,V Show View(View: Variables) Debug: F5 单步调试进入函数内部
6) 点击"OK",便可看到"User Specified Entries"已有了所增长的DTD(的KEY); 一样,hibernate-mapping-3.0.dtd这个DTD的加入,也能够如法炮制; 7) 重启MyEclipse便可,注意若是提示不出来, 并在状态栏的左下出现"Content Assist not available at the current location", 请在光标位置键入一个空格再使用Alt+/试试;
(4) 全部的DROP TABLE XXxxx CASCADE CONSTRAINTS;语句生成; 方式二: (1) 先动态生成sql脚本(vi gen.sql,而后内容以下): set head off set feed off set echo off spool deltab.sql SELECT 'DROP TABLE '||table_name||' CASCADE CONSTRAINTS;' FROM user_tables; spool off set head on set feed on (2) 执行gen.sql生成deltab.sql; (3) 执行deltab.sql脚本; ================================================================================ 34. 新建工做空间WorkSpace后,如何使用之前的工做空间设置? ================================================================================ 原工做空间目录下有相关的配置信息: \.metadata\.plugins\org.eclipse.ui.workbench \.metadata\.plugins\org.eclipse.ui.workbench.texteditor 将上面两个文件夹COPY到新的工做空间覆盖,而后再启动MyEclispe. 若是打开新的工做空间后,项目处还有旧工做空间的项目列表, 则删除便可,但注意不要将其从磁盘上完全删除,也就是只从工做空间删除. ================================================================================ 35. MyEclipse中编写Java源文件时一个奇怪的问题[点Vertical Ruler上的红叉后,代码被隐藏] ================================================================================ 现象描述: 若是源文件有错,这时在错误行的行首左边(行号)的左边的Vertical Ruler(标断点的那个隔条)上 会有一个红叉图标,点击这个红叉图标,通常会弹出一个提示你修正的提示框, 就跟在有错的地方使用快捷键CTRL+1调出Quick Fix框同样, 但如今用鼠标点这个红叉,快速修正框不弹出了, 替代的倒是整个Editor界面中的代码从错误地方开始,被移动到Editor界面中的最顶, 在有错的代码的上边的其余代码都会看不到了(注意不是代码被折叠Folding了,而是看不见了, 可是行号的序号倒是此行原来的样子,只不过如今这行是顶行),关掉这个源文件,从新打开, 全部代码又都显示了,
如今的问题是怎样让鼠标点红叉后出Quick Fix框,而不是将错误代码置顶并隐藏其以前的代码? 解决: 这是因为Eclipse中的"Show Source of Selected Element Only"功能引发的, 定位到: Window->Customize Perspective->Tool Bar Visibility->Editor Presentation 展开Editor Presentation,找到Show Source of Selected Element Only,将其勾选, 这样在工具栏的快捷处就会出现这个功能的图标,若是这个图标是凹下去的,点击一下, 使其不被使用便可; 也可在工具栏快捷的空白处鼠标右键->Customize Perspective->Tool Bar Visibility... 这样找到Show Source of Selected Element Only选项; ================================================================================ 36. 解决MyEclipse中链接数据库链接后,展开table或是view列表是不能显示的问题: ================================================================================ 现象: MyEclipse8.0GA中,DB Browers能与数据库创建链接,可是在试图展开table或是view列表时是空的, 看不到已经创建的表。并且,右键点击table的create table进行建表, 在提交时报错以下:
Table could not be created Reason:ORA-06552:PL/SQL: Compilation unit alalysis terminated ORA-06553: PLS-553: 没法识别字符集名称 ORA-06553: PLS-553: character set name is not recognized; 开始怀疑是MyEclipse的问题,后来想起来有对数据库作过字符集的修改, 手动的使用update props$,修改了字符集,其实这并不会真正完全的改变数据库的全部字符集, 下面来确认字符集是否是真的被完全修改: SQL> select value$ from props$ where name='NLS_CHARACTERSET'; VALUE$ ---------------------------- ZHS16GBK SQL> SELECT DISTINCT (NLS_CHARSET_NAME(CHARSETID)) CHARACTERSET, DECODE( TYPE#, 1, DECODE(CHARSETFORM, 1, 'VARCHAR2', 2, 'NVARCHAR2','UNKOWN'), 9, DECODE(CHARSETFORM, 1, 'VARCHAR', 2, 'NCHAR VARYING','UNKOWN'), 96, DECODE(CHARSETFORM 5 , 1, 'CHAR', 2, 'NCHAR', 'UNKOWN'), 112, DECODE(CHARSETFORM, 1, 'CLOB', 2, 'NCLOB', 'UNKOWN') ) TYPES_USED_IN FROM SYS.COL$ WHERE CHARSETFORM IN (1, 2) AND TYPE# IN (1, 9, 96, 112);
CHARACTERSET TYPES_USED_IN ---------------------------------------- ------------- WE8ISO8859P1 VARCHAR2 WE8ISO8859P1 CHAR AL16UTF16 NCLOB AL16UTF16 NVARCHAR2 ZHS16GBK VARCHAR2 WE8ISO8859P1 CLOB AL16UTF16 NCHAR 已选择7行。 上面SELECT语句的意思是: NLS_CHARSET_NAME(CHARSETID) --> 使用NLS_CHARSET_NAME()函数,取到其ID参数的字符集名称; DECODE(....) TYPES_USED_IN --> 括号中的意思是: 若是TYPE#(TYPE#为第一个DECODE的第一个参数)的值是 第二个参数(1),则取其后的参数(1后面的)为函数的返回值, 不然继承判断TYPE#是否其与第四个参数相等,若是相等, 函数返回第五个参数的值.....,TYPE#若是均不等于 1,9,96,112,则最外的DECODE()函数返回NULL; 确实在数据库的列属性中仍然存在着多个字符集的设定,下面解决这个问题。 SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP MOUNT; SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; System altered. SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; System altered. SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0; System altered. SQL> ALTER DATABASE OPEN; Database altered. SQL> COL VALUE NEW_VALUE CHARSET SQL> SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_CHARACTERSET'; VALUE ------------------------------------------- ZHS16GBK SQL> COL VALUE NEW_VALUE NCHARSET SQL> SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_NCHAR_CHARACTERSET'; VALUE ------------------------------------------- ZHS16GBK 这里的国家语言字符集是有问题的,往下看操做就知道了:
-- INTERNAL_USE是没有写在文档中的参数,用以强制完成字符集一致化 ALTER DATABASE CHARACTER SET INTERNAL_USE &CHARSET; ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &NCHARSET; SQL> ALTER DATABASE CHARACTER SET INTERNAL_USE &CHARSET; old 1: ALTER DATABASE CHARACTER SET INTERNAL_USE &CHARSET new 1: ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK Database altered. SQL> ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &NCHARSET; old 1: ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &NCHARSET new 1: ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE ZHS16GBK ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE ZHS16GBK * ERROR at line 1: ORA-12714: invalid national character set specified -- 运行到此处出问题了,看来国家字符集不能是ZHS16GBK的了, -- 那为何取的时候会取到呢?是由于早先的时候无知地使用了这个语句: SQL> UPDATE props$ SET value$='ZHS16GBK' WHERE name='NLS_CHARACTERSET' or name='NLS_NCHAR_CHARACTERSET'; -- 其值原来是 AL16UTF16,UPDATE后改为了ZHS16GBK,如今把其改回去先; SQL> UPDATE props$ SET value$='AL16UTF16' WHERE name='NLS_NCHAR_CHARACTERSET'; 2 1 row updated. SQL> commit; Commit complete. -- 再次运行: SQL> ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &NCHARSET; old 1: ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &NCHARSET new 1: ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE ZHS16GBK ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE ZHS16GBK * ERROR at line 1: ORA-12714: invalid national character set specified -- 仍是不行,看看错误缘由: SQL> !oerr ORA 12714 12714, 00000, "invalid national character set specified" // *Cause: Only UTF8 and AL16UTF16 are allowed to be used as the national // character set // *Action: Ensure that the specified national character set is valid -- 由此可知,Oracle 10g的NATIONAL CHARACTER SET只有2个选择:AL16UTF16与UTF8 -- 下面直接用国家字符集名字,而不使用&NCHARSET来取: SQL> ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE AL16UTF16; Database altered. -- 成功修改
-- 关闭数据库并重启: SQL> SHUTDOWN IMMEDIATE Database closed. Database dismounted. ORACLE instance shut down. SQL> STARTUP ORACLE instance started. Total System Global Area 612368384 bytes Fixed Size 2022696 bytes Variable Size 251658968 bytes Database Buffers 352321536 bytes Redo Buffers 6365184 bytes -- 按照上面的步骤,一步一步来,一步不要少,完成之后,从新检索col$表。 CHARACTERSET TYPES_USED_IN ---------------------------------------- ------------- ZHS16GBK CHAR AL16UTF16 NCLOB ZHS16GBK VARCHAR2 AL16UTF16 NVARCHAR2 ZHS16GBK CLOB AL16UTF16 NCHAR 已选择6行。 与以前的作一下对比: CHARACTERSET TYPES_USED_IN ---------------------------------------- ------------- WE8ISO8859P1 VARCHAR2 WE8ISO8859P1 CHAR AL16UTF16 NCLOB AL16UTF16 NVARCHAR2 ZHS16GBK VARCHAR2 WE8ISO8859P1 CLOB AL16UTF16 NCHAR 已选择7行。 可看出: 对于CHAR,VARCHAR2,CLOB使用了ZHS16GBK; 对于NCHAR,NVARCHAR2,NCLOB使用了AL16UTF16; 再次使用MyEclipse打开看看,一切OK了. 相关内容: ================================================================================ 环境变量可设置为: NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK' NLS_LANG='AMERICAN_AMERICA.ZHS16GBK' NLS_LANG='AMERICAN_AMERICA.US7ASCII' 改变SESSION会话的(客户端界面显示)语言: 错误写法: ALTER SESSION SET NLS_LANGUAGE='AMERICAN_AMERICA.ZHS16GBK'; SET NLS_LANG='AMERICAN_AMERICA.ZHS16GBK' 正确写法: ALTER SESSION SET NLS_LANGUAGE=AMERICAN; ALTER SESSION SET NLS_LANGUAGE='SIMPLIFIED CHINESE'; 有空格使用''括起来. 有关数据库字符集: 1. 查看数据库字符集 数据库服务器字符集: SELECT * FROM NLS_DATABASE_PARAMETERS; 其来源于props$,是表示数据库的字符集;
客户端字符集环境: SELECT * FROM NLS_INSTANCE_PARAMETERS; 表示客户端的字符集的设置,多是参数文件,环境变量或者是注册表,其来源于v$parameter;
若是是在Package Explorer中选中Java源文件,而后鼠标右键->Copy Qualified Name, 获得的格式是路径格式,以下: /foo_20100713/src/com/taotling/riskctrl/Access.java 若是选中一个方法,鼠标右键->Copy Qualified Name, 获得的格式以下: com.taotling.riskctrl.Access.check(CheckValue) ================================================================================ 39. Debug的时候跳回上一个Frame从新进入被选中的Stack Frame ================================================================================ Eclipse 中 drop to frame 的调试技巧 解释以下: Select the [ Drop to Frame command ] to re-enter the selected stack frame in the Debug View. Note this command is only available if the current VM supports drop to frame and the selected stackframe is not the top frame or a frame in a native method. 就是说,这个功能能够从新跳到当前方法的开始处从新执行, 而且全部上下文变量的值也回到那个时候。 不必定是当前方法,能够点击当前调用栈中的任何一个frame跳到那里(除了最开始的那个frame)。 主要用途是全部变量状态快速恢复到方法开始时候的样子从新执行一遍, 便可以一遍又一遍地在那个你关注的上下文中进行屡次调试(结合改变变量值等其它功能), 而不用重来一遍调试到哪里了。
固然,原来执行过程当中产生的反作用是不可逆的(好比你往数据库中插入了一条记录)。 这里也说了如何使用这个功能: http://www.javalobby.org/forums/thread.jspa?threadID=15271&tstart=0 引用以下: --------------------------------------------------------------------------- You can't know where you are without knowing where you've been. It's true in life, and it is especially true in debugging code. Placing a breakpoint in a method to test code is usually only useful if you know the context of how the method was executed. The main 'Debug' view of the 'Debug' perspective shows a stack trace of the methods that have led to the current point. Each element in this stack trace is referred to in Eclipse as a 'frame'. A frame is nothing more than the variable state of a method right when the method it called was executed. You can preview the state of a frame simply by clicking on it in the 'Debug' view. Notice that once selected you can see the values in the variable view at the point that the child method 'methodB' was called. It is possible to preview the state of any frame simply by selecting it in the 'Debug' view. What if, however, you've decided that you missed an important state in the execution process; perhaps the breakpoint was in the wrong place, or maybe you accidentally stepped over some code you wanted to inspect earlier in the process. Eclipse has a feature called 'Drop to Frame'. 'Drop to Frame' essentially lets you 'rewind' the execution to the beginning of any method in the stack. This is especially useful when performing variable modification or code hotswapping - both features I plan to discuss in detail future articles - traditional debugging, however, can still benefit greatly from the drop to frame functionality. I personally like to think of drop to frame as my emergency rewind button when I'm dealing with traditional debugging. To drop to a certain frame, select the frame in the 'Debug' view as before, and right click and select the 'Drop to Frame' action. Once done, you will back up to the beginning of the execution of the selected method. Notice that now 'methodB' is no longer on the stack at all, and you are now back in 'methodA'. I highly recommend experimenting with these features; it is something I can't do justice to; it simply has to be experienced. If you find yourself heading for the stop button so you can start your debug session over, take a breath and consider using 'drop to frame' - it can save a huge amount of time. 40. Java Comppiler 的 compiler compliance level的含义说明================================================================================ 查看Java Comppiler 界面中的"Configure Workspace Settings"; 注意,若是勾选了"Enable project specific settings", 而且勾选了下面"JDK Compliance"中的 "Use compliance from execution environment on the Java Build Path" 使用的"Compiler compliance level"将会是: compiler compliance level的含义说明: 设置编译级别暨 Eclipse compiler compliance level为较低版本, 只是让编译器相信你的代码是兼容较低版本的, 在编译时生成的byteCode(class)兼容较低版本。 这样设置与你写代码时引用的JDK是不要紧的, 也就是说你在写代码时仍能够引用较高版本的API(这样就可能致使错误). 设置compiler compliance level为较低版本, 这样的好处是当别人使用了较低版本的Jdk时也能够引用你写的编译后的代码。 它能够保证编译后的class文件的版本一致性。 可是,若是你的代码里面(java source)里面调用了较高版本jdk的API. 那么即便设置了compiler compliance level为较低版本, 在较低版本的JDK上运行你的代码也会报错。 因此建议在写代码时引用的JDK,要跟你compiler compliance level设置的版本一致。41. Find/Replace中设置回绕查询================================================================================ Ctrl+F弹出Find/Replace界面,勾选其"Options"中的"Wrap search"回绕查询;42. 快速查找哪些方法或类中引用了当前选中的属性或方法或类或其余对象:================================================================================ (1) 选中须要进行查询的对象或属性; (2) 鼠标右键->References-> 其下有几个选项: Workspace (工做空间中) Project (项目中) Hierarchy (继承结构中) Working Set... (其余Working Set中) 每一个均表示必定的范围,经常使用的是Project,若是使用Workspace须要当心查询范围扩大了; (3) 若是上面的查询没有结果,那就使用: 鼠标右键->Declarations 这表示哪些地方声明了此变量,一样也有如下选项: Workspace Project Hierarchy Working Set... (4) 通常都使用快捷键 Ctrl + Shift + G 查询Worksapace范围内, 不过这种方式须要保证只有你用到的工程打开,不然查询的结果有可能含有其余工程的引用; 若是Ctrl + Shift + G 查询没有结果,那就试试 Ctrl + G , 有可能在别的地方再次进行了声明而使用,因此引用查询不到;================================================================================关于软件版本:================================================================================ Alpha: 内部测试版,通常不向外部发布,会有不少Bug.通常只有测试人员使用。 Beta: 测试版,这个阶段的版本会一直加入新的功能。在Alpha版以后推出。 RC:(Release Candidate) 顾名思义!用在软件上就是候选版本。系统平台上就是发行候选版本。 RC版不会再加入新的功能了,主要着重于除错。 RTM:(Release to Manufacture) 给工厂大量压片的版本,内容跟正式版是同样的,不过RTM版也有出限制、评估版的。 可是和正式版本的主要程序代码都是同样的。 OEM: 给计算机厂商随着计算机贩卖的,也就是随机版。 只能随机器出货,不能零售。只能全新安装,不能从旧有操做系统升级。 包装不像零售版精美,一般只有一面CD和说明书(受权书)。 RVL: 号称是正式版,其实RVL根本不是版本的名称。它是中文版/英文版文档破解出来的。 EVAL: 流通在网络上的EVAL版,与"评估版"相似,功能上和零售版没有区别。 RTL:Retail(零售版) 真正的正式版,正式上架零售版。 在Windows的安装盘的i386文件夹里有一个eula.txt,最后有一行 EULAID,就是系统的版本。 好比简体中文正式版是EULAID:WX.4_PRO_RTL_CN,繁体中文正式版是WX.4_PRO_RTL_TW。 其中:若是是WX.开头是正式版,WB.开头是测试版。_PRE,表明家庭版;_PRO,表明专业版。 总结版本号: V(Version): 即版本,一般用数字表示版本号。(如:EVEREST Ultimate v4.20.1188 Beta) Build: 用数字或日期标示版本号的一种方式。(如:VeryCD eMule v0.48a Build 071112) SP: Service Pack,升级包。(如:Windows XP SP 2/Vista SP 1) 受权和功能划分: Trial: 试用版,一般都有时间限制,有些试用版软件还在功能上作了必定的限制。可注册或购买成为正式版. Unregistered: 未注册版,一般没有时间限制,在功能上相对于正式版作了必定的限制。可注册或购买成为正式版。 Demo: 演示版,仅仅集成了正式版中的几个功能,不能升级成正式版。 Lite:精简版 Full version:完整版,属于正式版。 语言划分: SC :Simplified Chinese简体中文版。 CN :简体中文版 GBK :简体中文汉字内码扩展规范版。 TC :Traditional Chinese繁体中文版。 CHT :繁体中文版 BIG5:繁体中文大五码版。 EN :英文版 Multilanguage:多语言版 UTF8:Unicode Transformation Format 8 bit,对现有的中文系统不是好的解决方案。 开发阶段划分: α(Alpha)版: 内测版,内部交流或者专业测试人员测试用。Bug较多,普通用户最好不要安装。 β(Beta)版: 公测版,专业爱好者大规模测试用,存在一些缺陷,该版本也不适合通常用户安装。 γ(Gamma)版: 至关成熟的测试版,与即将发行的正式版相差无几。 RC版: Release Candidate。 RC版: Release Candidate 的缩写,意思是发布倒计时,候选版本,处于Gamma阶段, 该版本已经完成所有功能并清除大部分的BUG。 到了这个阶段只会除BUG,不会对软件作任何大的更改。 从Alpha到Beta再到Gamma是改进的前后关系,但RC一、RC2每每是取舍关系。 Final:正式版。 其余版本 Enhance :加强版或者增强版 属于正式版1 Free :自由版 Release :发行版 有时间限制 Upgrade :升级版 Retail :零售版 Cardware:属共享软件的一种,只要给做者回复一封电邮或明信片便可。 (有的做者并由此提供注册码等),目前这种形式已很少见。/ S Plus :属加强版,不过这种大部分是在程序界面及多媒体功能上加强。 Preview :预览版 Corporation & Enterprise :企业版 Standard:标准版 Mini :迷你版也叫精简版只有最基本的功能 Premium :贵价版 Professional :专业版 Express :特别版 Deluxe :豪华版 Regged :已注册版 Rip :是指从原版文件(通常是指光盘或光盘镜像文件)直接将有用的内容(核心内容)分离出来, 剔除无用的文档,例如PDF说明文件啊,视频演示啊之类的东西,也能够算作是精简版. 但主要内容功能是一点也不能缺乏的! 另:DVDrip是指将视频和音频直接从DVD光盘里以文件方式分离出来。 RTM 版:这基本就是最终的版本,英文是 Release To Manufactur,意思是发布到生产商。 Original Equipment Manufacturer (OEM) You may license products through an Original Equipment Manufacturer (OEM). These products, such as Windows operating systems, come installed when you purchase a new computer. OEM软件是给电脑生产厂的版本,无需多说。 Full Packaged Product (FPP)/Retail Physical, shrink-wrapped boxes of licensed product that can be purchased in a local retail store or any local software retailer. FPP就是零售版(盒装软件),这种产品的光盘的卷标都带有"FPP"字样, 好比英文WXP Pro的FPP版本的光盘卷标就是WXPFPP_EN,其中WX表示是Windows XP, P是Professional(H是Home),FPP代表是零售版本,EN是代表是英语。 得到途径除了在商店购买以外,某些MSDN用户也能够获得。 Volume Licensing for Organizations (VLO) You may enjoy potentially significant savings by acquiring multiple product licenses. Depending on the size and type of your organization. 团体批量许可证(大量采购受权合约),这是为团体购买而制定的一种优惠方式。 这种产品的光盘的卷标都带有"VOL"字样,取"Volume"前3个字母,以代表是批量, 好比英文WXP Pro的VOL版本的光盘卷标就是WXPVOL_EN,其中WX表示是Windows XP, P是Professional(VOL没有Home版本),VOL代表是团体批量许可证版本,EN是代表是英语。 得到途径主要是集团购买,某些MSDN用户也能够获得。 在不少软件下载的时候,你会发觉标识为GA或者CRx等。好比MySQL和JBoss都采用这种标识。 那什么是GA呢。GA是Generally Available的缩写, 意思是开发团队认为该版本是稳定版(有的软件可能会标识为stable版或者production版, 其意思和GA相同),能够在较为关键的场合使用。 若是你是要用在生产中的软件,或者你是一个新手,那么你最好选用GA版本。 这是测试最为充分,最为稳定的版本。 RC就是Release Candidate(候选版本)的简称 GA:General Availability,正式发布的版本,在国外都是用GA来讲明release版本.