前些天做了个学生信息的管理系统 无非是些信息的增删改查 这次用了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标签
分享到:
相关推荐
【SSH+MYSQL学生成绩管理系统】是一个典型的Java Web应用程序,主要使用了Struts2、Spring和Hibernate这三个框架,配合MySQL数据库来实现对学生成绩的有效管理。这个系统为初学者提供了学习和实践SSH框架集成开发的...
java开发项目基于SSH三大框架所编写的学生管理系统源代码,这是基于SSH三大框架所编写的学生管理系统(课设),MySql数据库,主要功能有: 管理员登入、学生信息的录入、学生成绩录入、课程信息录入、教师管理等。...
这个SSH+MySQL学生信息管理系统为教育机构提供了一种高效、便捷的方式来管理学生数据,同时也为开发者提供了学习和实践SSH框架以及数据库管理的良好平台。通过深入研究和定制,可以进一步扩展功能,例如增加教师管理...
在“学生成绩管理系统(SSH+MYSQL)”这个项目中,SSH指的是Spring、Struts和Hibernate这三个Java Web开发框架的组合,而MYSQL则是常用的开源关系型数据库管理系统。下面我们将深入探讨SSH框架和MYSQL数据库在构建此类...
【EXT 图书管理系统集成SSH与MYSQL数据库】 EXT 图书管理系统是一个基于Web的图书管理应用程序,它利用EXT JS作为前端框架,构建用户界面,提供丰富的交互性和美观的视觉体验。EXT JS是一个强大的JavaScript库,...
4. **MySQL数据库**:MySQL是一种广泛使用的开源关系型数据库管理系统,因其高效、稳定和易于管理而受到青睐。在论坛系统中,MySQL用于存储用户信息、帖子、回复等数据。 5. **MyEclipse集成环境**:MyEclipse是...
【基于SSH+MySQL的学生成绩管理系统】是一个典型的Web应用程序,它结合了Struts、Spring和Hibernate(SSH)三大框架,以及MySQL关系型数据库来实现高效、稳定的学生成绩管理。SSH框架组合提供了模型-视图-控制器...
总之,“学生信息管理系统SSH+MySql+Tomcat”项目是一个全面的Web应用示例,涵盖了从前端到后端、从数据库到服务器的全套技术栈,对于学习和理解Java Web开发的初学者来说,是非常有价值的实践资源。通过这个项目,...
在使用这个系统前,你需要先将`学生成绩管理系统(SSH+MYSQL)`这个压缩包解压,然后将SQL脚本导入到你的MySQL数据库中,创建相应的表结构。之后,配置SSH框架的数据库连接参数,确保程序能正确连接到你的MySQL数据库...
本项目是一个基于Java的大学信息管理系统,采用了经典的SSH(Spring、Struts2、Hibernate)技术栈,配合MySQL数据库进行数据存储,实现了对重庆理工大学网站的功能。源码的完整性和可用性已经得到验证,但在使用过程...
在这个项目中,SSH2被用来设计和实现一个学生信息管理系统,旨在管理和处理与学生相关的数据,如个人信息、成绩、出勤等。系统的核心功能包括数据存储、查询、更新和删除,通过整合这三个框架的优势,实现了业务逻辑...
学生会信息管理系统(管理员与注册用户)SSH框架 mysql数据库 管理员:用户管理、人员管理、活动管理、报名信息管理、密码修改 注册用户:资料修改、活动信息查看并报名、报名结果查看、密码修改 项目中数据...
基于JSP学生公寓管理系统的主要功能包括:可以实现对学生宿舍信息的录入功能,修改功能,删除功能。通过系统上述功能实现宿舍管理部门对于学生宿舍信息的日常管理,即方便宿舍管理人员及时全面地掌握学生住宿情况及...
【基于SSH的学生信息管理系统】是一种使用JavaWeb技术栈开发的管理信息系统,主要采用了Spring、Struts2和Hibernate三个核心框架的组合,即SSH框架。这个系统设计的目标是为教育机构提供一个高效、便捷的方式来存储...
SSH+MYSQL 学生成绩管理系统是一个基于SSH(Struts2、Spring、Hibernate)框架和MYSQL数据库构建的应用程序,用于高效管理学生的学习成绩。这个系统旨在提供一个用户友好的界面,让管理员、教师和学生能够方便地查看...
总结来说,"JavaEE + SSH框架 + mysql数据库 银行业务调度管理系统"是一个综合性的项目,涵盖了Web开发中的关键技术和业务领域的具体应用。对于想要提升技能或者完成毕业设计的学生,这是一个绝佳的学习资源,不仅...
【学生成绩管理系统(SSH+MYSQL)】是一个基于三大开源框架——Spring、Struts和Hibernate(简称SSH)以及MySQL数据库构建的应用程序。SSH是Java Web开发中常用的MVC(Model-View-Controller)架构模式的实现,而MySQL...