项目从mysql迁移到oracle

以前的项目使用struts2.3.4+spring3.1.1 +hibernate3.5.5 (SSH2)框架,采用mysql数据库,根据需要换成oracle。下面是修改所做的工作
 
1、mysql 5.5用的mysql-connectoro-java-5.1.15.jar ,换成oracle 11g在web-inf/lib下添加ojdbc14.jar、
2、applicationcontext.xml如下
 
 
 
classpath:jdbc.properties  
 
 
  
 
   
 
 
 
 
 
 
 
 
 
 
 
 
 
              
 
   
   
 
  ${database.dialect}              
  update  
 
 
 
 
 
   
  com/test/demo/bean  
 
 
 
 
 
修改jdbc.properties
#oracle  
database.driver=oracle.jdbc.driver.OracleDriver  
database.url=jdbc\:oracle\:thin\:@localhost\:1521\:orcl  
database.user=test  
database.password=test  
database.dialect=org.hibernate.dialect.Oracle9Dialect  
#mysql  
#database.driver=com.mysql.jdbc.Driver  
#database.url=jdbc\:mysql\://127.0.0.1\:3306/test?useUnicode\=true&characterEncoding\=utf-8  
#database.user=root  
#database.password=123456  
#database.dialect=org.hibernate.dialect.MySQL5Dialect    


3、hibernate采用的注解,主键自动增长,把@GeneratedValue(strategy = GenerationType.AUTO)换成序列sequence自动增长
@SequenceGenerator(name = "generator",allocationSize=1,initialValue=1,sequenceName="DEPARTMENT_ID_SEQ"  
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "generator")  
@Id  
@SequenceGenerator(name = "generator",allocationSize=1,initialValue=1,sequenceName="DEPARTMENT_ID_SEQ"  
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "generator")  
//  @GeneratedValue(strategy = GenerationType.AUTO)  
@Column(name = "id", nullable = false)  
public Integer getId() {  
return this.id;  
}  
public void setId(Integer id) {  
this.id = id;  
}  


移植过程遇到的问题:
1、ERROR [pool-2-thread-1] (SchemaUpdate.java:213) - ORA-02261: 表中已存在这样的唯一关键字或主键 ,这个错误是因为以前mysql写的时候主键,
有unique=true这句话,而在oracle里报错,去掉就ok了 
2、(SchemaUpdate.java:213) - ORA-00904: : 标识符无效  ,这个错误是因为我的表字段里用到了oracle的保留字或者关键字,比如audit,改成其他名字就可以了
3、没有创建sequence的权限,顾名思义,为该数据库用户添加拥有创建sequence的权限就ok了

你可能感兴趣的:(项目迁移)