本系统采用ssh(Struts、Spring和Hibernate)框架开发,使用idea制作
目录
本系统采用ssh(Struts、Spring和Hibernate)框架开发,使用idea制作
action层处理前端与后端之间的逻辑交互,前端触发事件则运行action层的方法
hibernate.properties为hibernate配置信息
applicationContext.xml为spring配置信息
数据库采用mysql8.0.25版本
struts2采用2.5.10版本
spring采用4.3.8版本
hibernate采用4.2.4版本
服务器采用tomcat9.0.30版本
本系统涵盖了登录,注册等基本功能
且区分管理员与普通用户
管理员包括用户管理,设备管理,修改密码等功能
普通用户包括设备预定,查看预定申请,修改密码等功能
后端目录
一个数据表对应相应的model,dao,action
model层处理java类对象属性与数据库的对应
@Entity
@Table(name = "tadmin")
public class Tadmin {
protected static final long serialVersionUID = -1L;
public Tadmin() {
}
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID")
private Integer id;
/**
* 用户名
*/
@Column(name = "UNAME")
private String uname;
/**
* 密码
*/
@Column(name = "UPWD")
private String upwd;
/**
* 姓名
*/
@Column(name = "NAME")
private String name;
/**
* 联系电话
*/
@Column(name = "TEL")
private String tel;
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUname() {
return this.uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getUpwd() {
return this.upwd;
}
public void setUpwd(String upwd) {
this.upwd = upwd;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getTel() {
return this.tel;
}
public void setTel(String tel) {
this.tel = tel;
}
}
dao层处理对象与数据库的交互
/**
* 保存数据到数据库
*
* @param tadmin
*/
public void save(Tadmin tadmin) {
getHibernateTemplate().save(tadmin);
}
/**
* 更新数据到数据库
*
* @param tadmin
*/
public void update(Tadmin tadmin) {
getHibernateTemplate().update(tadmin);
}
/**
* 删除数据
*
* @param tadmin
*/
public void delete(Tadmin tadmin) {
getHibernateTemplate().delete(tadmin);
}
/**
* 根据ID查询数据
*
* @param id
* @return
*/
public Tadmin findById(Integer id) {
return getHibernateTemplate().get(Tadmin.class, id);
}
action层处理前端与后端之间的逻辑交互,前端触发事件则运行action层的方法
public String login() {
HttpServletRequest request = ServletActionContext.getRequest();
flag = "false";
String uname = request.getParameter("uname");
String upwd = request.getParameter("upwd");
Tadmin tadmin = new Tadmin();
tadmin.setUname(uname);
tadmin.setUpwd(upwd);
List<Tadmin> tadminList = tadminDAO.findAll(tadmin);
if (tadminList != null && tadminList.size() > 0) {
Tadmin admin = tadminList.get(0);
request.getSession().setAttribute("cuser", admin);
flag = "true";
}
return "flag";
}
public String loginout() {
HttpServletRequest request = ServletActionContext.getRequest();
request.getSession().setAttribute("cuser", null);
request.getSession().setAttribute("utype", null);
request.getSession().invalidate();
return "login";
}
public String register()
{
Tadmin tadmin = new Tadmin();
tadmin.setUname(uname);
tadmin.setUpwd(upwd);
tadmin.setName(name);
tadmin.setTel(tel);
// 保存到数据库
tadminDAO.save(tadmin);
return "login";
}
本系统有三个数据表,分别为
equipment存储了设备的信息
scheduled存储了预定申请的信息
tadmin存储了账号的信息
struts.xml用来写action事件以及事件触发效果
<action name="tadmin_*" class="com.action.TadminAction"
method="{1}">
<result name="list">/admin/tadmin/tadmin_list.jsp</result>
<result name="toAdd">/admin/tadmin/tadmin_add.jsp</result>
<result name="toUpdate">/admin/tadmin/tadmin_update.jsp</result>
<result name="toView">/admin/tadmin/tadmin_view.jsp</result>
<result name="login">/admin/login.jsp</result>
<result name="toupwd">/admin/tadmin/tadmin_upwd.jsp</result>
<result name="success" type="redirectAction">tadmin_list</result>
<result name="exist" type="json">
<param name="root">exist</param>
</result>
<result name="flag" type="json">
<param name="root">flag</param>
</result>
</action>
jdbc.properties为数据库连接信息
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456
hibernate.properties为hibernate配置信息
hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.show_sql=true
applicationContext.xml为spring配置信息
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"
default-autowire="byName">
<context:annotation-config />
<!-- spring 扫描路径,注意当前工程只需要扫描dao和service,srpingmvc或者struts2注解才有变化 -->
<context:component-scan
base-package="com.dao" />
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath*:jdbc.properties</value>
<value>classpath*:hibernate.properties</value>
</list>
</property>
</bean>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClass}">
</property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
</props>
</property>
<property name="packagesToScan">
<list>
<value>com.model</value>
</list>
</property>
</bean>
<!-- 配置Hibernate事务管理器 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 配置事务异常封装 -->
<bean id="persistenceExceptionTranslationPostProcessor"
class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />
<!-- 声明式容器事务管理 ,transaction-manager指定事务管理器为transactionManager -->
<tx:advice id="txAdvice"
transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="save*" propagation="REQUIRED" />
<tx:method name="del*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="*" read-only="true" />
</tx:attributes>
</tx:advice>
<aop:config expose-proxy="true">
<!-- 只对业务逻辑层实施事务 -->
<aop:pointcut id="txPointcut"
expression="execution(* com.dao..*.*(..))" />
<!-- Advisor定义,切入点和通知分别为txPointcut、txAdvice -->
<aop:advisor pointcut-ref="txPointcut"
advice-ref="txAdvice" />
</aop:config>
</beans>
前端实现
登录
注册
管理员
用户管理
修改
实验室设备管理
设备查询(可模糊查询与多条件查询共同使用)
设备详情(可查看设备预定使用情况)
申请审批
修改密码
普通用户
设备预定
预定
预定申请
取消预定
修改密码
界面与管理员类似