model类:
org.appfuse.model.Newstype.javapackage org.appfuse.model;public class Newstype extends BaseObject{
/**
*
*/
private static final long serialVersionUID = 3771464295740918883L;
private Long id;
private Long parentid;
private String typename;
private Long typesenque;
private String typememo;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getParentid() {
return parentid;
}
public void setParentid(Long parentid) {
this.parentid = parentid;
}
public String getTypememo() {
return typememo;
}
public void setTypememo(String typememo) {
this.typememo = typememo;
}
public String getTypename() {
return typename;
}
public void setTypename(String typename) {
this.typename = typename;
}
public Long getTypesenque() {
return typesenque;
}
public void setTypesenque(Long typesenque) {
this.typesenque = typesenque;
}}hibernate所需表映射文件
org.appfuse.model目录下
Newstype.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.appfuse.model.Newstype" table="newstype">
<id name="id" column="id" unsaved-value="null">
<generator class="increment"/>
</id>
<property name="parentid" column="parenttypeid" not-null="true"/>
<property name="typename" column="typename" not-null="true"/>
<property name="typesenque" column="typesenque" not-null="true"/>
<property name="typememo" column="typememo" not-null="true"/>
</class>
</hibernate-mapping>数据库操作类及接口package org.appfuse.dao;
import org.appfuse.model.Newstype;
import java.util.List;
public interface NewstypeDAO extends DAO {
public List getNewstypes();
public Newstype getNewstype(Long typeId);
public void saveNewstype(Newstype newstype);
public void removeNewstype(Long typeId);
}接口实现类:
package org.appfuse.dao.hibernate;
import org.appfuse.dao.NewstypeDAO;
import org.appfuse.model.Newstype;
import org.springframework.orm.ObjectRetrievalFailureException;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import java.util.List;
/**
* This class interacts with Spring and Hibernate to save and
* retrieve Newstype objects.
*
* @author Matt Raible
*/
public class NewstypeDAOHibernate extends HibernateDaoSupport implements NewstypeDAO { public List getNewstypes() {
return getHibernateTemplate().find("from Newstype");
} public Newstype getNewstype(Long id) {
Newstype Newstype = (Newstype) getHibernateTemplate().get(Newstype.class, id);
if (Newstype == null) {
throw new ObjectRetrievalFailureException(Newstype.class, id);
}
return Newstype;
} public void saveNewstype(Newstype Newstype) {
getHibernateTemplate().saveOrUpdate(Newstype); if (logger.isDebugEnabled()) {
logger.debug("NewstypeId set to: " + Newstype.getId());
}
} public void removeNewstype(Long id) {
getHibernateTemplate().delete(getNewstype(id));
}}
org.appfuse.model.Newstype.javapackage org.appfuse.model;public class Newstype extends BaseObject{
/**
*
*/
private static final long serialVersionUID = 3771464295740918883L;
private Long id;
private Long parentid;
private String typename;
private Long typesenque;
private String typememo;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getParentid() {
return parentid;
}
public void setParentid(Long parentid) {
this.parentid = parentid;
}
public String getTypememo() {
return typememo;
}
public void setTypememo(String typememo) {
this.typememo = typememo;
}
public String getTypename() {
return typename;
}
public void setTypename(String typename) {
this.typename = typename;
}
public Long getTypesenque() {
return typesenque;
}
public void setTypesenque(Long typesenque) {
this.typesenque = typesenque;
}}hibernate所需表映射文件
org.appfuse.model目录下
Newstype.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.appfuse.model.Newstype" table="newstype">
<id name="id" column="id" unsaved-value="null">
<generator class="increment"/>
</id>
<property name="parentid" column="parenttypeid" not-null="true"/>
<property name="typename" column="typename" not-null="true"/>
<property name="typesenque" column="typesenque" not-null="true"/>
<property name="typememo" column="typememo" not-null="true"/>
</class>
</hibernate-mapping>数据库操作类及接口package org.appfuse.dao;
import org.appfuse.model.Newstype;
import java.util.List;
public interface NewstypeDAO extends DAO {
public List getNewstypes();
public Newstype getNewstype(Long typeId);
public void saveNewstype(Newstype newstype);
public void removeNewstype(Long typeId);
}接口实现类:
package org.appfuse.dao.hibernate;
import org.appfuse.dao.NewstypeDAO;
import org.appfuse.model.Newstype;
import org.springframework.orm.ObjectRetrievalFailureException;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import java.util.List;
/**
* This class interacts with Spring and Hibernate to save and
* retrieve Newstype objects.
*
* @author Matt Raible
*/
public class NewstypeDAOHibernate extends HibernateDaoSupport implements NewstypeDAO { public List getNewstypes() {
return getHibernateTemplate().find("from Newstype");
} public Newstype getNewstype(Long id) {
Newstype Newstype = (Newstype) getHibernateTemplate().get(Newstype.class, id);
if (Newstype == null) {
throw new ObjectRetrievalFailureException(Newstype.class, id);
}
return Newstype;
} public void saveNewstype(Newstype Newstype) {
getHibernateTemplate().saveOrUpdate(Newstype); if (logger.isDebugEnabled()) {
logger.debug("NewstypeId set to: " + Newstype.getId());
}
} public void removeNewstype(Long id) {
getHibernateTemplate().delete(getNewstype(id));
}}
解决方案 »
- 关于oracle数据库的问题
- JAVA 如何 使用Hsql 用Memory-Only Databases方式链接
- 请问这个^符号是什么算法
- 初次运行jsp,各位路过的兄弟姐妹们帮帮忙,谢谢
- 无法将 Unicode 字符串转换为 Ebcdic 字符串
- 求回复springMVC+quartz如何访问数据库数据,进行判断后选择性自动发送邮件呢???
- 帮我编一个聊天室的程序,要有测试代码,然后在打包.急急急!!!
- 今天是被HelloWorld把头弄大了!
- 运行 ejb 的 HelloWorld 客户程序出现的问题
- jdk1.5 webservice 启动报错·
- 谢谢哪个大侠能给我写好了的JSP树啊~~是从SQL SERVER数据库动态生成的
- 有没有哪位大虾用过内存数据库啊?
package org.appfuse.service;import org.appfuse.model.Newstype;import java.util.List;public interface NewstypeManager {
public List getNewstypes();
public Newstype getNewstype(String NewstypeId);
public void saveNewstype(Newstype Newstype);
public void removeNewstype(String NewstypeId);}
业务类接口实现类
package org.appfuse.service.impl;import org.appfuse.dao.NewstypeDAO;
import org.appfuse.model.Newstype;import org.appfuse.service.NewstypeManager;import java.util.List;
public class NewstypeManagerImpl implements NewstypeManager {
private NewstypeDAO dao; public void setNewstypeDAO(NewstypeDAO dao) {
this.dao = dao;
} public List getNewstypes() {
return dao.getNewstypes();
} public Newstype getNewstype(String NewstypeId) {
return dao.getNewstype(Long.valueOf(NewstypeId));
} public void saveNewstype(Newstype Newstype) {
dao.saveNewstype(Newstype);
} public void removeNewstype(String NewstypeId) {
dao.removeNewstype(Long.valueOf(NewstypeId));
}}控制器类:package org.appfuse.web;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.appfuse.service.NewstypeManager;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;public class NewstypeController implements Controller {
private final Log log = LogFactory.getLog(NewstypeController.class);
private NewstypeManager mgr = null; public void setNewstypeManager(NewstypeManager NewstypeManager) {
this.mgr = NewstypeManager;
} public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response)
throws Exception {
if (log.isDebugEnabled()) {
log.debug("entering 'handleRequest' method...");
} return new ModelAndView("newstypeList", "newstypes", mgr.getNewstypes());
}
}
业务操作控制器类:
package org.appfuse.web;import java.text.SimpleDateFormat;
import java.util.Date;import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.appfuse.model.Newstype;
import org.appfuse.service.NewstypeManager;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.beans.propertyeditors.CustomNumberEditor;
import org.springframework.validation.BindException;
import org.springframework.web.bind.ServletRequestDataBinder;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;public class NewstypeFormController extends SimpleFormController {
private final Log log = LogFactory.getLog(NewstypeFormController.class);
private NewstypeManager mgr = null; public void setNewstypeManager(NewstypeManager NewstypeManager) {
this.mgr = NewstypeManager;
}
public NewstypeFormController() {
setCommandName("Newstype");
setCommandClass(Newstype.class);
} public ModelAndView processFormSubmission(HttpServletRequest request,
HttpServletResponse response,
Object command,
BindException errors)
throws Exception {
if (request.getParameter("cancel") != null) {
return new ModelAndView(getSuccessView());
} return super.processFormSubmission(request, response, command, errors);
} /**
* Set up a custom property editor for converting Longs
*/
protected void initBinder(HttpServletRequest request,
ServletRequestDataBinder binder) {
// convert java.util.Date
SimpleDateFormat dateFormat = new SimpleDateFormat(getText("date.format"));
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, null,
new CustomDateEditor(dateFormat, true));
// convert java.lang.Long
binder.registerCustomEditor(Long.class, null,
new CustomNumberEditor(Long.class, null, true));
} public ModelAndView onSubmit(HttpServletRequest request,
HttpServletResponse response, Object command,
BindException errors)
throws Exception {
if (log.isDebugEnabled()) {
log.debug("entering 'onSubmit' method...");
} Newstype Newstype = (Newstype) command; if (request.getParameter("delete") != null) {
mgr.removeNewstype(Newstype.getId().toString());
request.getSession().setAttribute("message",
getText("Newstype.deleted", Newstype.getTypename()));
} else {
mgr.saveNewstype(Newstype);
request.getSession().setAttribute("message",
getText("Newstype.saved", Newstype.getTypename()));
} return new ModelAndView(getSuccessView());
} protected Object formBackingObject(HttpServletRequest request)
throws ServletException {
String NewstypeId = request.getParameter("id"); if ((NewstypeId != null) && !NewstypeId.equals("")) {
return mgr.getNewstype(NewstypeId);
} else {
return new Newstype();
}
}
/**
* Convenience method for getting a i18n key's value. Calling
* getMessageSourceAccessor() is used because the RequestContext variable
* is not set in unit tests b/c there's no DispatchServlet Request.
*
* @param msgKey
* @return
*/
public String getText(String msgKey) {
return getMessageSourceAccessor().getMessage(msgKey);
} /**
* Convenient method for getting a i18n key's value with a single
* string argument.
*
* @param msgKey
* @param arg
* @return
*/
public String getText(String msgKey, String arg) {
return getText(msgKey, new Object[] { arg });
} /**
* Convenience method for getting a i18n key's value with arguments.
*
* @param msgKey
* @param args
* @return
*/
public String getText(String msgKey, Object[] args) {
return getMessageSourceAccessor().getMessage(msgKey, args);
}
}
action-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd"><beans>
<bean id="exceptionResolver"
class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<prop key="org.springframework.dao.DataAccessException">
dataAccessFailure
</prop>
</props>
</property>
</bean> <bean id="userController" class="org.appfuse.web.UserController">
<property name="userManager" ref="userManager"/>
</bean> <bean id="userFormController" class="org.appfuse.web.UserFormController">
<property name="validator" ref="beanValidator"/>
<property name="formView" value="userForm"/>
<property name="successView" value="redirect:users.html"/>
<property name="userManager" ref="userManager"/>
</bean>
<bean id="LoginAction" class="org.appfuse.web.LoginAction">
<property name="fail_view" value="loginfail"/>
<property name="success_view" value="main"/>
<property name="userManager" ref="userManager"/>
</bean>
<!--add new control-->
<bean id="newstypeController" class="org.appfuse.web.NewstypeController">
<property name="newstypeManager" ref="newstypeManager"/>
</bean> <bean id="newstypeFormController" class="org.appfuse.web.NewstypeFormController">
<property name="validator" ref="beanValidator"/>
<property name="formView" value="newstypeForm"/>
<property name="successView" value="redirect:newstypes.html"/>
<property name="newstypeManager" ref="newstypeManager"/>
</bean>
<bean id="filenameController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/> <!-- View Resolver for JSPs -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/"/>
<property name="suffix" value=".jsp"/>
</bean>
<bean id="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<value>
/users.html=userController
/editUser.html=userFormController
/login.html=LoginAction
/newstypes.html=newstypeController
/editNewstype.html=newstypeFormController
</value>
</property>
</bean> <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="messages"/>
</bean> <bean id="beanValidator" class="org.springmodules.commons.validator.DefaultBeanValidator">
<property name="validatorFactory" ref="validatorFactory"/>
</bean>
</beans>
applicationContext-hibernate.xml<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd"><beans>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="maxActive" value="30"/>
<property name="maxIdle" value="10"/>
<property name="maxWait" value="1000"/>
<property name="defaultAutoCommit" value="true"/>
</bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mappingResources">
<list>
<value>org/appfuse/model/User.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
</bean> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean> <bean id="userDAO" class="org.appfuse.dao.hibernate.UserDAOHibernate">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="newstypeDAO" class="org.appfuse.dao.hibernate.NewstypeDAOHibernate">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
</beans>applicationContext-validation.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd"><beans>
<bean id="validatorFactory" class="org.springmodules.commons.validator.DefaultValidatorFactory">
<property name="validationConfigLocations">
<list>
<value>/WEB-INF/validation.xml</value>
<value>/WEB-INF/validator-rules.xml</value>
</list>
</property>
</bean>
</beans>applicationContext.xml<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd"><beans>
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:jdbc.properties"/>
</bean> <!-- Transaction template for Managers, from:
http://blog.exis.com/colin/archives/2004/07/31/concise-transaction-definitions-spring-11/ -->
<bean id="txProxyTemplate" abstract="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager"><ref bean="transactionManager"/></property>
<property name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="remove*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean> <bean id="userManager" parent="txProxyTemplate">
<property name="target">
<bean class="org.appfuse.service.impl.UserManagerImpl">
<property name="userDAO" ref="userDAO"/>
</bean>
</property>
</bean>
<bean id="newstypeManager" parent="txProxyTemplate">
<property name="target">
<bean class="org.appfuse.service.impl.NewstypeManagerImpl">
<property name="newstypeDAO" ref="newstypeDAO"/>
</bean>
</property>
</bean>
</beans>
所以找不到,