今天在idea上初步实践了一下hibernate的CRUD操作,出现的一点小错误
- 第一个错误提示:
Error executing DDL via JDBC Statement
原因:hibernate.cfg.xml文件中配置数据库方言不匹配,MySQL这里导入的驱动包是5.1.7的
解决办法:将数据库方言MySQLDialect
改为MySQL5Dialect
或者导入Mysql5.0以前的驱动包
<!--<property name="dialect">org.hibernate.dialect.MySQLDialect</property>-->
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
- 在执行一次插入,一次更新操作时进行了两次事务提交
tx.commit();
然后就报错Transaction not successfully started
原因:
Transaction
代表一次原子操作,一个session
之内可能包含多个Transaction
对象,我这里是因为只定义了一个Transaction
对象实例,不能进行两次commit
操作
解决办法:根据这个session重新获得一个Transaction
实例