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

在Oracle下开发Java程序的经典问题解答

 
问题一:如保加载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())


相关文档:

Java 设计模式(12)

Observer
Intent
Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.
How to
Subject
  
knows its observers. Any number of Observer objects may observe a subject.
  
provides an in ......

我和Java的一些往事

     大家知道,在1991年,几乎与Linux同时,SUN发布了Java编程语言。不久,我的大学同学(比我低两年)王克宏教授(清华博士导师)与SUN合作成立了中国最早的“Java研究中心”,并且担任该中心主任。从此,我开始注意Java技术的发展动态。我家中的存书,以Java书籍最多(当然,除了数学书籍 ......

java中的string类型全面解析

1. 首先String不属于8种基本数据类型,String是一个对象。
  因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。
  2. new String()和new String(“”)都是申明一个新的空字符串,是空串不是null;
  3. String str=”kvill”;
......

AES算法java实现浅析

      java jce对aes算法有很好的支持,但是默认安装的JDK或者JRE是不能支持aes192bit密钥和aes256bit密钥两种算法的,需要到sun官方下载Java(TM) Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files,以下是jce unilimited strength jurisdiction policy files 6的官方 ......

Java Reflection (JAVA反射)

Reflection 是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性。例如,使用它能获得 Java 类中各成员的名称并显示出来。
Java 的这一能力在实际应用中也许用得不是很多,但是在其它的程序设计语言中根本就不存在这一特性。例如,Pascal、C ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号