Java 如何在hibernate框架中插入新行?
我刚开始冬眠。通过观看在线教程进行练习。我的问题是,我调用了Java 如何在hibernate框架中插入新行?,java,mysql,sql,hibernate,Java,Mysql,Sql,Hibernate,我刚开始冬眠。通过观看在线教程进行练习。我的问题是,我调用了session.save(obj)方法,它将数据保存在表中,但会擦除以前的数据,所以每当我用程序执行insert时,它都会擦除以前的行并插入新值,这样我就只有一行了。如何克服这个问题,这是我的xml映射文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping D
session.save(obj)
方法,它将数据保存在表中,但会擦除以前的数据,所以每当我用程序执行insert时,它都会擦除以前的行并插入新值,这样我就只有一行了。如何克服这个问题,这是我的xml映射文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.hibernate.bean.User" table="USER">
<id column="ID" name="id" type="java.lang.Integer" >
<generator class="increment" />
</id>
<property column="USER_NAME" name="userName" type="java.lang.String" />
<property column="PASSWORD" name="password1" type="string" />
<property column="EMAIL" name="email" type="java.lang.String" />
<property column="PHONE" name="phone" type="java.lang.String" />
<property column="CITY" name="city" type="java.lang.String" />
</class>
</hibernate-mapping>
我的hibernate映射文件如下所示
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibernatedb</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">create</property>
<!-- Names the annotated entity class -->
<mapping resource="com/hibernate/bean/user.hbm.xml"/>
</session-factory>
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/hibernatedb
根
根
1.
org.hibernate.dialogue.mysqldialogue
org.hibernate.cache.NoCacheProvider
真的
创造
我想一行一行地插入,我如何才能做到这一点?有人能帮我吗。
<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">create</property>
创造
这会在启动时重新创建数据库。行
create
告诉Hibernate在读取配置文件时创建所需的数据库表和列,因此基本上在每次应用程序启动时都是这样。要使您的数据库表不必每次都重新创建,只需删除这一行,如果您打算在开发过程中频繁更改所需的表和列,则最好删除这一行,将create
替换为update
,并且Hibernate仅在您更改实体但不重新创建表时添加新列,因此,您插入的行将被保留。显示您的hibernate配置文件。@Adi检查我更新的问题。创建是罪魁祸首,删除此文件谢谢您。它解决了我的pbmso怎么办,我需要删除它吗?是的,正如上面@Adi建议的那样。
<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">create</property>