把orecal项目改成mysql_项目数据库由 Oracle 换成 Mysql

如题,javaee项目, 基于 struts2 hibernate sring 框架 开发的,现在需求是把数据库由原来的oracle 换成 mysql。

有没有做过的或熟悉的大神帮帮忙。 谢谢!

7c8003838ad3b03b1cc736f534a35664.png

10分

有Hibernate,换数据库应该可以。

修改hibernate.cfg.xml文件,更改Driver、url、user、password等信息。

b829963380d658234a82a0737201a59c.png

引用 1 楼  的回复:

有Hibernate,换数据库应该可以。

修改hibernate.cfg.xml文件,更改Driver、url、user、password等信息。

请问如何把oracle的表结构导入到 mysql中呢? 有没有工具什么的? 谢谢!

7c8003838ad3b03b1cc736f534a35664.png

10分

sql,试图,函数。sp..好多都要改

不同DB能导入吗?怀疑

b829963380d658234a82a0737201a59c.png

引用 3 楼  的回复:

sql,试图,函数。sp..好多都要改

不同DB能导入吗?怀疑

可以导入  刚才找了个小工具(ora2mysqcn) 正在使用中…

7c8003838ad3b03b1cc736f534a35664.png

10分

这个网上应该有工具吧,你在网上搜下看

b829963380d658234a82a0737201a59c.png

不要沉不要沉。。。。请问如果把oracle 换成mysql的话  java项目配置都要改什么地方?

目前可以连接上数据库,但是映射实体类时出错。

上段实体类代码看看

public class MatingTimes implements Serializable {

@Id

@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seqen")

@SequenceGenerator(name = "seqen", sequenceName = "SEQ_MATING_TIMES", allocationSize = 1)

private Integer id;

@Column(name = "TIME_DESCRIPTION")

private String timeDescription;

@Column(name = "REAMRK")

private String reamrk;

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getTimeDescription() {

return timeDescription;

}

public void setTimeDescription(String timeDescription) {

this.timeDescription = timeDescription;

}

public String getReamrk() {

return reamrk;

}

public void setReamrk(String reamrk) {

this.reamrk = reamrk;

}

}

代码是oracle时期的

7c8003838ad3b03b1cc736f534a35664.png

30分

我认为把Oracle数据库的sql语句修改到可以在Mysql中运行就可以了,然后把配置文件改下。Hibernate映射文件等什么的感觉不用改的。

b829963380d658234a82a0737201a59c.png

引用 7 楼  的回复:

我认为把Oracle数据库的sql语句修改到可以在Mysql中运行就可以了,然后把配置文件改下。Hibernate映射文件等什么的感觉不用改的。

主键生成方式得改,用oracle的时候是用的Sequence,mysql好像不支持Sequence,现在mysql主键设置成自增后出问题了,当保存数据的时候 报错:ids for this class must be manually assigned before calling save();

但是我已经把

@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = “seqen”)

@SequenceGenerator(name = “seqen”, sequenceName = “SEQ_MATING_TIMES”, allocationSize = 1)

注释掉了,mysql设置主键自增,为什么还会出这个问题? java 映射实体类时有默认主键生成方式么?网上有说设置  但是我现在用的是注解的方式配置的,不是xml。需要怎么改?

求指教。

b829963380d658234a82a0737201a59c.png

主键那个问题解决了,我把mysql主键设置成自增,然后在实体类中设置主键是注解为:

@Id

@GeneratedValue(strategy = GenerationType.IDENTITY )

就好了。

b829963380d658234a82a0737201a59c.png

不要沉不要沉….请问一下   oracle 改成 mysql  有什么需要注意的么?  谢谢呀

7c8003838ad3b03b1cc736f534a35664.png

10分

有工具可以转换 你搜一下。

b829963380d658234a82a0737201a59c.png

引用 11 楼  的回复:

有工具可以转换 你搜一下。

恩 数据库是转换过来了,可是项目也得跟着改啊  现在我是把ID生成方式给改了。而且项目也能运行了。现在不知道还有什么地方需要修改? 怕有隐患啊啊啊…

7c8003838ad3b03b1cc736f534a35664.png

30分

我以前自己写的小东西 从Oracle转到mysql了

貌似我就只改了主键生成策略  其他的Hibernate都帮我弄好了。。。。。

我是用Hibernate自动生成的  没有触发器什么的  就只有table 主外键

b829963380d658234a82a0737201a59c.png

PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property “”driverClass”” threw exception; nested exception is java.beans.PropertyVetoException: Could not locate driver class with name “”com.mysql.jdbc.Driver””.  我的也是把Oracle数据库换成MySQL数据库,但是我的项目报这个错怎么解决?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值