Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在hibernate框架中插入新行?_Java_Mysql_Sql_Hibernate - Fatal编程技术网

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>