|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
对于一个大型项目,如果用java来作,可能需要9个月,并且可能需要翻阅10本以上的书,但如果用ruby来作,3个月,3本书就足够了,而.net网页编程也不过3,4本书足以,这就是区别。
概述
LOB代表年夜对象数据,包含BLOB和CLOB两品种型,前者用于存储年夜块的二进制数据,如图片数据,视频数据等,尔后者用于存储长文本数据,如论坛的帖子内容,产物的具体形貌等。值得注重的是:在分歧的数据库中,年夜对象对应的字段范例是不尽不异的,如DB2对应BLOB/CLOB,MySql对应BLOB/LONGTEXT,SqlServer对应IMAGE/TEXT。必要指出的是,有些数据库的年夜对象范例能够象复杂范例一样会见,如MySql的LONGTEXT的操纵体例和VARCHAR范例一样。在一样平常情形下,LOB范例数据的会见体例分歧于别的复杂范例的数据,我们常常会以流的体例操纵LOB范例的数据。别的,LOB范例数据的会见不是线程平安的,必要为其独自分派响应的数据库资本,并在操纵完成后开释资本。最初,Oracle9i十分有本性地接纳非JDBC尺度的API操纵LOB数据。一切这些情形给编写操纵LOB范例数据的程序带来应战,Spring在org.springframework.jdbc.support.lob包中为我们供应了响应的匡助类,以便我们轻松应对这头拦路虎。
Spring年夜年夜下降了我们处置LOB数据的难度。起首,Spring供应了NativeJdbcExtractor接口,您能够在分歧情况里选择响应的完成类从数据源中猎取当地JDBC对象;其次,Spring经由过程LobCreator接口作废了分歧数据厂商操纵LOB数据的不同,并供应了创立LobCreator的LobHandler接口,您只需依据底层数据库范例选择符合的LobHandler举行设置便可。
本文将具体地报告经由过程SpringJDBC拔出和会见LOB数据的详细历程。不论是以块的体例仍是以流的体例,您都能够经由过程LobCreator和LobHandler便利地会见LOB数据。关于ORM框架来讲,JPA具有本身处置LOB数据的设置范例,Spring为Hibernate和iBatis分离供应了LOB数据范例的设置类,您仅必要利用这些类举行复杂的设置就能够像一般范例一样操纵LOB范例数据。
当地JDBC对象
当您在Web使用服务器或Spring中设置数据源时,从数据源中前往的数据毗连对象是当地JDBC对象(如DB2Connection、OracleConnection)的代办署理类,这是由于数据源必要改动数据毗连一些原本的举动以便对其举行把持:如挪用Connection#close()办法时,将数据毗连前往到毗连池中而非将其真的封闭。
在会见LOB数据时,依据数据库厂商的分歧,大概必要利用被代办署理前的当地JDBC对象(如DB2Connection或DB2ResultSet)独有的API。为了从数据源中猎取当地JDBC对象,Spring界说了org.springframework.jdbc.support.nativejdbc.NativeJdbcExtractor接口并供应了响应的完成类。NativeJdbcExtractor界说了从数据源中抽取当地JDBC对象的多少办法:
办法申明ConnectiongetNativeConnection(Connectioncon)猎取当地Connection对象ConnectiongetNativeConnectionFromStatement(Statementstmt)猎取当地Statement对象PreparedStatementgetNativePreparedStatement(PreparedStatementps)猎取当地PreparedStatement对象ResultSetgetNativeResultSet(ResultSetrs)猎取当地ResultSet对象CallableStatementgetNativeCallableStatement(CallableStatementcs)猎取当地CallableStatement对象有些复杂的数据源仅对Connection对象举行代办署理,这时候能够间接利用SimpleNativeJdbcExtractor完成类。但有些数据源(如JakartaCommonsDBCP)会对一切的JDBC对象举行代办署理,这时候,就必要依据详细的情形选择合适的抽取器完成类了。下表列出了分歧数据源当地JDBC对象抽取器的完成类:
数据源范例申明WebSphere4及以上版本的数据源org.springframework.jdbc.support.nativejdbc.WebSphereNativeJdbcExtractorWebLogic6.1+及以上版本的数据源org.springframework.jdbc.support.nativejdbc.WebLogicNativeJdbcExtractorJBoss3.2.4及以上版本的数据源org.springframework.jdbc.support.nativejdbc.JBossNativeJdbcExtractorC3P0数据源org.springframework.jdbc.support.nativejdbc.C3P0NativeJdbcExtractorDBCP数据源org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractorObjectWeb的XAPool数据源org.springframework.jdbc.support.nativejdbc.XAPoolNativeJdbcExtractor<p>
C#是不行的,比如说美国的航天飞船里就有java开发的程序以上是我的愚见,其实不管那种语言,你学好了,都能找到好的工作, |
|