有关于hibernate的配置问题(1)

今天鄙人照着马士兵老师的hibernate视频配置相应的hibernate的开发环境,但是在测试的时候虽然通过了,但是报了两个错误:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown table 'system_sequences' in information_schema
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.Util.getInstance(Util.java:381)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1951)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2548)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2477)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1422)
at org.hibernate.tool.hbm2ddl.DatabaseMetadata.initSequences(DatabaseMetadata.java:151)
at org.hibernate.tool.hbm2ddl.DatabaseMetadata.<init>(DatabaseMetadata.java:69)
at org.hibernate.tool.hbm2ddl.DatabaseMetadata.<init>(DatabaseMetadata.java:62)
at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:170)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:373)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1910)
at StudentTest1.main(StudentTest1.java:12)
1946 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaUpdate - could not complete schema update
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown table 'system_sequences' in information_schema
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.Util.getInstance(Util.java:381)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1951)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2548)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2477)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1422)
at org.hibernate.tool.hbm2ddl.DatabaseMetadata.initSequences(DatabaseMetadata.java:151)
at org.hibernate.tool.hbm2ddl.DatabaseMetadata.<init>(DatabaseMetadata.java:69)
at org.hibernate.tool.hbm2ddl.DatabaseMetadata.<init>(DatabaseMetadata.java:62)
at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:170)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:373)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1910)
at StudentTest1.main(StudentTest1.java:12)
Hibernate: insert into Student (name, age, id) values (?, ?, ?)
2093 [main] INFO org.hibernate.impl.SessionFactoryImpl - closing
2093 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - cleaning up connection pool: jdbc:mysql://localhost:3310/hibernate?useUnicode=true&characterEncoding=gbk

字面意思应该是hibernate不知道的schema里system_sequences表. 

于是检查hibernate配置文件hibernate.cfg.xml ,通过仔细阅读hibernate的开发文档,我发现dialect方言用错了,忘记改过来 

org.hibernate.dialect.HSQLDialect 

我用的是mysql5,应该用这个 

org.hibernate.dialect.MySQLInnoDBDialect 


修改后不再报Unknown table ‘system_sequences’ in information_schema错误了。 


hibernate所有的方言类都放在org.hibernate.dialect包中,从hibernate3.jar中可以找到这些类。 他们均是 org.hibernate.dialect.Dialect 的子类。以下是修改之后的运行结果:

 98 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final
106 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.6.0.Beta3
107 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found
111 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist
115 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
172 [main] INFO org.hibernate.cfg.Configuration - configuring from resource: /hibernate.cfg.xml
172 [main] INFO org.hibernate.cfg.Configuration - Configuration resource: /hibernate.cfg.xml
248 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from resource : cn/wanghao/hibernate_01_0000/model/Student.hbm.xml
307 [main] INFO org.hibernate.cfg.Configuration - Configured SessionFactory: null
367 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: cn.wanghao.hibernate_01_0000.model.Student -> Student
387 [main] INFO org.hibernate.cfg.Configuration - Hibernate Validator not found: ignoring
391 [main] INFO org.hibernate.cfg.search.HibernateSearchEventListenerRegister - Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.
398 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Using Hibernate built-in connection pool (not for production use!)
398 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Hibernate connection pool size: 1
398 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - autocommit mode: false
404 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://localhost:3310/hibernate?useUnicode=true&characterEncoding=gb2312
404 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=root, password=****}
639 [main] INFO org.hibernate.cfg.SettingsFactory - Database ->
       name : MySQL
    version : 5.0.96-community-nt
      major : 5
      minor : 0
639 [main] INFO org.hibernate.cfg.SettingsFactory - Driver ->
       name : MySQL-AB JDBC Driver
    version : mysql-connector-java-5.1.7 ( Revision: ${svn.Revision} )
      major : 5
      minor : 1
659 [main] INFO org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.MySQLInnoDBDialect
669 [main] INFO org.hibernate.engine.jdbc.JdbcSupportLoader - Disabling contextual LOB creation as JDBC driver reported JDBC version [3] less than 4
670 [main] INFO org.hibernate.transaction.TransactionFactoryFactory - Using default transaction strategy (direct JDBC transactions)
671 [main] INFO org.hibernate.transaction.TransactionManagerLookupFactory - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
671 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic flush during beforeCompletion(): disabled
671 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic session close at end of transaction: disabled
671 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch size: 15
671 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch updates for versioned data: disabled
672 [main] INFO org.hibernate.cfg.SettingsFactory - Scrollable result sets: enabled
672 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC3 getGeneratedKeys(): enabled
672 [main] INFO org.hibernate.cfg.SettingsFactory - Connection release mode: auto
672 [main] INFO org.hibernate.cfg.SettingsFactory - Maximum outer join fetch depth: 2
672 [main] INFO org.hibernate.cfg.SettingsFactory - Default batch fetch size: 1
672 [main] INFO org.hibernate.cfg.SettingsFactory - Generate SQL with comments: disabled
672 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL updates by primary key: disabled
672 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL inserts for batching: disabled
672 [main] INFO org.hibernate.cfg.SettingsFactory - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
673 [main] INFO org.hibernate.hql.ast.ASTQueryTranslatorFactory - Using ASTQueryTranslatorFactory
673 [main] INFO org.hibernate.cfg.SettingsFactory - Query language substitutions: {}
673 [main] INFO org.hibernate.cfg.SettingsFactory - JPA-QL strict compliance: disabled
673 [main] INFO org.hibernate.cfg.SettingsFactory - Second-level cache: enabled
673 [main] INFO org.hibernate.cfg.SettingsFactory - Query cache: disabled
674 [main] INFO org.hibernate.cfg.SettingsFactory - Cache region factory : org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge
677 [main] INFO org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge - Cache provider: org.hibernate.cache.NoCacheProvider
677 [main] INFO org.hibernate.cfg.SettingsFactory - Optimize cache for minimal puts: disabled
677 [main] INFO org.hibernate.cfg.SettingsFactory - Structured second-level cache entries: disabled
680 [main] INFO org.hibernate.cfg.SettingsFactory - Echoing all SQL to stdout
680 [main] INFO org.hibernate.cfg.SettingsFactory - Statistics: disabled
681 [main] INFO org.hibernate.cfg.SettingsFactory - Deleted entity synthetic identifier rollback: disabled
681 [main] INFO org.hibernate.cfg.SettingsFactory - Default entity-mode: pojo
681 [main] INFO org.hibernate.cfg.SettingsFactory - Named query checking : enabled
681 [main] INFO org.hibernate.cfg.SettingsFactory - Check Nullability in Core (should be disabled when Bean Validation is on): enabled
692 [main] WARN org.hibernate.id.UUIDHexGenerator - Using org.hibernate.id.UUIDHexGenerator which does not generate IETF RFC 4122 compliant UUID values; consider using org.hibernate.id.UUIDGenerator instead
703 [main] INFO org.hibernate.impl.SessionFactoryImpl - building session factory
775 [main] INFO org.hibernate.tuple.PojoInstantiator - no default (no-argument) constructor for class: cn.wanghao.hibernate_01_0000.model.Student (class must be instantiated by Interceptor)
880 [main] INFO org.hibernate.impl.SessionFactoryObjectFactory - Not binding factory to JNDI, no JNDI name configured
884 [main] INFO org.hibernate.tool.hbm2ddl.SchemaUpdate - Running hbm2ddl schema update
884 [main] INFO org.hibernate.tool.hbm2ddl.SchemaUpdate - fetching database metadata
886 [main] INFO org.hibernate.tool.hbm2ddl.SchemaUpdate - updating schema
983 [main] INFO org.hibernate.tool.hbm2ddl.TableMetadata - table found: hibernate.student
983 [main] INFO org.hibernate.tool.hbm2ddl.TableMetadata - columns: [id, age, name]
983 [main] INFO org.hibernate.tool.hbm2ddl.TableMetadata - foreign keys: []
983 [main] INFO org.hibernate.tool.hbm2ddl.TableMetadata - indexes: [primary]
983 [main] INFO org.hibernate.tool.hbm2ddl.SchemaUpdate - schema update complete
Hibernate: insert into Student (name, age, id) values (?, ?, ?)
1136 [main] INFO org.hibernate.impl.SessionFactoryImpl - closing
1136 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - cleaning up connection pool: jdbc:mysql://localhost:3310/hibernate?useUnicode=true&characterEncoding=gb2312

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

deywós

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值