我把hibernate.cfg.xml的配置内容是:
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEhibernate-configurationPUBLIC
"-//Hibernate/HibernateConfigurationDTD3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<session-factory>
<!--第一部分:配置数据库信息-->
<propertyname="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<propertyname="hibernate.connection.url">jdbc:mysql:///hibernate_1?useSSL=false</property>
<propertyname="hibernate.connection.username">root</property>
<propertyname="hibernate.connection.password">123456</property>

<!--第二部分:可选的配置hibernate信息-->
<!--输出底层sql语句-->
<propertyname="hibernate.show_sql">true</property>

<!--输出底层sql语言格式化-->
<propertyname="hibernate.format_sql">true</property>

<!--在使用Update语句时,如果没有表就创建后更新,有表就直接更新.-->
<propertyname="hibernate.hbm2ddl.auto">update</property>

<!--设置数据库的方言-->
<propertyname="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

<!--第三部分,把映射文件放到核心配置文件中,必须要-->
<mappingresource="com/wsw/hibernate/entity/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>

----------------------------------------------------------------------
我的javaBean实体类的User.hbm.xml配置内容是:
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEhibernate-mappingPUBLIC
"-//Hibernate/HibernateMappingDTD3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<classname="com.wsw.hibernate.entity.User"table="t_user">
<idname="uid"column="uid">
<generatorclass="native"></generator>
</id>

<propertyname="username"column="username"></property>
<propertyname="password"column="password"></property>
<propertyname="addres"column="addres"></property>

</class>
</hibernate-mapping>

----------------------------------------------------------------------------
javaBean实体类User类:

packagecom.wsw.hibernate.entity;

/**
*和数据库对应的实体类
*@authorwushaowen
*
*/

publicclassUser{

privateintuid;
privateStringusername;
privateStringpassword;
privateStringaddres;

publicintgetUid(){
returnuid;
}

publicvoidsetUid(intuid){
this.uid=uid;
}

publicStringgetUsername(){
returnusername;
}

publicvoidsetUsername(Stringusername){
this.username=username;
}

publicStringgetPassword(){
returnpassword;
}

publicvoidsetPassword(Stringpassword){
this.password=password;
}

publicStringgetAddres(){
returnaddres;
}

publicvoidsetAddres(Stringaddres){
this.addres=addres;
}

publicUser(intuid,Stringusername,Stringpassword,Stringaddres){
super();
this.uid=uid;
this.username=username;
this.password=password;
this.addres=addres;
}

publicUser(){

}

}
——————————————————————————————————————-
测试类Demo1:

packagecom.wsw.hibernate.test;

importorg.hibernate.Session;
importorg.hibernate.SessionFactory;
importorg.hibernate.Transaction;
importorg.hibernate.cfg.Configuration;
importorg.junit.Test;

importcom.wsw.hibernate.entity.User;

publicclassDemo1{

@Test
publicvoidtest1(){

Configurationcfg=newConfiguration();
cfg.configure();

@SuppressWarnings("deprecation")
SessionFactorysessionFactory=cfg.buildSessionFactory();

Sessionsession=sessionFactory.openSession();

Transactiontx=session.beginTransaction();

//实现修改
Useruser2=(User)session.get(User.class,1);
user2.setPassword("2211");
session.delete(user2);

//实现添加
// Useruser3=newUser();
// user3.setAddres("aaa");
// user3.setPassword("123");
// user3.setUsername("wuwuwu");
// session.save(user3);

//tx.rollback();
tx.commit();

session.close();
sessionFactory.close();
}
}

————————————————————————————————-
异常经过多次测试会出现不同的报错;

org.hibernate.exception.GenericJDBCException:couldnotexecutestatement
atorg.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54)
atorg.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126)
atorg.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:112)
atorg.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:211)
atorg.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.executeAndExtract(IdentityGenerator.java:96)
atorg.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:58)
atorg.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3032)
atorg.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3558)
atorg.hibernate.action.internal.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:98)
atorg.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:492)
atorg.hibernate.engine.spi.ActionQueue.addResolvedEntityInsertAction(ActionQueue.java:197)
atorg.hibernate.engine.spi.ActionQueue.addInsertAction(ActionQueue.java:181)
atorg.hibernate.engine.spi.ActionQueue.addAction(ActionQueue.java:216)
atorg.hibernate.event.internal.AbstractSaveEventListener.addInsertAction(AbstractSaveEventListener.java:334)
atorg.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:289)
atorg.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:195)
atorg.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:126)
atorg.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:209)
atorg.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:55)
atorg.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:194)
atorg.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:49)
atorg.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90)
atorg.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:715)
atorg.hibernate.internal.SessionImpl.save(SessionImpl.java:707)
atorg.hibernate.internal.SessionImpl.save(SessionImpl.java:702)
atcom.wsw.hibernate.test.Demo1.test1(Demo1.java:36)
atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)
atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
atjava.lang.reflect.Method.invoke(Method.java:498)
atorg.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
atorg.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
atorg.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
atorg.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
atorg.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
atorg.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
atorg.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
atorg.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
atorg.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
atorg.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
atorg.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
atorg.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
atorg.junit.runners.ParentRunner.run(ParentRunner.java:363)
atorg.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
atorg.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
atorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
atorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
atorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
atorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Causedby:java.sql.SQLException:Field'uid'doesn'thaveadefaultvalue
atcom.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)
atcom.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3970)
atcom.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3906)
atcom.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2524)
atcom.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2677)
atcom.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2549)
atcom.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1861)
atcom.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2073)
atcom.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2009)
atcom.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5098)
atcom.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1994)
atorg.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:208)
...45more


—————————————————————————————————
数据库我自己用JDBC的方法都试了正常使用,还有它不能自动建表添加数据,可以查询修改删除数据(这些数据都是我在数据库上创建好了的才能这样操作),跪求大神能给解决一下,苦逼小白艰苦自学中,但是出现这个问题自己尝试了很多天了,hibernate卡在这了,跪求,跪求,跪求!

5 个解决方案

#1


Causedby:java.sql.SQLException:Field'uid'doesn'thaveadefaultvalue。。。。这个错误应该是主键没有设置自增
把表都删了,使用Hibernate加载配置文件打印sessionFactory重新自动建表。。。。

更多相关文章

  1. python3爬虫爬取豆瓣电影并保存到sql serve数据库
  2. Python SQLITE数据库操作简便易用 (转)
  3. MySQL5.5.22版本安装配置以及基本命令的使用和管理数据库备份与
  4. QT5.3连接mysql数据库
  5. (SqlServer)分离所有用户数据库
  6. Spark RDD算子/SparkSQL分别实现对电影数据集的简单数据分析
  7. 数据库对象的创建和管理
  8. mysql通过复制data文件夹进行数据迁移
  9. 重复的数据只取一条,请问SQL语句怎么写

随机推荐

  1. Android(安卓)lunch分析以及产品分支构建
  2. Android中对menu、home、back键的监听
  3. Android(安卓)Studio 打包成jar文件并混
  4. 【Android】19.1 SharedPreferences类
  5. H5移动端IOS/Android兼容性总结,持续更新
  6. android textview时实显示checkbox选中的
  7. Android小知识点收集
  8. htm5 页面跳转在android出现的奇葩问题
  9. 自动化测试MonkeyRunner
  10. 获取当前应用的版本号和当前android系统