前些天做了个学生信息的管理系统 无非是些信息的增删改查 这次用了ssh2不用模拟数据库了
注意点:
1.jar包
2.applicationContext.xml struts.xml hibernate.cfg.xml mode中类和映射文件User.hbm.xml
3.配置稍稍有点不同
用hibernateTemplate配置了sessionFactory在dao中配置了hibernateTemplate 也可以直接配置seesionFactory
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
4.在struts.xml中配置action 中的class必须和对应在applicationContext.xml的<bean id="***Action" class="com.***.action.**Action"> id的名字相对应,这样网页提交的action才能用spring实例化的对象
5.在(用User做对象)UserAction 中 声明userService 或者在UserService中声明UserDAO的时候最好用接口声明
用的是动态代理 当然用类直接声明也是可以的 用的就是CGILB代理
6.dao要extends HibernateDaoSupport
下面放spring 和struts的配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="userAction" class="com.aowin.action.UserAction" scope="prototype">
<property name="userService" ref="userService"></property>
</bean>
<bean id="userService" class="com.aowin.serviceimpl.UserServiceImpl">
<property name="userDAO" ref="userDAO"></property>
</bean>
<bean id="userDAO" class="com.aowin.daoimpl.UserDAOImpl">
<property name="hibernateTemplate" ref="hibernateTemplate"></property>
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
</bean>
<!-- 负责开启、提交事务 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="transactionManager"></property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<bean id="autoproxy" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames" value="*Service"></property>
<property name="interceptorNames" value="transactionInterceptor"></property>
</bean>
</beans>
struts
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/user" extends="struts-default">
<action name="userlist" class="userAction" method="getUsers">
<result>/list.jsp</result>
</action>
<action name="input" class="userAction" method="addInput">
<result>/input.jsp</result>
</action>
<action name="update" class="userAction" method="update">
<result>/update.jsp</result>
</action>
<action name="updatedo" class="userAction" method="updatedo">
<result name="input">/result.jsp</result>
<result>/result.jsp</result>
</action>
<action name="delete" class="userAction" method="delete">
<result>/result.jsp</result>
</action>
<action name="add" class="userAction" method="addUser">
<!-- 配置重复提交的拦截器 -->
<interceptor-ref name="token"></interceptor-ref>
<!-- 配置全局的拦截器(有单独的拦截器默认的就会被替换掉,注意此时一定要加上) -->
<interceptor-ref name="defaultStack"></interceptor-ref>
<result name="input">/result.jsp</result>
<result name="success">/result.jsp</result>
<result name="invalid.token">/error.jsp</result>
</action>
</package>
</struts>
dao
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.aowin.idao.IUserDAO;
import com.aowin.model.User;
public class UserDAOImpl extends HibernateDaoSupport implements IUserDAO {
public void addUser(User user) {
this.getHibernateTemplate().save(user);
}
public void deleteUser(User user) {
this.getHibernateTemplate().delete(user);
}
public List<User> getAllUser() {
String hql = "from User" ;
List<User> list = this.getHibernateTemplate().find(hql);
return list;
}
public void updateUser(User user) {
this.getHibernateTemplate().update(user);
}
public User getOneUser(int id) {
String hql = "select u from User u where u.id=?";
List<User> list = this.getHibernateTemplate().find(hql, id);
return list.get(0);
}
}
action 中部分代码是老师的:
import java.util.List;
import com.aowin.iservice.IUserService;
import com.aowin.model.User;
import com.aowin.serviceimpl.UserServiceImpl;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class UserAction extends ActionSupport {
private int id;
private String message;
private User user;
private List<User> userList;
private IUserService userService;
public IUserService getUserService() {
return userService;
}
public void setUserService(IUserService userService) {
this.userService = userService;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public List<User> getUserList() {
return userList;
}
public void setUserList(List<User> userList) {
this.userList = userList;
}
/**
* 查询所有用户
*
* @return
*/
public String getUsers() {
userList = userService.getUserList();
return Action.SUCCESS;
}
/**
* 准备添加用户
*
* @return
*/
public String addInput() {
return Action.SUCCESS;
}
/**
* 添加用户
*
* @return
*/
public synchronized String addUser() {
userList = userService.getUserList();
// 业务逻辑的验证
if (userList.contains(this.user)) {
this.message = "已经存在相同用户,不能添加";
return "input";
}
// 增加用户
userService.addMessage(user.getUsername(), user.getAddress());
this.message = "添加用戶成功";
return Action.SUCCESS;
}
/**
* 验证表单输入的合法性
*/
public void validateAddUser() {
if (null == this.user) {
this.message = "请输入合法的用户名,地址";
// 强制去找input试图
this.addFieldError("", "");
} else if (null == user.getAddress() || "".equals(user.getAddress())) {
this.message = "请输入合法的用户名或者地址";
this.addFieldError("", "");
} else if (null == user.getUsername() || "".equals(user.getAddress())) {
this.message = "请输入合法的用户名或者地址";
this.addFieldError("", "");
}
}
/**
* 准备修改用户
*
* @return
*/
public String update() {
for (User u : userService.getUserList()) {
if (u.getId() == this.id) {
user = u;
}
}
return Action.SUCCESS;
}
/**
* 修改用户
*
* @return
*/
public String updatedo() {
// 用户名 密码没有实际修改就提交
for (User u : userService.getUserList()) {
if (u.getId() == this.id
&& u.getUsername().equals(user.getUsername())
&& u.getAddress().equals(user.getAddress())) {
this.message = "您没有做修改";
return Action.INPUT;
}
}
// 用户名密码确实有修改过
if (userService.getUserList().contains(this.user)) {
this.message = "存在相同的用户名、地址,不能修改";
return Action.INPUT;
}
userService.updateMessage(id, user.getUsername(), user
.getAddress());
this.message = "修改用户成功";
return Action.SUCCESS;
}
/**
* 验证修改用户
*/
public void validateUpdatedo() {
// 验证表单输入域的合法性
validateAddUser();
}
/**
* 删除用户
*
* @return
*/
public String delete() {
userService.delMessage(id);
this.message = "删除成功";
return Action.SUCCESS;
}
}
显示用的是jsp页面 可以用S标签 也可以用一般的html标签
分享到:
相关推荐
java开发项目基于SSH三大框架所编写的学生管理系统源代码,这是基于SSH三大框架所编写的学生管理系统(课设),MySql数据库,主要功能有: 管理员登入、学生信息的录入、学生成绩录入、课程信息录入、教师管理等。...
学生会信息管理系统(管理员与注册用户)SSH框架 mysql数据库 管理员:用户管理、人员管理、活动管理、报名信息管理、密码修改 注册用户:资料修改、活动信息查看并报名、报名结果查看、密码修改 项目中数据...
基于SSH和mysql的学生管理系统,有sql数据库文件。
基于SSH的学生信息管理系统 内涵SQL文件 数据库为MYSQL
主要功能: (1)学生信息管理模块:包括所有学生信息的查询(用分页列表显示)、查看某个学生的详细信息、删除某学生信息信息、修改某学生信息以及学生信息的录入等子功能( 2)学生成绩管理模块:包括成绩信息录入...
JSP SSH辅助教学系统 是一套完善的WEB设计系统(struts2+spring+hibernate),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 二、功能介绍 系统主要有三类用户角色...
论文将设计一个学生公寓管理系统的Web应用解决方案并予以实现。学生公寓管理系统是一个安全和高效的专用系统,。这个系统使用了很多技术,比如JSP,JDBC等。专用系统使用的数据库是Mysql 数据库。基于JSP学生公寓管理...
本项目是一套基于SSH的银行客户关系管理系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本、软件工具、项目说明等,该项目可以直接作为毕设使用。 项目...
学生成绩管理系统(基于SSH框架+MySQL数据库)简介 学生成绩管理系统是一款基于SSH框架和MySQL数据库开发的软件系统,旨在帮助学校和教育机构高效、准确地管理学生成绩,提升教学管理水平。该系统结合了SSH框架的...
一个使用SSH框架和MYSQL数据库开发的一个教务管理系统。 教务处课程管理网站的目的是使教务处方便地管理学生的选课情况、学习成绩等信息,并通过该系统向学校的其他管理部门提供或获取数据。内容如下: 1学生 登录/...
本资源内含数据库脚本,能把学生照片上传到数据库,并且能在jsp页面显示出来 本资源内含数据库脚本,能把学生照片上传到数据库,并且能在jsp页面显示出来
JSP SSH快递管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,(SSH框架)系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 二、功能介绍 1.前台 1)客户可以自主下订单。 2)客户...
毕业设计,基于SSH2+MySql+Bootstrap开发的高校学生成绩管理系统,内含Java完整源代码,数据库脚本 JSP基于SSH2高校学生成绩管理系统毕业源码案例设计 开发软件: MyEclipse/Eclipse/Idea都可以 数据库:mysql ...
本项目是一套基于SSH的医院信息管理系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本、软件工具、项目说明等,该项目可以直接作为毕设使用。 项目都...
本项目是一套基于SSH的住院管理系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本、软件工具、项目说明等,该项目可以直接作为毕设使用。 项目都经过...
本项目是一套基于SSH的体育器材管理系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本、软件工具、项目说明等,该项目可以直接作为毕设使用。 项目都...
学生成绩管理系统(SSH+MySQL)是一个基于Java技术的Web应用程序,它实现了学生成绩的高效管理和便捷操作。该系统采用SSH(Struts2+Spring+Hibernate)框架进行开发,以确保系统的稳定性和可扩展性。数据库方面则...
学生信息成绩管理系统(JAVA,JSP,SSH,MYSQL), 系统设计是一个把软件需求转换成用软件系统表示的过程[9]。通过对目标系统的分析和研究,做出了学生信息管理系统的总体规划,这是全面开发系统的重要基础。在对学生信息...
本系统为基于ssh框架的学生信息管理系统,数据库为mysql,现开源提供给大家使用,直接使用eclipse导入即可使用。 包含源码+数据库+附带详细配置文档,小白或者入门者可以参考详细配置文档完成独立部署。
大二时的SSH大作业,一款学生后台管理系统,使用MySQL数据库,希望对大家有帮助