java-为什么将Clob的创建绑定到Connection类?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-为什么将Clob的创建绑定到Connection类?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1589字,纯文字阅读大概需要3分钟。
内容图文
![java-为什么将Clob的创建绑定到Connection类?](/upload/InfoBanner/zyjiaocheng/661/99a8e1cc79084c4fbb40c16eb15d74d6.jpg)
我有一个Java方法,可使用JDBC将CLOB传递给PL / SQL过程.我能够使用Connection类的createClob()方法做到这一点.
这是Java Doc for the Connection class.如果您注意到除了createClob()方法之外,此类中还有createBlob(),createArrayOf()和createNClob()方法.
我很好奇为什么Blob,Clob,NClob实例的创建是Connection类的一部分?似乎有点不合适.为什么将数据类型及其创建绑定到连接对象?
为什么我们不能独立创建这些数据类型的实例?我计划在SOAP Web服务中使用以下签名公开此方法:
public String handleEmployeeReview(int empId , String fileName)
Web服务客户端首先必须创建一个Connection实例来创建Clob实例,这似乎并不奇怪. (除非有我不知道的另一种创建和传递Clob的方法.)
这也让我怀疑我为该方法选择的Clob数据类型是否正确.考虑到它在Web服务中公开.
解决方法:
JDBC被设计为与数据库引擎无关.数据库类型INT,VARCHAR,TIMESTAMP等可以在Java类型中实现更常见的实现:int,String,从java.util.Date扩展到此的java.sql.Timestamp.
诸如BLOB,CLOB,NLOB之类的数据类型是更具体的字段,可以在数据库引擎中以非常不同的方式实现,某些数据库引擎甚至不支持将数组作为表列的数据类型,但JDBC仍应提供透明的接口来与客户端进行通信代码和数据库引擎. JDBC接口的设计者认为,这些对象的创建应取决于JDBC的实现(这是特定于数据库引擎的CLOB对象),而提供CLOB对象(及类似对象)创建的最佳场所将是: java.sql.Connection接口,因为您至少需要打开物理数据库连接才能创建此类特定数据库引擎对象的实例. IMO这是执行此操作的适当接口,因为它允许在不同的PreparedStatements和CallableStatements中使用相同的CLOB对象而没有问题.
Connection#createClob方法和类似方法的用法应仅由您的dao层使用.其他数据源可能使用其他方法来存储文件的二进制数据,例如存储在内存中的直接字节[],在这种情况下,数据源将是缓存系统,而不是直接数据库.
内容总结
以上是互联网集市为您收集整理的java-为什么将Clob的创建绑定到Connection类?全部内容,希望文章能够帮你解决java-为什么将Clob的创建绑定到Connection类?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。