gpt4 book ai didi

java - 不将数据保存到数据库中。 Hibernate和Spring的连接

转载 作者:太空宇宙 更新时间:2023-11-04 14:24:49 25 4
gpt4 key购买 nike

我使用以下设置将数据库与 hibernate 连接到我的应用程序:

hibernateContext.xml

    <bean id="hibernateTemplate" class="org.springframework.orm.hibernate4.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory" />
</bean>

<bean id="hibernateUserDao" class="org.springframework.web.basepackage.HibernateUserDao">
<property name="hibernateTemplate" ref="hibernateTemplate" />
</bean>

这是 hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/fullproject</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">admin</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.show_sql">true</property>
<mapping resource="user.hbm.xml" />
</session-factory>
</hibernate-configuration>

这是 user.hbm.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="org.springframework.web.basepackage.User" table="users">
<id name="id" column="id">
<generator class="native" />
</id>
<property name="login" column="login"/>
<property name="password" column="password" />
<property name="email" column="email" />
</class>
</hibernate-mapping>

这是我的用户实体

public class User {

private int id;
private String login;
private String password;
private String email;

public User(){

}

public User(String login, String password, String email){
this.login = login;
this.password = password;
this.email = email;
}

public int getId(){
return id;
}
public String getLogin(){
return login;
}
public String getPassword(){
return password;
}
public String getEmail(){
return email;
}

public void setId(int id){
this.id = id;
}
public void setLogin(String login){
this.login = login;
}
public void setPassword(String password){
this.password = password;
}
public void setEmail(String email){
this.email = email;
}
}

当我尝试以这种方式保存数据库“hibernateTemplate.save(user)”时,我在控制台中捕获了这一行“hibernate :插入用户(登录名、密码、电子邮件)值(?、?、?)”并且更改不会保存到数据库中。我尝试在 user.hbn.xml 中将生成器类更改为“增量”,因为我在数据库表中的 id 有自动增量参数,但它不起作用。

最佳答案

这听起来像是您的事务在更新后没有提交。当您调用 HibernateTemplate.update() 时,它只会更新您的持久性,但实际上并不提交这些更改。请记住在继续之前始终完成您的交易并保存它。

以下是一些有关 hibernate session 和事务的资源,可能会帮助您解决当前的问题 12

关于java - 不将数据保存到数据库中。 Hibernate和Spring的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26789798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com