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)
上一篇: 有关于/home出现100%被占用 与 vnc的关系
下一篇: OpenCV 常用的 API