项目今天上线,没想到这能准时上线,开发过程中遇到大大小小的问题也不少,昨天部署到服务器上也出现了很多问题。
1.服务器环境oracle9i、jdk1.5、Tomcat5x(很多版本的jdk、Tomcat)
本地环境oracle10g、jdk1.6、Tomcat6
首先遇到的就是在数据迁移当中,如何从10g倒到9i中,如大家所知,oracle是向后不兼容得,也就说你用10g的客户端导出的dmp格式数据库文件(大量数据)不能倒进9i的服务器里的!到网上搜了一把解决方案,首选用9i的客户端连接到10g的服务器进行导出dmp,(在9i的客户端采用Net Configuatuion A..的工具连接到本地10g的服务器上),原以为这样会大功告成,但谁知道最重要的一张内容表含有clob字段,直到进来表结构,大量数据却没有到进来,后来才知道clob字段不能通过sql导出,只能通过dmp格式!但是很神奇的是9i导出dmp也是空的,而我10g却可以,最后忍无可忍,自己花了五分钟写了一个程序执行了几秒就完成了导入
@SuppressWarnings("deprecation")
public void setdate(List<Content> list){
Connection con;
String url="jdbc:oracle:thin:@x.x.x.x:1521:orcl";
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
con = DriverManager.getConnection(url,"shzf","shzf");
String sql="insert into t_content (id,columns,title,content,pubdate,publisher,department,uploadfilepath,flag) " +
"values (?,?,?,?,?,?,?,?,?)";
for(Content c : list){
CLOB clob = new CLOB((OracleConnection)con); //创建一个实例化对象
clob = oracle.sql.CLOB.createTemporary((OracleConnection)con, true, 1);
clob.putString(1, c.getContent()); //为对象赋值
PreparedStatement pst=con.prepareStatement(sql);
pst.setString(1, c.getId());
pst.setString(2, c.getColumns());
pst.setString(3, c.getTitle());
pst.setClob(4, clob);
pst.setString(5, c.getPubdate());
pst.setString(6, c.getPublisher());
pst.setString(7, c.getDepartment());
pst.setString(8, c.getUploadfilepath());
pst.setString(9, c.getFlag());
pst.executeUpdate();
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 得到所有数据
* @return
*/
@SuppressWarnings("unchecked")
public List<Content> getContents(){
String sql="select * from t_content";
List<Content> list=(List<Content>)query(sql, null,new BeanListHandler(Content.class));
System.out.println(list.size());
return list;
}
数据就这样搞定了...
最后到项目部署,遇到了JDK版本不一样导致无法编译,新安装的Tomcat所有端口号都被占用!郁闷的一塌糊涂...
解决办法:把我本地的安装好的JDK1.6直接拷过去,还有绿色版的Tomcat6
设置catalina.bat,在第二行加set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_07,项目终于搞定了!
在测试阶段发现日志报错:“ORA-01461: 仅可以为插入 LONG 列的 LONG 值赋值"
查了一下资料http://hi.baidu.com/yehaizi_2008/blog/item/a68d53d312e39239960a16fa.html/cmtid/8099e2d890eb213b32fa1c13
感觉9i真的不怎么样!
以后自己整理服务器时一定注意采用的版本问题!