项目从mysql迁移到oracle所需要修改
2013-05-01 13:34
197 查看
以前的项目使用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如下
修改jdbc.properties
3、hibernate采用的注解,主键自动增长,把@GeneratedValue(strategy = GenerationType.AUTO)换成序列sequence自动增长
移植过程遇到的问题:
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了
1、 mysql 5.5用的mysql-connectoro-java-5.1.15.jar ,换成oracle 11g在web-inf/lib下添加ojdbc14.jar、
2、applicationcontext.xml如下
<!--db配置文件导入 --> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location"> <value>classpath:jdbc.properties</value> </property> </bean> <!-- 采用c3p0连接池,引入 c3p0-0.9.1.jar包--> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="${database.driver}"/> <property name="jdbcUrl" value="${database.url}"/> <property name="user" value="${database.user}"/> <property name="password" value="${database.password}"/> <!-- 指定连接数据库连接池的最大连接数 --> <property name="maxPoolSize" value="40"/> <!-- 指定连接数据库连接池的最小连接数 --> <property name="minPoolSize" value="1"/> <!-- 指定连接数据库连接池的初始化连接数 --> <property name="initialPoolSize" value="1"/> <!-- 指定连接数据库连接池的连接的最大空闲时间 --> <property name="maxIdleTime" value="20"/> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">${database.dialect}</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> </props> </property> <property name="packagesToScan"> <list> <value>com/test/demo/bean</value><!-- 扫描实体类,也就是平时所说的model --> </list> </property> </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了
相关文章推荐
- Oracle 迁移至 MySQL 后 需要修改的SQL语句 小总结
- Mysql迁移到Oracle前需要了解的50件事
- Mysql_迁移到Oracle前需要了解的50件事
- 数据库从oracle移植到mysql时需要进行的修改
- Spring-boot+JPA+Hibernate项目修改数据库MySQL为Oracle出现的问题
- 使用ibatis将数据库从oracle迁移到mysql的几个修改点
- 使用ibatis将数据库从oracle迁移到mysql的几个修改点
- 项目从mysql迁移到oracle
- 数据从MySQL迁移到Oracle 需要注意什么
- 数据从MySQL迁移到Oracle 需要注意什么
- 数据从MySQL迁移到Oracle需要注意些什么
- 单元测试日期使用ibatis将数据库从oracle迁移到mysql的几个修改点
- 从MySQL迁移到Oracle需要注意些什么
- Mysql迁移到Oracle前需要了解的50件事
- Oracle12.2 RAC集群管理之IP地址修改_Oracle12cR2视频教程(项目实战之七)
- 数据库迁移工具Navicat Premium之OracleToMysql
- mysql oracle sql文件备份恢复问题(外键约束导致导入sql需要按顺序)
- oracle 迁移到 mysql(结构和数据)
- oracle迁移到mysql(仅使用脚本)
- 核心业务系统数据库平台迁移: Oracle -> MySQL