您的位置:程序门 -> java -> 框架、开源



hibernate 入门碰到麻烦,帮忙看看~


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


hibernate 入门碰到麻烦,帮忙看看~
发表于:2008-01-19 18:09:56 楼主
console:

hibernate:   select   student0_.id   as   id1_,   student0_.name   as   name1_,   student0_.sex   as   sex1_,   student0_.age   as   age1_,   student0_.password   as   password1_   from   tomcatusers.student   student0_
hibernate:   select   max(id)   from   student
log4j:warn   no   appenders   could   be   found   for   logger   (dao.studentdao).
log4j:warn   please   initialize   the   log4j   system   properly.
exception   in   thread   "main"   org.hibernate.exception.genericjdbcexception:   could   not   fetch   initial   value   for   increment   generator
at   org.hibernate.exception.sqlstateconverter.handlednonspecificexception(sqlstateconverter.java:103)
at   org.hibernate.exception.sqlstateconverter.convert(sqlstateconverter.java:91)
at   org.hibernate.exception.jdbcexceptionhelper.convert(jdbcexceptionhelper.java:43)
at   org.hibernate.id.incrementgenerator.getnext(incrementgenerator.java:107)
at   org.hibernate.id.incrementgenerator.generate(incrementgenerator.java:44)
at   org.hibernate.event.def.abstractsaveeventlistener.savewithgeneratedid(abstractsaveeventlistener.java:91)
at   org.hibernate.event.def.defaultsaveorupdateeventlistener.savewithgeneratedorrequestedid(defaultsaveorupdateeventlistener.java:186)
at   org.hibernate.event.def.defaultsaveeventlistener.savewithgeneratedorrequestedid(defaultsaveeventlistener.java:33)
at   org.hibernate.event.def.defaultsaveorupdateeventlistener.entityistransient(defaultsaveorupdateeventlistener.java:175)
at   org.hibernate.event.def.defaultsaveeventlistener.performsaveorupdate(defaultsaveeventlistener.java:27)
at   org.hibernate.event.def.defaultsaveorupdateeventlistener.onsaveorupdate(defaultsaveorupdateeventlistener.java:70)
at   org.hibernate.impl.sessionimpl.firesave(sessionimpl.java:530)
at   org.hibernate.impl.sessionimpl.save(sessionimpl.java:518)
at   org.hibernate.impl.sessionimpl.save(sessionimpl.java:514)
at   dao.studentdao.save(studentdao.java:33)
at   test.daotest.main(daotest.java:28)
caused   by:   java.sql.sqlexception:   no   database   selected
at   com.mysql.jdbc.sqlerror.createsqlexception(sqlerror.java:1056)
at   com.mysql.jdbc.sqlerror.createsqlexception(sqlerror.java:957)
at   com.mysql.jdbc.mysqlio.checkerrorpacket(mysqlio.java:3376)
at   com.mysql.jdbc.mysqlio.checkerrorpacket(mysqlio.java:3308)
at   com.mysql.jdbc.mysqlio.sendcommand(mysqlio.java:1837)
at   com.mysql.jdbc.mysqlio.sqlquerydirect(mysqlio.java:1961)
at   com.mysql.jdbc.connectionimpl.EXECsql(connectionimpl.java:2543)
at   com.mysql.jdbc.preparedstatement.EXECuteinternal(preparedstatement.java:1737)
at   com.mysql.jdbc.preparedstatement.EXECutequery(preparedstatement.java:1888)
at   org.hibernate.id.incrementgenerator.getnext(incrementgenerator.java:85)
...   12   more


hbm.xml:
xml code
<hibernate-mapping> <class name="dao.student" table="student" catalog="tomcatusers"> <id name="id" type="java.lang.integer"> <column name="id" /> <generator class="increment" /> </id> <property name="name" type="java.lang.string"> <column name="name" length="16" /> </property> <property name="sex" type="java.lang.byte"> <column name="sex" /> </property> <property name="age" type="java.lang.integer"> <column name="age"> <comment></comment> </column> </property> <property name="password" type="java.lang.string"> <column name="password" length="16" /> </property> </class> </hibernate-mapping>



code:
java code
studentdao dao = new studentdao (); list<student> list = dao.findall(); transaction ts = dao.getsession().gettransaction(); student student = new student(); student.setage(26); student.setname( "testname"); student.setpassword( "1234"); student.setsex(byte.valueof("1")); dao.save(student); ts.commit(); dao.getsession().close();
发表于:2008-01-19 18:30:441楼 得分:0
少个log4j.propertie   的文件,随便找个加到工程里去。
发表于:2008-01-19 18:48:032楼 得分:0
log   只是警告,错误不是这个、
发表于:2008-01-19 18:54:263楼 得分:0
<generator   class="native"   />
发表于:2008-01-19 18:55:034楼 得分:0
数据库设计的时候必须把这个字段设成自增的。
发表于:2008-01-20 01:24:235楼 得分:0
好好了解一下hibernate的主键生成方式。
发表于:2008-01-20 06:13:146楼 得分:0
caused       by:       java.sql.sqlexception:       no       database       selected  

这句话才是关键

建议你更新mysql的版本和jdbc的版本。这个是某个版本的bug

发表于:2008-01-20 18:30:167楼 得分:0
关注


快速检索

最新资讯
热门点击