hibernate向数据库发插入语句为什么在数据库中没有相应数据?

kevinxiang 2009-02-26 11:38:51
我用JUNIT测试的 大家帮忙看下 谢谢

控制面板显示了已经向数据库插入了数据 但是为什么在数据库中没有? 我用的是mysql
11:19:15,578 INFO SchemaUpdate:115 - Running hbm2ddl schema update
11:19:15,578 INFO SchemaUpdate:126 - fetching database metadata
11:19:15,578 INFO SchemaUpdate:138 - updating schema
11:19:15,750 INFO TableMetadata:39 - table found: oa.t_orgnization
11:19:15,750 INFO TableMetadata:40 - columns: [sn, description, pid, name, id]
11:19:15,750 INFO TableMetadata:42 - foreign keys: [fkaba6bf8f41dfcad8, fk189de7cfc5331271]
11:19:15,750 INFO TableMetadata:43 - indexes: [primary, fkaba6bf8f41dfcad8, fk189de7cfc5331271]
11:19:15,796 INFO TableMetadata:39 - table found: oa.t_person
11:19:15,796 INFO TableMetadata:40 - columns: [phone, sex, org, description, address, name, duty, id]
11:19:15,796 INFO TableMetadata:42 - foreign keys: [fk459b3dc041dfc831, fk785bed80c5330fca]
11:19:15,796 INFO TableMetadata:43 - indexes: [primary, fk459b3dc041dfc831, fk785bed80c5330fca]
11:19:15,796 INFO SchemaUpdate:160 - schema update complete
Hibernate: insert into t_orgnization (name, sn, description, pid) values (?, ?, ?, ?)

junit测试用例

package test;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;


import com.oa.manger.implement.orgMgrImpl;
import com.oa.model.Orgnization;

import junit.framework.TestCase;

public class orgMgrTest extends TestCase {

private static BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");

public void testAddOrg() {
orgMgrImpl orgManager = (orgMgrImpl)factory.getBean("orgMgr");
Orgnization org = new Orgnization();
org.setName("测试机构");
org.setDescription("kkkkk");

orgManager.addOrg(org, 0);
}

}


表映射
[code=XAML]<hibernate-mapping>
<class table="t_orgnization" name="com.oa.model.Orgnization">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<property name="sn"/>
<property name="description"/>
<many-to-one column="pid" name="parent"/>
<set name="children" inverse="true" lazy="extra">
<key column="pid"/>
<one-to-many class="com.oa.model.Orgnization"/>
</set>

</class>
</hibernate-mapping>

spring配置
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>


</bean>

<bean id="orgMgr" class="com.oa.manger.implement.orgMgrImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>




</beans>




<hibernate-configuration>

<session-factory>
<property name="connection.username">root</property>
<property name="connection.url">jdbc:mysql://localhost:3306/oa</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="myeclipse.connection.profile">jdbc</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">update</property>
<mapping resource="com/oa/model/Orgnization.hbm.xml"/>
<mapping resource="com/oa/model/Person.hbm.xml"/>

</session-factory>

</hibernate-configuration>


web-xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>

<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value>
</context-param>

<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<filter>
<filter-name>Spring character encoding filter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Spring character encoding filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>



</web-app>


[/code]



...全文
424 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
greatqiao 2009-03-08
  • 打赏
  • 举报
回复
没提交事物。
hjgzy520 2009-03-06
  • 打赏
  • 举报
回复
Transaction tran = this.session.beginTransaction();
//要处理的代码
commit();
hjgzy520 2009-03-06
  • 打赏
  • 举报
回复
Transaction transaction = session.beginTransaction();
//要处理的代码
commit();
moonshowder 2009-03-06
  • 打赏
  • 举报
回复
手工COMMIT试下~估计是这问题
dcaly 2009-03-04
  • 打赏
  • 举报
回复
事务问题
  • 打赏
  • 举报
回复
hibernate向数据库发插入语句为什么在数据库中没有相应数据?

最常见的这种错误就是你没有事务提交

你使用Transaction tran = this.session.beginTransaction();
最后再commit();提交就可以了


你试试
Arc365 2009-03-02
  • 打赏
  • 举报
回复
估计没有commit,也没有看到你有没有设置手动提交,楼主再检查一下
小强提包包 2009-03-01
  • 打赏
  • 举报
回复
Hibernate毕竟是一个框架,有时候可能会出错的。
Hibernate有很多特性,不知道是不是因为这些的错误,比如Hibernate的save和saveAndUpdate方法,都是保存,但是也有区别,内部的区别就是对象是否是从别的Session中取得,如果是的话,再保存需要调用saveAndUpdate方法。我觉得这个问题肯定是由于一些疏忽,LZ应该努力找找,用DEBUG也很好,一般来说,如果正常的写普遍的代码,不应该有这样的错误
huangan0301 2009-03-01
  • 打赏
  • 举报
回复
没报错但是数据库中没有是吗?真神奇啊~~~没遇到过这样的问题~~~~~~~~~~~~~~~~~~~~~·
kevinxiang 2009-02-26
  • 打赏
  • 举报
回复


接口实现类
package com.oa.manger.implement;

import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.oa.manger.dao.orgMgrDao;
import com.oa.model.Orgnization;
import com.oa.manger.dao.orgMgrDao;

public class orgMgrImpl extends HibernateDaoSupport implements orgMgrDao {

public void addOrg(Orgnization org, int parentId) {

getHibernateTemplate().save(org);

}



}
xql80329 2009-02-26
  • 打赏
  • 举报
回复
commit 没?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧