spring整合struts2+hibernate实现查询
来源:互联网 发布:jdbc连接两个数据库 编辑:程序博客网 时间:2024/05/29 07:49
第一篇博客啊,最近要做spring mvc的网站,就先熟悉一下spring整合hibernate,既然这样,就把struts2也加了进来,以备将来整合借鉴之用。
首先就是先创建一个新的WEB项目,
之后导入struts库,选择struts2.1和pattern的/*选项。
选择核心包和Spring包,核心包是必选的,Spring的包如果要和Spring整合,则是一定要选的。
之后创建四个包,action:业务层,dao:数据库操作,model:实体类,service:用来实现部分功能
在Login.jsp中加入以下代码,这是用struts框架的,可加可不加。
<%@ taglib prefix="s" uri="/struts-tags" %>
修改最上面的,可以显示中文
pageEncoding="utf-8"同时插入,即登陆界面的代码
<body> <center> User Login<br> <s:form action="login.action" method="post"> <s:textfield name="user.username" label="账号"></s:textfield> <s:password name="user.password" label="密码"></s:password> <s:submit value="登录"></s:submit> </s:form> </center> </body>完成登录界面。
接下来在model中创建User.java实体类,
public class User {private String username;private String password;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;}}
在action中创建LoginAction.java,用来进行登录时的用户判断
public class LoginAction {private User user;public User getUser() {return user;}public void setUser(User user) {this.user = user;}public String execute(){if(user.getUsername().equals(user.getPassword())){return "success";}return "fail";}}
再对struts.xml进行编辑,用来编辑在登陆时的跳转页面,如果LoginAction验证正确,则返回LoginSuccess.jsp,否则则返回登陆界面。
<struts><package name="strutsBean" extends="struts-default" namespace="/"><action name="login" class="action.LoginAction"><result name="success">/LoginSuccess.jsp</result><result name="fail">/Login.jsp</result></action></package></struts>
修改LoginSuccess.java,增加taglib和utf-8,同时增加
<s:property value="user.username" /> 登录成功。
加入Spring框架,Core Libraries是必选的,如果要和hibernate整合则要选择JDBC Libraries,它会自动选择以上选项。
用于web开发,所以Web Libraries也是要选择的
重新选择一下applicationContext.xml的位置,将它放到WebRoot/WEB-INF中,
在web.xml中增加一下代码,为了使程序在使用时调用spring进行监听。
<listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param>
在applicationContext中加入一个Login的bean,
<bean id="login" class="action.LoginAction" ></bean>同时,把struts.xml中的class改成上面的id。意味着在struts进行判断是,会根据login这个id找到action.LoginAction,再根据LoginAction进行判断。
部署项目,看下结果
之后要进行整合hibernate:
加入hibernate,要选择用Spring进行配置
选择已存在的Spring配置文件
在选择数据库后,下一步,取消建立Session工程的类,因为可以直接在Spring的applicationContext.xml中显示。
建立User数据库后,建立反向工程
选择一下Id Generator,用来确定id是用什么方式来确定的,native是自选,计算机根据最适合的匹配算法。
在下一步中,一定要输入Class name 中的类的报名,不然会创建default package,并把实体类放到新创建的包中。记住啊。
移动UserDAO.java
创建UserDAO的interface,
在service中创建IUserService.java的接口文件,
public interface IUserService {public List<User> findAll();public User findById(Integer id);public void addUsers(User u);public void delUsers(User u);public void updateUsers(User u);public User login(String uname,String upass);}在service中在创建UserService.java 实现以上接口:
public class LoginUserService implements ILoginUserService {private ILoginUserDAO loginUserDAO=null;public ILoginUserDAO getLoginUserDAO() {return loginUserDAO;}public void setLoginUserDAO(ILoginUserDAO loginUserDAO) {this.loginUserDAO = loginUserDAO;}public List<LoginUser> findAll() {// TODO Auto-generated method stubreturn null;}public LoginUser fianById(Integer id) {// TODO Auto-generated method stubreturn null;}public void addUsers(LoginUser u) {// TODO Auto-generated method stub}public void delUsers(LoginUser u) {// TODO Auto-generated method stub}public void updateUsers(LoginUser u) {// TODO Auto-generated method stub}public LoginUser login(String uname, String upass) {// TODO Auto-generated method stub//System.out.println(uname);List users=loginUserDAO.findByUsername(uname);if(users.size()>0){for(int i=0;i<users.size();i++){LoginUser u = (LoginUser)users.get(i);if(upass.equals(u.getPassword()))return u;}}return null;}}
修改LoginAction中的代码,加入IUserService,并修改判断用户名的代码
public class LoginAction {private User user;private IUserService userService; public IUserService getUserService() {return userService;}public void setUserService(IUserService userService) {this.userService = userService;}public User getUser() {return user;}public void setUser(User user) {this.user = user;}public String execute(){if(userService.login(user.getUsername(), user.getPassword())==null){return "fail";}return "success";}}
修改applicationContext.xml,增加部分代码中的实例化:
<bean id="login" class="action.LoginAction"><property name="userService" ref="userService"></property></bean><bean id="userService" class="service.UserService"><property name="userDao" ref="UserDAO"></property></bean>在上面,login中的property的userService对应代码中的userService,ref中的userService则对应后面bean中的id,是将后面的userService赋值到代码中的userService,从而减少的耦合度。后面的bean中的UserDao同理。
重新部署后,结果不变。
到这里已经实现了ssh的登录功能。
- spring整合struts2+hibernate实现查询
- struts2+hibernate+spring整合
- struts2 spring hibernate 整合
- Spring struts2 hibernate 整合
- struts2+spring+hibernate整合
- struts2+spring+hibernate整合
- struts2+spring+hibernate整合
- Spring、Struts2、Hibernate整合
- Spring + Hibernate + Struts2整合
- struts2+spring+hibernate整合
- struts2+spring+hibernate整合
- Struts2+Hibernate+Spring整合
- Spring Struts2 Hibernate整合
- 整合struts2+spring+hibernate
- spring struts2 hibernate整合
- 整合Struts2,Spring,Hibernate
- Spring + Struts2 + Hibernate整合
- spring+struts2+hibernate整合
- SSH框架面试题
- CF 390B:Inna, Dima and Song
- CF 390C:Inna and Candy Boxes
- 二级缓存的管理
- poj 1252:Euro Efficiency
- spring整合struts2+hibernate实现查询
- hdu 2157:How many ways??
- CF 390D:Inna and Sweet Matrix
- 大量时移、回看出错
- poj 3070:Fibonacci
- hdu 1233:还是畅通工程
- 0-1背包问题
- hdu 1879:继续畅通工程
- Eclipse使用技巧