不将数据保存到数据库中。 Hibernate和Spring连接
我连接到我的应用程序使用此设置与Hibernate数据库:不将数据保存到数据库中。 Hibernate和Spring连接
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.hbn.xml更改生成器类为“增量”,因为我的数据库表中的ID具有AUTO INCREMENT参数,但它不起作用。
听起来像你的事务更新后没有得到提交。当你调用HibernateTemplate.update()时,它只会更新你的持久化,但实际上并没有提交这些更改。请记住,在继续之前总是先完成交易并保存。
之前,来自hibernate.cfg.xml的设置位于hibernateContext.xml(在帖子的顶部)作为DataSource bean,一切正常。但是当我移动这个设置来分离hibernate.cfg.xml然后我看到这个问题 – user3491167 2014-11-07 07:03:33
当你使用数据源bean时你是否也使用spring hibernateTemplate,或者你刚刚注入会话工厂并创建与Spring会话?你还试过template.getSessionFactory()。getCurrentSession()。getTransaction()。commit()? – 2014-11-10 00:52:29
一些资源,你在看正确的服务器和数据库'本地主机:3306/fullproject'? – gerrytan 2014-11-06 22:12:52
获取插入语句并将其复制到您的SQL控制台中。看看它的行为。你可能有微小的变化/差异,阻止实际提交到数据库中。 – Aeseir 2014-11-06 22:47:56
服务器和数据库是正确的 – user3491167 2014-11-07 06:56:21