JAVAEE用户管理系统
一、 实验目的
1.要求学生基本掌握Struts框架的使用方法,能够应用框架来设计出Web应用程序。
2.要求学生能够基本掌Struts标签的使用,使用应用这些标签来控制页面的显示内容和显示格式。
3.能够简单集成Struts、Hibernate、Spring,使用这三个框架来完成一个简单的在线学习系统的开发。
二、 设备与环境
硬件:多媒体计算机
软件:Windows系列操作系统(含IIS5.0以上版本)、.java运行环境及编译环境、Struts2、Spring、Hibernate、Eclipse、MySQL等。
三、实验内容及要求
1.实验要求
1、完成一个简单在线学习系统,实现学生(教师)登录、学生选课、学习时长的记录、课程信息的录入查询修改、教师评分等功能
2、系统的功能模块设计。要求画出功能模块框图。
3、数据库的设计,要求数据库结构设计合理。
4、应用到的关键技术的详细说明。可附相关的关键程序代码。
5、系统页面设计要求清晰、实用、美观。
2.实验内容
2.1系统背景介绍
用户信息管理系统,主要应用于各个大型系统的子系统。方便的插入、查询、编辑、删除用户信息。有着直观,便利的特点
2.2 需求分析
系统要实现的主要功能有:
- 添加用户信息
- 根据用户名查找用户
- 查询所有用户
- 修改用户信息
- 删除某个用户
2.3 数据库实现
数据库是数据管理的重要技术,是计算机科学的重要分支。由于数据库具有数据结构化,最低冗余度、较高的程序与数据独立性、易于扩充、易于编制应用程序等优点,较大的信息系统都是建立在数据库设计之上。本系统采用My SQL Server 5.7 来作为数据库。
2.3.1 数据库连接方式
本实验是通过用Hibernate来连接My SQL。Hibernate能够访问多种关系数据库,如SQL Server、Oracle和Access等。在访问这些数据库时,只需要在Hibernate的配置文件中指定正确的连接属性值。连接时,hibernate 自动配置,配置文件如下:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/newsdb?useUnicode=true&characterEncoding=UTF-8" />
<property name="username" value="root" />
<property name="password" value="123456" />
</bean>
<!-- 配置sessionFactory ,数据库配置在hibernate.cfg.xml中-->
<!--LocalSessionFactoryBean 加载bean方式 <mapping resource="com/model/User.hbm.xml"/>
AnnotationSessionFactoryBean 加载bean方式 <mapping class="com.model.User"/> ,它主要功能是取消了hbm.xml文件
-->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 配置实体描述文件 -->
<property name="mappingResources">
<list>
<value>com/model/User.hbm.xml</value>
</list>
</property>
数据库地址:mysql://localhost:3306/newsdb
登录名:root
密码:123456
驱动:mysql-5.7.22
2.4.2 数据库具体设计
数据库中有一张user表,字段有id、用户名、密码、用户描述。
列名 数据类型 主键 是否为空 备注
id int Y N 用户ID
username varchar 用户名
userpassword varchar 用户密码
usermessage varchar 用户信息
2.4 系统详细设计
2.4.1 系统结构设计
2.4.2 功能模块设计
(1)添加用户
添加user,如果姓名没有冲突,那么就添加到数据库,如果姓名冲突了就不能添加,返回失败页面。
关键代码:
<form action="add.action" method="get">
UserName:<input type="text" name="user.username"><br />
UserPassword:<input type="password" name="user.userpassword"><br />
UserMessage:<input type="text" name="user.usermessage"><br />
<input type="submit" value="提交"> <input type="reset"
value="重置">
</form>
<action name="add" class="userAction" method="addUser" >
<result name="success">success.jsp</result>
<result name="error">fail.jsp</result>
</action>
public String addUser(){
if(userService.exits(user.getUsername())){
return ERROR;
}
userService.save(user);
return SUCCESS;
}
public boolean exits(String username){
List<User> userList = userDAO.findByUsername(username);
if(userList.size()>0)
return true;
else
return false;
}
public void save(User user){
userDAO.save(user);
}
public void save(User user){
hibernateTemplate.save(user);
}
(2)查找用户
关键代码:
<form action="query.action" method="post">
UserName: <input type="text" name="queryText" value="${searchText}" />
<input type="submit" value="查询" />
</form>
public String queryUser(){
searchText = getParam("queryText");
users = userService.queryUsers(searchText);
return SUCCESS;
}
public List<User> queryUsers(String username){
if(username == null || "".equals(username))
return userDAO.findAllUsers();
else return userDAO.queryByUsername(username);
}
(3)删除和编辑用户
关键代码:
<table width="70%" border="1px" align="center" cellpadding="0"
cellspacing="0">
<thead>
<tr>
<th width="25%">编号</th>
<th width="25%">姓名</th>
<th width="25%">信息</th>
<th width="25%">操作</th>
</tr>
</thead>
<tbody>
<c:forEach var="user" items="${users}">
<tr>
<td>${user.id}</td>
<td>${user.username}</td>
<td>${user.usermessage}</td>
<td> <a href="edit.action?param=0&id=${user.id}">编辑</a>
<a href="delete.action?id=${user.id}">删除</a></td>
</tr>
</c:forEach>
</tbody>
</table>
<action name="delete" class="userAction" method="deleteUser">
<result name="success">success.jsp</result>
<result name="error">fail.jsp</result>
</action>
<action name="edit" class="userAction" method="editUser">
<result name="editUser">editUser.jsp</result>
<result name="success">success.jsp</result>
</action>
public void update(User user){
hibernateTemplate.update(user);
}
public void delete(Integer id){
User user=getUser(id);
hibernateTemplate.delete(user);
}
2.5 Hibernate技术
众所周知,Hibernate映射用生成的主键确定数据在表中的唯一性。
Java中user类属性在数据库user表中的映射为:id->id ; username->username ; userpassword->userpassword ; usermessage->usermessage;
四、实验结果及分析
效果截图:
添加用户:
查询用户:
查询空值:
编辑用户:
删除测试:
体会:
经过做本次javaee大作业,发现自己对Javaee的架构上还不是很熟悉,最后界面做的也很不美观,仅仅完成了一些简单的功能,在同学的帮助下,对hibernate架构有了一定的认识,也对struts有了深刻的认识。更加深刻的认识到了ssh框架的运行机制。