在Netbeans中使用Struts20+Spring25+Hibernate框架zhuan.doc_第1页
在Netbeans中使用Struts20+Spring25+Hibernate框架zhuan.doc_第2页
在Netbeans中使用Struts20+Spring25+Hibernate框架zhuan.doc_第3页
在Netbeans中使用Struts20+Spring25+Hibernate框架zhuan.doc_第4页
在Netbeans中使用Struts20+Spring25+Hibernate框架zhuan.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

在Netbeans中使用Struts2.0+Spring2.5+Hibernate框架(一)Netbeans 6.1中加入了Spring 2.5,Struts,Hibernate的支持,可以满足现在大部分企业应用SSH框架的开发需求。本文将用一个简单的登陆例子来介绍如何在Netbeans6.1中使用SSH框架进行企业级开发。本节介绍示例的准备工作、OR映射以及相关配置的方法。下一节则介绍页面层和框架整合的关键技术。软件需求:1、1、JDK1.62、Netbeans 6.1,下载并安装Struts 2.0插件,Hibernate 3.5支持以及库文件的插件3、MySQL 5数据库及JDBC驱动4、Struts+Spring整合方案库 JDBC驱动和整合库在这里。实验步骤:1、1、在MySQL中建立数据库sshdemo,执行以下脚本:SET FOREIGN_KEY_CHECKS=0;- - Table structure for user- -CREATE TABLE user (userId bigint(20) NOT NULL auto_increment,userName varchar(20) NOT NULL,password varchar(30) NOT NULL,PRIMARY KEY(userId) ENGINE=InnoDB DEFAULT CHARSET=utf8;- - Records- -INSERT INTO user VALUES (1, mg, 123);2、2、在Netbeans6.1中建立Web工程,在选择框架时选择Spring Web MVC2.5及Struts2.0和Hibernate,命名为SSHDemo,如下图所示:点击工程右键-属性-库-添加Jar文件,加入ssh_lib.zip包中的两个包。3、3、在源包中新建包po,dao,service,action四个包,分别用来放置ORM映射、数据库操作、业务逻辑以及Struts的Action。4、4、建立Model,在po包中新建类User,代码如下:public class User private String name;private long id;private String password;单击右键,选择“重构”-“封装字段”,选择所有字段进行封装,生成get和set方法。5、5、建立Model和数据库的映射。生成在源包中右键单击po包,新建-其他-Hibernate-Hibernate Configuration File,如下图所示:点击下一步,命名为hibernate1.cfg,点击下一步,在database connection中把下拉框拉到最下面,点击“新建数据库连接”,如下图所示:注意用户名和密码可以自己指定。最后点击完成,在源包的缺省包中就会生成hibernate1.cfg.xml的Hibernate配置文件:org.hibernate.dialect.MySQLDialectcom.mysql.jdbc.Driverjdbc:mysql:/localhost:3306/sshdemorootroot在po包中点击右键,选择新建-其他-Hibernate-Hibernate Mapping File,命名为user.hbm,如下配置:点击完成,生成user.hbm.xml,加入映射关系如下:6、6、在Spring IoC容器中定义Hibernate的SessionFactory。打开Web页- WEB-INF applicationContext.xml,首先加入数据源的定义:然后加入Hibernate的SessionFactory的定义:po/user.hbm.xmlhibernate.dialect=org.hibernate.dialect.MySQLDialectSpring的配置文件有强大的提示功能:7、7、建立Dao接口及实现。在dao包中建立接口UserDao,代码如下:public interface UserDao void save(User user) throws Exception;User getUser(long userId);User getUser(String userName);建立实现类UserDaoImpl,代码如下:package dao;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import po.User;/* author Administrator*/public class UserDaoImpl extends HibernateDaoSupport implements UserDaopublic void save(User user) throws ExceptiontrygetHibernateTemplate().save(user);catch(Exception err)throw err;public User getUser(long userId)return (User)getHibernateTemplate().get(User.class, userId);public User getUser(String userName) return (User)getHibernateTemplate().find(from User as u where = ?, userName).get(0);该类继承于org.springframework.orm.hibernate3.support.HibernateDaoSupport,以方便地使用getHibernateTemplate()获得Hibernate支持。如getUser方法,可以用getHibernateTemplate()方法获得工厂对象sessionFactory,调用find方法可以通过HQL语句来查找对象,而不必再编写复杂的SQL语句。对实体的其他操作入插入操作则只需调用save方法。由于Dao类必须调用sessionFactory,因此必须通过Spring IoC容器为Dao类注入sessionFactory。在applicationContext.xml中添加以下配置:至此,OR映射工作完成。下一节将介绍页面层技术,包括国际化方案。在Netbeans中使用Struts2.0+Spring2.5+Hibernate框架(二)2008-09-22 15:13:34 查看( 1756 ) / 评论( 1 ) 上一篇文章介绍了在Netbeans6.1中使用SSH框架的准备工作及OR映射的方法,这篇文章则继续介绍如何构建视图层和业务逻辑层以及在此过程中整合Struts和Spring框架。1、建立业务逻辑。在service包中创建业务接口UserService,代码如下:package service;import dao.UserDaoImpl;import po.User;/* author Administrator*/public interface UserServive void addUser(String userName, String password, int admin) throws Exception; User getUser(long userId); User getUser(String userName); void setUserDao(UserDaoImpl userDao);创建实现类UserServiceImp,代码如下:package service;import po.User;/* author Administrator*/public class UserServiceImpl implements UserServive private dao.UserDao userDao; public void addUser(String userName, String password, int admin) throws Exception po.User user = new User(); /user.setId(10); user.setAdmin(admin); user.setName(userName); user.setPassword(password); try userDao.save(user); catch(Exception err) throw err; public User getUser(long userId) return userDao.getUser(userId); public void setUserDao(dao.UserDaoImpl userDao) this.userDao = userDao; public User getUser(String userName) return this.userDao.getUser(userName); 注意红色部分代码,为了访问数据库,必须引入userDao的对象,生成set的方法,并通过Spring IoC容器注入该属性,在applicationContext.xml中增加以下配置: userDao的配置已经在上一篇文章描述过,引用的是以下这段配置: service的方法就是通过调用dao的实体方法来操作的,如上面代码第二段红色的部分。2、建立视图。在web页面的example目录下新建JSP页面,命名为Login。在文件头部添加Struts2.0的标签引入:在网页body标签中加入以下代码: Struts2.0的标签库功能很强大,网上有很多例程,在这里就不详述了。关键的地方是lable属性里面的表达式,在这里,是为了国际化而设的。要在Struts2.0中使用i18N,我们首先要在源包-缺省包中新建一个属性文件(点击新建-其他-属性文件),命名为struts。在perties中添加定义:struts.custom.i18n.resources=globalMessages这条语句指定资源文件的前缀,例如中文的资源文件可以命名为globalMessages_zh_CN,英文的可以命名为globalMessages_en_US。我们在缺省包中分别创建这两个属性文件。在中文的资源文件中加入以下:username=用户名password=密码submit=提交英文的资源文件加入:username=Usernamepassword=Passwordsubmit=Submit然后就可以在JSP页面中用%getText(username)的表达式来指定要读出的字符串了。在Struts2.0中,我们不必再手动地把中文转换为Unicode码,框架会自动转换。3、创建Action。在action包中点击右键-新建-其他-Struts2-Struts2 Action,命名为LoginAction。Struts2.0中不再需要创建ActionForm,只要生成属性的get和set方法,就能够获取到页面标签name属性对应的值。在这里,LoginAction继承com.opensymphony.xwork2.ActionSupport。代码如下:package action;import com.opensymphony.xwork2.ActionSupport;import java.util.Locale;import org.springframework.context.support.ResourceBundleMessageSource;import po.User;import service.UserServiceImpl;/* author mg*/public class LoginAction extends ActionSupport private UserServiceImpl userService; private String message; private String username; private String password; private ResourceBundleMessageSource messageSource; public LoginAction() Override public String execute() throws Exception User usr = userService.getUser(username); if(usr != null) if(usr.getPassword().equals(password) message = messageSource.getMessage(loginSuccess, null,Locale.CHINA); else message = messageSource.getMessage(pswError, null,Locale.CHINA); else message = messageSource.getMessage(usrError, null,Locale.CHINA); return SUCCESS; public void setUserService(UserServiceImpl userService) this.userService = userService; public String getMessage() return message; public void setMessage(String message) this.message = message; public String getUsername() return username; public void setUsername(String username) this.username = username; public String getPassword() return password; public void setPassword(String password) this.password = password; public void setMessageSource(ResourceBundleMessageSource messageSource) this.messageSource = messageSource; 注意红色代码的属性。其中ResourceBundleMessageSource是Spring 2.5中处理国际化信息的类,UserServiceImp是操作User实体的业务逻辑类。这两个类的实例都是通过Spring IoC容器管理和注入的。因此,必须在applicationContext.xml中添加配置: 在缺省包中添加属性文件perties,注意文件名要以messageSource的bean定义的basename属性一致。在该资源文件中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论