Eclipse下struts+spring+hibernate快速入门1Word文档格式.docx
- 文档编号:7455784
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:19
- 大小:20.12KB
Eclipse下struts+spring+hibernate快速入门1Word文档格式.docx
《Eclipse下struts+spring+hibernate快速入门1Word文档格式.docx》由会员分享,可在线阅读,更多相关《Eclipse下struts+spring+hibernate快速入门1Word文档格式.docx(19页珍藏版)》请在冰点文库上搜索。
11.通过浏览器校验jsp
安装eclipse插件
1.Hibernate插件
2.Spring插件
3.MyEclipse插件(破解版)
4.Tomcat插件.tanghan
5.其他插件包括xml,jsp,
数据库建表
Createtableapp_user(idnumber(5)notnull,primatekeylastnamevchar2(20),firstnamevchar2(20));
新建项目
新建一个webproject,
新建后的目录结构如上图所示,同时包含了新建文件夹page用于放jsp文件,和源文件夹test用于放junit测试文件。
同时将用到的包,包括struts,hibernate,spring都导入到lib目录下。
创建持久层O/Rmapping
1.在src/com.jandar.model下用hibernate插件从数据库导出app_user的.hbm.xml文件改名为User.hbm.xml
<
?
xmlversion="
1.0"
>
!
DOCTYPEhibernate-mappingPUBLIC
"
-//Hibernate/HibernateMappingDTD//EN"
>
hibernate-mappingpackage="
com.jandar.model"
classname="
User"
table="
APP_USER"
id
column="
ID"
name="
id"
type="
integer"
generatorclass="
assigned"
/>
/id>
property
LASTNAME"
length="
10"
lastname"
not-null="
false"
string"
/>
FIRSTNAME"
firstname"
true"
/class>
/hibernate-mapping>
2.通过hibernatesynchronizer->
synchronizerfile生成User.java文件,User对象对应于数据库中的app_user表
注:
在eclipse下自动生成的对象文件不完全相同,相同的是每个对象文件必须实现Serializable接口,必需又toString和hashCode方法;
importjava.io.Serializable;
importmons.lang.builder.EqualsBuilder;
importmons.lang.builder.HashCodeBuilder;
importmons.lang.builder.ToStringBuilder;
importmons.lang.builder.ToStringStyle;
publicclassBaseObjectimplementsSerializable{
publicStringtoString(){
returnToStringBuilder.reflectionToString(this,
ToStringStyle.MULTI_LINE_STYLE);
}
publicbooleanequals(Objecto){
returnEqualsBuilder.reflectionEquals(this,o);
publicinthashCode(){
returnHashCodeBuilder.reflectionHashCode(this);
publicclassUserextendsBaseObject{
privateLongid;
privateStringfirstName;
privateStringlastName;
/**
*@returnReturnstheid.
*/
publicLonggetId(){
returnid;
*@paramidTheidtoset.
publicvoidsetId(Longid){
this.id=id;
*@returnReturnsthefirstName.
publicStringgetFirstName(){
returnfirstName;
*@paramfirstNameThefirstNametoset.
publicvoidsetFirstName(StringfirstName){
this.firstName=firstName;
*@returnReturnsthelastName.
publicStringgetLastName(){
returnlastName;
*@paramlastNameThelastNametoset.
publicvoidsetLastName(StringlastName){
this.lastName=lastName;
创建DAO,访问对象
1.在src/com.jandar.service.dao新建IDAO.java接口,所有的DAO都继承该接口
packagecom.jandar.services.dao;
publicinterfaceIDAO{
2.在src/com.jandar.service.dao下新建IUserDAO.java接口
publicinterfaceIUserDAOextendsDAO{
ListgetUsers();
UsergetUser(Integeruserid);
voidsaveUser(Useruser);
voidremoveUser(Integerid);
}
该接口提供了访问对象的方法,
3.在src/com.jandar.service.dao.hibernate下新建UserDAOHiberante.java
importjava.util.List;
importmons.logging.Log;
importmons.logging.LogFactory;
importorg.springframework.orm.hibernate.support.HibernateDaoSupport;
importcom.jandar.model.User;
importcom.jandar.service.dao.IUserDAO;
publicclassUserDaoHibernateextendsHibernateDaoSupportimplementsIUserDAO{
privateLoglog=LogFactory.getLog(UserDaoHibernate.class);
/*(非Javadoc)
*@seecom.jandar.dao.IUserDAO#getUsers()
publicListgetUsers(){
returngetHibernateTemplate().find("
fromUser"
);
*@seecom.jandar.dao.IUserDAO#getUser(java.lang.Long)
publicUsergetUser(Integerid){
//TODO自动生成方法存根
return(User)getHibernateTemplate().get(User.class,id);
*@seecom.jandar.dao.IUserDAO#saveUser(com.jandar.model.User)
publicvoidsaveUser(Useruser){
log.debug("
xxxxxxx"
System.out.println("
yyyy"
getHibernateTemplate().saveOrUpdate(user);
if(log.isDebugEnabled())
{
userIdsetto"
+user.getId());
*@seecom.jandar.dao.IUserDAO#removeUser(java.lang.Long)
publicvoidremoveUser(Integerid){
Objectuser=getHibernateTemplate().load(User.class,id);
getHibernateTemplate().delete(user);
if(log.isDebugEnabled()){
deluser"
+id);
在这个类中实现了IUserDAO接口的方法,并且继承了HibernateDAOSupport类。
这个类的作用是通过hibernate访问、操作对象,进而实现对数据库的操作。
创建业务层,声明事务
业务层主要处理业务逻辑,提供给web层友好的访问接口和实现访问DAO层。
用业务层的另一个好处是,可以适应数据访问层从Hibernate技术转移到其他数据访问技术。
1.在src/com.jandar.service下新建一个IUserManager接口,该接口有几乎于IUserDAO同样的方法,不同的是处理参数,应为IUserManager是供web层访问的。
publicinterfaceIUserManager{
UsergetUser(Stringuserid);
UsersaveUser(Useruser);
voidremoveUser(Stringuserid);
2.在src/com.jandar.service.spring下新建IuserManager实现类,UserManager.java
/*
*创建日期2005-3-4
*
*TODO要更改此生成的文件的模板,请转至
*窗口-首选项-Java-代码样式-代码模板
packagecom.jandar.service.spring;
importcom.jandar.service.IUserManager;
*@authorAdministrator
*TODO要更改此生成的类型注释的模板,请转至
publicclassUserManagerimplementsIUserManager{
*@seecom.jandar.service.IUserManager#getUser(java.lang.String)
privatestaticLoglog=LogFactory.getLog(UserManager.class);
publicIUserDAOuserDao;
*@return返回userDao。
publicIUserDAOgetUserDao(){
returnuserDao;
*@paramuserDao要设置的userDao。
publicvoidsetUserDao(IUserDAOuserDao){
this.userDao=userDao;
publicUsergetUser(Stringuserid){
Useruser=userDao.getUser(Integer.valueOf(userid));
if(user==null){
log.warn("
userid"
+userid+"
notfoundindatabase"
getauserwithid"
+userid);
returnuser;
*@seecom.jandar.service.IUserManager#getUsers()
returnuserDao.getUsers();
*@seecom.jandar.service.IUserManager#saveUser(com.jandar.model.User)
publicUsersaveUser(Useruser){
userDao.saveUser(user);
*@seecom.jandar.service.IUserManager#removeUser(java.lang.String)
publicvoidremoveUser(Stringuserid){
userDao.removeUser(Integer.valueOf(userid));
UserManager.java通过访问dao接口实现业务逻辑和数据库操作。
同时该类中提供了set方法,运用了Spring的依赖注入机制。
但尚未使用spring的AOP和声明事务。
配置applicationContext.xml
在WEB-INF下新建applicationContext.xml
encoding="
UTF-8"
DOCTYPEbeansPUBLIC"
-//SPRING//DTDBEAN//EN"
http:
//www.springframework.org/dtd/spring-beans.dtd"
beans>
beanid="
dataSource"
class="
org.springframework.jdbc.datasource.DriverManagerDataSource"
propertyname="
driverClassName"
value>
org.hsqldb.jdbcDriver<
/value>
/property>
url"
jdbc:
hsqldb:
db/appfuse<
username"
sa<
--Makesure<
tagsareonsameline-ifthey'
'
renot,
authenticationwillfail-->
password"
/bean>
--HibernateSessionFactory-->
sessionFactory"
org.springframework.orm.hibernate.LocalSessionFactoryBean"
reflocal="
mappingResources"
list>
com/jandar/model/User.hbm.xml<
/list>
hibernateProperties"
props>
propkey="
hibernate.dialect"
net.sf.hibernate.dialect.HSQLDialect<
/prop>
hibernate.hbm2ddl.auto"
create<
/props>
--TransactionmanagerforasingleHibernateSessionFactory(alternativetoJTA)-->
transactionManager"
class="
org.springframework.orm.hibernate.HibernateTransactionManager"
userDAO"
com.jandar.dao.hibernate.UserDAOHibernate"
userManagerTarget"
com.jandar.service.spring.UserManager"
userManager"
org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
target"
transactionAttributes"
save*"
PROPAGATION_REQUIRED<
remove*"
*"
PROPAGATION_REQUIRED,readOnly<
/beans>
创建Web层
1.创建StrutsAction,为了在一个action中实现CRUD操作,Action继承了DispatchAction根据参数决定调用方法。
在src/com.jandar.web.struts.action下创建UserAction.java
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importorg.apache.struts.action.ActionForm;
importorg
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Eclipse struts spring hibernate 快速 入门
![提示](https://static.bingdoc.com/images/bang_tan.gif)