1.              附件下载乱码问题:

response.setHeader("Content-Disposition", "p_w_upload; filename=" + new String(attachModel.getAttachName().getBytes("GBK"),"ISO-8859-1"));

2.              Org.apache.log4j.Logger的用法

import org.apache.log4j.Logger;

private static Logger _log = Logger.getLogger(clazz);

_log.debug("model" + model.getId());

3.              数据库差异性可能产生的问题

(1)   取数据,类型转换问题,大多发生在IntegerBigDecimal类型,程序中用instanceof 判断之后,再进行类型转换

(2)   sql,语法不一致造成的

  a  表别名的as问题,直接去掉关键字“as

  b  语法/函数不一致的问题,将sql挪至配置文件中

     类型转换 db2int() oracleto_number()

  C  时间窗口 (函数不要用在字段上)

(3)   日期的比较

   db2 : 不带时间的比较,可以直接用日期计算

   oracle:带时分秒的比较,须进行处理

(4)   遇到数据库关键字段,hibernate的配置文件中,关键字段大写加中括号“[字段名]

  数据库中关键字加引号可避免问题,但是加了引号,则大小写敏感

(5)   create table语句时,字段类型的数据库差异,由DBToolUtil中相应方法处理

(6)  数据筛选页面,关于“当前时间”对应关键字的数据库差异

4.              Oracle 数据库连接不上

首先应该保证数据库的服务启动

myeclipse的数据库视图中点 右键->new 弹出database driver的窗口,

Driver template选择oraclethin driver),

Driver name 输入oracle  

connection URL=jdbc:oracle:thin:@localhost:1521:oracle 注意localhost:1521:oracle中的oracle是数据库得sid换成你自己数据库的sid就可以

username:登陆数据库具有system权限的用户名

password:登陆数据库具有system权限的密码

点击add jar 选择ojdbc14.jar的存放位置,没有得可以到百度下一个叫ojdbc14.jar的文件。

点击test driver 到此成功配置。

 

关于启动数据库后提示ora-12505的解决方法:

"listener does not currently know of SID given in connect descriptor"

 

第一种可能

是配置得数据库sid名不正确localhost:1521:oracle 即红字部分不是你本机得sid,那么如何查看本机得sid呢?用如下命令 SELECT   NAME   FROM   v$database;sqlplus中执行就可以看到,把红字部分换成查询出来的sid就可以。

第二种可能

发现sid配置没有错误,但是还是报错,那可能就是oracle得监听配置出了问题,需要检查listener.ora文件,用记事本打开,

正确配置如下:

# listener.ora Network Configuration File: e:\oracle\product\10.2.0\db_1\network\admin\listener.ora

# Generated by Oracle configuration tools.

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = e:\oracle\product\10.2.0\db_1)

(PROGRAM = extproc)

)

(SID_DESC =

(GLOBAL_DBNAME = oracle)

(ORACLE_HOME = e:\oracle\product\10.2.0\db_1)

(SID_NAME = oracle)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

)

)

红字部分改成oracle创建时候的sid 保存退出。

 

========================================================

SQL> SELECT   NAME   FROM   v$database;

5.              MyEclipse6.5中测试数据库连接时遇到ora-12705的错误

MyEclipse6.5中测试数据库连接时也遇到ora-12705的错误了,按楼主的方法试了,不见效啊。后来找到了这个帖子:http://blog.csdn.net/yanyiwei2003/archive/2007/10/28/1851684.aspx。试将MyEclipseeclipse目录下的eclipse.ini文件,把Duser.language=en  改成 Duser.language=zh就行了。

6.              Oracle 异常 ORA-01861:

literal does not match format string(字符串格式不匹配) 如果直接按照字符串方式,或者,直接使用'2007-12-28 10:07:24',没有指定日期格式,就会报错:ORA-01861: 文字与格式字符串不匹配

必须指定日期格式

正确

SELECT D261 as ename,GENTIME,D267 FROM UNITE.UPR_C2_NE_VENDOR T

where T.GENTIME

7.              javadb2的函数使用占位参数出现的异常

javadb2的函数使用占位参数会有异常2008-11-28 15:13异常信息:

COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver][DB2/HPUX-IA64] SQL0418N 在语句中使用了无效的参数标记。 SQLSTATE=42610

代码:INSERT INTO TABLE_A ( TABLE_A.COLUMN_A)

SELECT ? FROM TABLE_B

原因:非where里面的参数占位符,在db2中需要指定其类型,否则就会提示上面的错误

修改为下面的方式,则问题解决 INSERT INTO TABLE_A ( TABLE_A.COLUMN_A)

SELECT cast(? as varchar) FROM TABLE_B