public void save(SUserPref transientInstance) {
log.debug("saving SUserPref instance");
try {
getHibernateTemplate().save(transientInstance);
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}
log.debug("saving SUserPref instance");
try {
getHibernateTemplate().save(transientInstance);
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}
解决方案 »
- 怎么在模态窗口(showModalDialog)调用打印预览
- EJB3.0如何执行INSERT SQL语句
- 有关div的问题
- hibernate+spring 插入数据 高手请进
- http不能打开ftp:<a href="ftp://192.168.1.1">ftp</ftp>???请指点
- 哪里有JSP的一些类的函数的帮助文件 ,类似于MSDN那中东西?
- 关于向数据库插入记录的问题?
- Jbuilder8存盤的問題????
- 大家接分拉:一个关于web应用程序的发布问题!请进来看看吧,答者有分!
- 初学, Hibernate, 报错,找不到域namingStrategy
- (面试题)一个数据库方面的题目
- jquery的append函数在firefox里面页面正常刷新,ie就是不刷新页面
如果自己写session,然后调用session.save就加上Transaction是可以查到数据.
我就不知道为什么这个没有反应? 有没有用这个成功的?
.................
t.commit();
要改当中的设置
public void save(SUserPref transientInstance) {
log.debug("saving SUserPref instance");
try {
Transaction action = session.beginTransaction();
getHibernateTemplate().save(transientInstance);
getHibernateTemplate().flush();
action.commit();
System.out.println("save successful"+transientInstance);
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}上面代码执行后,数据库还是没有反应,console上面打印出insert into语句.
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
</bean>
<bean id="SUserPrefDAO"
class="com.seagate.calib.bean.SUserPrefDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="SUdaDAO" class="com.seagate.calib.bean.SUdaDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean></beans>hibernate.cfg.xml 如下:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration> <session-factory>
<property name="connection.username">par</property>
<property name="connection.url">
jdbc:oracle:thin:@101.112.10.216:1521:prs
</property>
<property name="dialect">
org.hibernate.dialect.Oracle9Dialect
</property>
<property name="myeclipse.connection.profile">
Paris_stg
</property>
<property name="connection.password">pwpa</property>
<property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
<property name="show_sql">true</property>
<mapping resource="com/seagate/calib/bean/SUserPref.hbm.xml" />
<mapping resource="com/seagate/calib/bean/SUda.hbm.xml" />
</session-factory></hibernate-configuration>
SUserPref.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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.seagate.calib.bean.SUserPref" table="S_USER_PREF" schema="PARIS">
<composite-id name="id" class="com.seagate.calib.bean.SUserPrefId">
<key-property name="site" type="java.lang.String">
<column name="SITE" length="2" />
</key-property>
<key-property name="facility" type="java.lang.String">
<column name="FACILITY" length="2" />
</key-property>
<key-property name="userId" type="java.lang.String">
<column name="USER_ID" length="8" />
</key-property>
</composite-id>
<property name="pcHomePage" type="java.lang.String">
<column name="PC_HOME_PAGE" length="40" not-null="true" />
</property>
</class>
</hibernate-mapping>
getHibernateTemplate()中的session根本不起作用。看看spring的声明式事务管理吧!
你事务添加在那啊!?
spring 配置文件里面加上:
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<!-- 配置数据源连接的数据库URL -->
<property name="jdbcUrl"
value="jdbc:mysql://localhost:3306/blog" />
<!-- 配置连接数据源所用的驱动 -->
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<!-- 配置连接数据源所用的用户名 -->
<property name="user" value="root" />
<!-- 配置连接数据源所用的密码 -->
<property name="password" value="123456" />
<!-- 配置连接池最大连接数 -->
<property name="maxPoolSize" value="40" />
<!-- 配置连接数池最小连接数 -->
<property name="minPoolSize" value="1" />
<!-- 配置连接数池初始连接数 -->
<property name="initialPoolSize" value="1" />
<!-- 配置连接数池里连接的最大空闲时间 -->
<property name="maxIdleTime" value="20" />
</bean> <!-- 定义了hibernate的sessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!-- 指定sessionFactory所需的数据源 -->
<property name="dataSource" ref="dataSource" />
<!-- 添加系统所使用的映射文件 -->
<property name="mappingResources">
<list>
<value>com/model/Blog.hbm.xml</value>
<value>com/model/Comment.hbm.xml</value>
</list>
</property>
<!-- 指定hibernate的属性 -->
<property name="hibernateProperties">
<props>
<!-- 连接数据库所用的方言 -->
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<!-- 是否显示hibernate数据库访问中的sql语句 -->
<prop key="show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.jdbc.batch_size">20</prop>
</props>
</property>
<!--
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
-->
</bean> <!-- 配置Blog Dao组件 -->
<bean id="blogDao" class="com.dao.impl.BlogDaoHibernate">
<!-- 依赖注入sessionFactory引用 -->
<property name="sessionFactory" ref="sessionFactory" />
<!-- 设置每页显示的记录数 -->
<property name="pageSize" value="3" />
</bean> <!-- 配置Comment Dao组件 -->
<bean id="commentDao" class="com.dao.impl.CommentDaoHibernate">
<!-- 依赖注入sessionFactory引用 -->
<property name="sessionFactory" ref="sessionFactory" />
<!-- 设置每页显示的记录数 -->
<property name="pageSize" value="3" />
</bean> <!-- 配置Blog业务逻辑组件 -->
<bean id="blogManager"
class="com.tzb.service.impl.BlogManagerImpl">
<!-- 依赖注入业务逻辑组件所必需的DAO组件 -->
<property name="blogDao" ref="blogDao" />
<property name="commentDao" ref="commentDao" />
</bean> <!-- 配置事务管理器 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<!-- 为事务管理器依赖注入sessionFactory实例 -->
<property name="sessionFactory" ref="sessionFactory" />
</bean> <!-- 配置事务拦截器 -->
<bean id="transactionInteceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<!-- 事务拦截器bean需要依赖注入一个事务管理器 -->
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<!-- 下面定义事务传播属性 -->
<props>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean> <!-- 定义BeanNameAutoProxyCreator -->
<bean
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<!-- 指定满足那些bean name的bean自动生成业务代理 -->
<property name="beanNames">
<!-- 下面是所有需要自动创建事务代理的bean -->
<list>
<value>blogManager</value>
</list>
</property>
<!-- 下面定义BeanNameAutoProxyCreator所需的事务拦截器 -->
<property name="interceptorNames">
<list>
<value>transactionInteceptor</value>
</list>
</property>
</bean>
<!-- 配置TestStruts2 Web Action -->
<bean id="ts2" class="com.tzb.web.action.TestStruts2">
<!-- 依赖注入业务逻辑组件所必需的DAO组件 -->
<property name="blogManager" ref="blogManager" />
</bean>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <!-- 定义了hibernate的sessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
</bean> <!-- 配置Blog Dao组件 -->
<bean id="blogDao" class="com.dao.impl.BlogDaoHibernate">
<!-- 依赖注入sessionFactory引用 -->
<property name="sessionFactory" ref="sessionFactory" />
<!-- 设置每页显示的记录数 -->
<property name="pageSize" value="3" />
</bean> <!-- 配置Comment Dao组件 -->
<bean id="commentDao" class="com.dao.impl.CommentDaoHibernate">
<!-- 依赖注入sessionFactory引用 -->
<property name="sessionFactory" ref="sessionFactory" />
<!-- 设置每页显示的记录数 -->
<property name="pageSize" value="3" />
</bean> <!-- 配置Blog业务逻辑组件 -->
<bean id="blogManager"
class="com.tzb.service.impl.BlogManagerImpl">
<!-- 依赖注入业务逻辑组件所必需的DAO组件 -->
<property name="blogDao" ref="blogDao" />
<property name="commentDao" ref="commentDao" />
</bean> <!-- 配置事务管理器 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<!-- 为事务管理器依赖注入sessionFactory实例 -->
<property name="sessionFactory" ref="sessionFactory" />
</bean> <!-- 配置事务拦截器 -->
<bean id="transactionInteceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<!-- 事务拦截器bean需要依赖注入一个事务管理器 -->
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<!-- 下面定义事务传播属性 -->
<props>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean> <!-- 定义BeanNameAutoProxyCreator -->
<bean
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<!-- 指定满足那些bean name的bean自动生成业务代理 -->
<property name="beanNames">
<!-- 下面是所有需要自动创建事务代理的bean -->
<list>
<value>blogManager</value>
</list>
</property>
<!-- 下面定义BeanNameAutoProxyCreator所需的事务拦截器 -->
<property name="interceptorNames">
<list>
<value>transactionInteceptor</value>
</list>
</property>
</bean>
<!-- 配置TestStruts2 Web Action -->
<bean id="ts2" class="com.tzb.web.action.TestStruts2">
<!-- 依赖注入业务逻辑组件所必需的DAO组件 -->
<property name="blogManager" ref="blogManager" />
</bean>
</beans>
2.就算配了,你没往sessionFactory的bean放。
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/mydb"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean> <bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
试试还有问题吗?