易截截图软件、单文件、免安装、纯绿色、仅160KB

Java+Oracle应用开发的几个问题


问题一:如保加载JDBC驱动程序:
  正常我们加载驱动程序有三个途径:
  1)Class.forName(String)这想当于classLoader一个String指定的类,在装载时把该驱动程序的静态内容都初始化,其实这时驱动程序类调用了DriverManager.registerDriver(driver)方法
  2)使用系统属性:System.getProperty().load(new FileInputStream("属性文件"));
  在属性文件中指定jdbc.driver=drivername 这样的好处是可以同时加载多个JDBC,换数据库时不用访问JAVA源代码,只是修改属性文件
  3)直接registerDriver(driver)这种方法最可靠,可以在任何环境下使用。
  1)方法简单,但MS的JVM不能正确初始化。比如使用IE时在APPLET中就不能使用,应该用3)的方法。但3)方法在灵活性方面不如2),可以根据环境综合考虑。
  问题二:大对象存储
  一般来说,大对象存储是把文件存到数据库中,当然也可以内存中的超大字符串。对于象图片这样的文件当然是用二进制存储,这里有很多误区,网络上的教程99%都是行不通的,连SUN自己的文档都一直错误,虽然错误很小。按说二进制文件应该存为BLOB类型,但JBDC2并不能直接对BLOB存入二进制文件,如果你这样做,会得到一个IO而不是SQL异常,为此花了我近两个小时才弄清楚。
  如果要把一个二制文件存入ORACLE,用标准的JDBC你就要用LONG ROW类型:
  create table tb_file(name varchar(20),detail long row);
  然后   File file = new File("aaa.gif");
int fileLength =(int) file.length();
InputStream fin = new FileInputStream(file);
PreparedStatement pstmt = con.prepareStatement("insert into tb_file values('aaa.gif',?)");
pstmt.setBinaryStream (1, fin, fileLength);
pstmt.executeUpdate();
  如果你一定要用BLOB存储,你就必须用ORACLE自己的方法:
create table tb_file(name varchar(20),detail BLOB);
con.setAutoCommit(false);
stmt.executeUpdate("insert into tb_file values('aaa.gif',empty_blob())");
  下面必须SELECT得到BLOB的对象再向里写:
rs = stmt.executeQuery("select detail from tb_file where name='aaa.gif' for upfdate" );
if(rs.next())
{
Blob blob = rs.getBlob(1);
BinaryOutputStream out = ((oracle.sql.BLOB)blob).getBinaryOutputStream();
byte[] b = new byte[((oracle.sql.BLOB)blob).getBufferSize];
In


相关文档:

oracle中一个数据文件的最大值(非lob)

ORACLE的一个数据文件的最大值是多少呢?
我们知道ORACLE的最小的物理单位是BLOCK,数据文件的组成的最终形式也是block,那么数据文件的大小限制就应该是block数量的限制,那么究竟block的数量有何限制,这里就要提到一个ORACLE内部术语DBA(此dba非数据库管理员,而是data block address)
   Extent 0 &n ......

ORACLE Schema 的理解

看来有的人还是对schema的真正含义不太理解,现在我再次整理了一下,希望对大家有所帮助。
我们先来看一下他们的定义:
A schema is a collection of database objects (used by a user.).
Schema objects are the logical structures that directly refer to the database’s data.
A user is a name defined in ......

Oracle 绑定变量

1、定义一个绑定变量
VAR[IABLE] [variable [NUMBER|CHAR|CHAR (n)|NCHAR|NCHAR (n) |VARCHAR2 (n)|NVARCHAR2 (n)|CLOB|NCLOB|REFCURSOR]]
定义一个绑定变量,该变量可以在pl/sql中引用。
可以用print命令显示该绑定变量的信息。
2、oracle 中,对于一个提交的sql语句,存在两种可选的解析过程, 一种叫做硬解析,一种叫做 ......

oracle 闪回功能之 恢复存储过程篇

超级好用的oracle 闪回功能之--恢复存储过程篇
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┠※┃名称:oracle 闪回功能之--恢复存储过程篇
┠※┃说明:将存储过程恢复到某一指定时间段。
┠※┃作者:zlj113
┠※┃时间:20091225
┗━━━━━━━━━━━━━━━━━━━━━━━━━ ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号