欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

eclipse Java web项目数据库由oracle更改为mysql中遇到的问题(使用JPA注解)附上修改过程

程序员文章站 2022-07-12 23:51:15
...

eclipse Java web项目数据库由oracle更改为mysql中遇到的问题(使用JPA注解)附上修改过程
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table ‘pcom.user_sequences’ doesn’t exist

com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:
Table 'pcom.user_sequences' doesn't exist
   at com.mysql.jdbc.SQLError.om.user_sequences' doesn't exist
   at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
   .............(此处省略N字)

一直纠结sequence的提示,oracle中使用到了序列,注解的时候也去掉了序列呀。
寻找了很久,才发现犯了一个低级错误,applicationContext.xml配置文件的数据库方言没有修改过来,sessionFactroy的配置中,将

<prop key="hibernate.dialect"> org.hibernate.dialect.OracleDialect </prop>

修改为

<prop key="hibernate.dialect"> org.hibernate.dialect.MySQL5Dialect</prop>

OK,问题解决。
附:项目由oracle数据库改为mysql数据库的几个需要更改的地方
①jdbc.properties数据库配置文件

jdbc.url=jdbc\:oracle\:thin\:@127.0.0.1\:1521\:orcl
jdbc.driver=oracle.jdbc.driver.OracleDriver

修改为

jdbc.url=jdbc:mysql://localhost:3306/pcom
jdbc.driver=org.gjt.mm.mysql.Driver

这里需要注意的是数据库方言地址需要根据项目中导入的jar包来寻找,不用多说吧
我这里用的是mysql-connector-java-5.0.5.jar
oracle用的是ojdbc14.jar
②applicationContext.xml配置文件中sessionFactory

<prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>

更改为

<prop key="hibernate.dialect"> org.hibernate.dialect.MySQL5Dialect</prop>

③项目中所有实体类的主键注解

@Id
@SequenceGenerator(name="user_info_seq",sequenceName="user_info_seq",initialValue=1,allocationSize=1)
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="user_info_seq")

改为

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)