【发布时间】:2013-04-25 19:00:12
【问题描述】:
我一直在尝试建立一个小的 hibernate/spring MVC 项目。
我已经获得了 Spring .jsp 页面来显示数据库中的数据,但我不知道如何让休眠将对象保存到数据库中。
这是我的(相关)代码:
GroupDAOImpl.java(方法)
@Override
public void saveGroup(Group group){
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
session.save(group);
transaction.commit();
session.close();
}
HelloController.java 方法:
public ModelAndView add(HttpServletRequest request, HttpServletResponse response, Group group) throws Exception {
groupDAO.saveGroup(group);
return new ModelAndView("redirect:list.htm");
}
jsp页面:
<form:form action="add.htm" commandName="group">
<table>
<tr>
<td>group Name :</td>
<td><form:input path="name"/></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Register"></td>
</tr>
</table>
来自服务器的日志:
Hibernate: insert into groups (id, name, shoppingList_id) values (default, ?, ?)
GroupDAOImpl 保存方法中“组”的调试器值:
id = 2
name = "jjjj"
有什么想法吗?非常感谢!
【问题讨论】:
-
据我了解,问题是数据没有保存在数据库中?您的数据源是如何定义的 - 在 Spring 中或者它独立于 Spring。你用的是什么数据库?
-
Group类是什么样的?对象是已经存在还是新实例?它是如何保存在 DAO 中的? -
我用的是derby数据库,数据库是spring配置的
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="org.apache.derby.jdbc.ClientDriver"/> <property name="url" value="jdbc:derby://localhost:1527/hiber-db"/> <property name="username" value="oe"/> <property name="password" value="oe"/> </bean>
标签: spring hibernate model-view-controller