SSH 整合后 Hibernate save方法没有发出insert语句, 只有select xx.nextval ?

时间:2022-06-12 14:26:49

SSH 整合后 Hibernate save方法没有发出insert语句, 只有select xx.nextval ?
3个正在一起 怎么这么怪异啊。
自己弄了很多次都不行, 最后干脆copy同学的,还是不行, 他的就OK 。

applicationContext.xml====================================================

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

<bean id="userDAO" class="dao.impl.UserDAO">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>

<bean id="UserAction" class="actions.UserAction">
<property name="userDAO" ref="userDAO"></property>
</bean>

UserDAO==============================================================
public class UserDAO implements GeneralDAO {

private SessionFactory sessionFactory;
public SessionFactory getSessionFactory() {
return sessionFactory;
}
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public void addUser(Object obj) {
this.sessionFactory.openSession().save(obj); 
                    // 事物好像都交给Spring管理了 这里不用自己再写提交吧? 更何况最大的问题是没有insert语句输出?
System.out.println("----ok----");
}
}

GenerateDAO=============================================
public interface GeneralDAO {

public void addUser(Object obj);
}

UserAction=============================================

public String addUser(){
System.out.println(user.getUsername()); //取值都很正常
System.out.println(user.getPassword());
userDAO.addUser(user); 
return SUCCESS;
}

//hibernate 设置show_sql 发现 只有一条语句  select hibernate_sequence.nextval from dual
insert跑哪里去了啊?

是hibernte.cfg.xml的问题?(老师教的SSH配好后还有hibernate.cfg.xml? 我看到别人的SSH好像没有hibernate.cfg.xml)

Hibernate中的配置=======================================================
<hibernate-configuration>

<session-factory>
<property name="dialect">
org.hibernate.dialect.Oracle9Dialect
</property>
<property name="connection.url">
jdbc:oracle:thin:@localhost:1521:orcl
</property>
<property name="connection.username">user1</property>
<property name="connection.password">a123</property>
<property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
<property name="myeclipse.connection.profile">orcl</property>
<property name="show_sql">true</property>
<mapping resource="pojos/TbUser.hbm.xml" />

</session-factory>

还能是哪里有错误啊?? 找了好久, 网上搜搜, 我这个问题好像很弱智啊,似乎没人是像我这样的问题呢。

5 个解决方案

#1


人品问题吧!呵呵

#2


UserDAO extends HibernateDaoSupport 实现这个类
public  boolean add(Object o){
try{
    super.getHibernateTemplate().save(o);
    return true;
}catch(Exception ex){
ex.printStackTrace();
    return false;
}
}
这样试试看!
至于 hibernate.cfg.xml 这个文件 可以有也可以没有 如果没的话 所有信息写到spring配置文件里
有的话 在spring里引入这个文件
show_sql 上面再加一句
<property name="connection.autocommit">true</property>

#3


研究配置文件

#4


我发现了, 我的事务管理配置有问题

#5


我忘记加上这句话了

<tx:method name="add*" propagation="REQUIRED" />

#1


人品问题吧!呵呵

#2


UserDAO extends HibernateDaoSupport 实现这个类
public  boolean add(Object o){
try{
    super.getHibernateTemplate().save(o);
    return true;
}catch(Exception ex){
ex.printStackTrace();
    return false;
}
}
这样试试看!
至于 hibernate.cfg.xml 这个文件 可以有也可以没有 如果没的话 所有信息写到spring配置文件里
有的话 在spring里引入这个文件
show_sql 上面再加一句
<property name="connection.autocommit">true</property>

#3


研究配置文件

#4


我发现了, 我的事务管理配置有问题

#5


我忘记加上这句话了

<tx:method name="add*" propagation="REQUIRED" />