仓酷云
标题:
了解下JAVA的Spring让LOB数据操纵变得复杂易行
[打印本页]
作者:
第二个灵魂
时间:
2015-1-18 11:15
标题:
了解下JAVA的Spring让LOB数据操纵变得复杂易行
对于一个大型项目,如果用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开发的程序以上是我的愚见,其实不管那种语言,你学好了,都能找到好的工作,
作者:
金色的骷髅
时间:
2015-1-18 16:23
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者:
若天明
时间:
2015-1-22 11:45
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
作者:
老尸
时间:
2015-1-24 15:42
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
作者:
仓酷云
时间:
2015-1-26 22:58
是一种突破用户端机器环境和CPU
作者:
因胸联盟
时间:
2015-2-4 21:18
是一种将安全性(Security)列为第一优先考虑的语言
作者:
admin
时间:
2015-2-5 01:34
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
作者:
兰色精灵
时间:
2015-2-6 17:04
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
作者:
只想知道
时间:
2015-2-10 02:21
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
作者:
灵魂腐蚀
时间:
2015-2-19 00:01
是一种使网页(Web Page)产生生动活泼画面的语言
作者:
谁可相欹
时间:
2015-3-4 11:22
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
作者:
乐观
时间:
2015-3-4 21:04
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
作者:
再见西城
时间:
2015-3-8 02:38
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
作者:
小女巫
时间:
2015-3-8 05:28
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
作者:
不帅
时间:
2015-3-13 09:20
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
作者:
若相依
时间:
2015-3-20 18:35
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2