|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你说是sun公司对她研究的透还是微软?针对自己工具开发的.net性能上肯定会站上风的。js|oracle|数据|数据库|成绩<Pstyle="TEXT-INDENT:2em">1、怎样去向理Clob、BLOB的年夜范例<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">CLOB可用于寄存年夜文本数据,最多可存储4GB数据,在使用开辟中对照罕见.java供应的sql.Clob类与之对应.它供应两个办法来读取Clob的数据:<Pstyle="TEXT-INDENT:2em">getCharacterStream()办法前往按unicode编码的输出流(java.io.Reader对象)<Pstyle="TEXT-INDENT:2em">getAsciiStream()办法前往按ASCII编码的输出流(java.io.InputStream对象)<Pstyle="TEXT-INDENT:2em">以是假如你的数据库中有大概存储中笔墨符的话,就要利用前一个办法.<Pstyle="TEXT-INDENT:2em">如今举一个实践的例子,让我一步步进修怎样利用CLOB.<Pstyle="TEXT-INDENT:2em">起首,创立一个含CLOB字段的表:<Pstyle="TEXT-INDENT:2em">createtabletest(idINTEGER,contentclob);<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">接上去,我们经由过程JSP往这张内外拔出一笔记录,然后再猎取显现它.<Pstyle="TEXT-INDENT:2em">拔出操纵:<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">以上必要注重的几点是:<Pstyle="TEXT-INDENT:2em">1)clob范例的数据不克不及间接insert,要先经由过程empty_clob()办法给它分派一个locator(同理,blob的用empty_blob()函数分派locator).然后把它select出来(此时它固然没无数据,但了局集不是空的),失掉一个Clob的对象,修正该对象的内容让它满意我们的必要,再经由过程update办法更新该行纪录.<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">2)经由过程select修正含lob范例的纪录时必定要锁定该行(经由过程forupdate关头字完成),不然oracle会报错.<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">3)刚拔出的纪录就selectforupdate,会呈现"违背读取按次"毛病,办理举措是将主动提交功效置为false,即不同意主动提交,然后commit它,再select,就能够了.这就是下面那段代码里//*两行的感化.<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">上面,我们将刚拔出的纪录从数据库中读掏出来并显现之:<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">2、编码成绩<Pstyle="TEXT-INDENT:2em">由于JAVA的开辟者是老外,以是他们对中文的撑持并非太好,这一点让很多的我们感应非常头痛,也就是我们经由过程说的汉字编码成绩吧,关于一些汉字编码的标准我就未几说了,我次要是谈谈在和oracle数据库毗连时的一些小成绩,不外这些小成绩非常让人头痛的。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">1、在拔出到数据库中的中文成绩要转换成编码<Pstyle="TEXT-INDENT:2em">2、从数据库中读到中文又要转换成编码<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">让我们看一个编码的JAVA代码:<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">//ECov.java<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">- importjava.io.UnsupportedEncodingException;publicclassECov{publicstaticStringasc2gb(Stringasc){Stringret;if(asc==null)returnasc;try{ret=newString(asc.getBytes("ISO8859_1"),"GB2312");}catch(UnsupportedEncodingExceptione){ret=asc;}returnret;}publicstaticStringgb2asc(Stringgb){Stringret;if(gb==null)returngb;try{ret=newString(gb.getBytes("GB2312"),"ISO8859_1");}catch(UnsupportedEncodingExceptione){ret=gb;}returnret;}publicstaticintbyte2int(byteb){return((-1)>>>24)&b;}}
复制代码 <Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">实在这段代码的意义也就是把两种办法合而为一了。<Pstyle="TEXT-INDENT:2em">在举行数据库拔出时要用ECov.gb2asc(arg),要在读时要用ECov.asc2gb(arg)。个中最关头的一点就是Oracle仿佛只熟悉ISO8859_1这类格局的编码吧(仅是我的设法)。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">3、一些小细节<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">1、就是setAutoCommit(trueorfalse),就是我们在sqlPlus中经常使用commit()的功效,假如是用true,就不要用commit(),不然仍是用commit()办法的。<Pstyle="TEXT-INDENT:2em">2、对日期范例的处置,实在他并非设想中setDate(),getDate()那末复杂的,两头有很年夜的毛病。人人本人多调试就会以为有良多的兴趣的。3、在和数据库中最好是接纳毗连池手艺,用尺度的J2EE的情况,用复杂的JNDI手艺,是很好的一种办法的。
由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak, |
|