java ee 学生选课管理系统大作业报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
重庆科技学院
《JavaEE企业级开发技术》非标准答案考试试题
题目:学生选课成绩管理系统实现
学生姓名:张XX 学号:2018XXXXXX 学院:智能技术与工程学院专业班级:计科XXX
完成日期:2019年12月30日
成绩(百分制):
授课教师:
目录
一需求分析 (4)
(一)项目设计目标 (4)
(二)功能需求 (4)
二概要设计 (7)
(一)数据库设计 (7)
(二)数据库实施 (9)
三功能实现 (13)
(一)模块设计 (13)
(二)框架设计 (14)
(三)编程实现 (14)
(四)模块设计与实现 (41)
四总结 (47)
一需求分析
(一)项目设计目标
本系统针对学生选课成绩进行管理,通过本系统对学生选课成绩管理进行有效管理。
根据对学生选课管理系统的要求,制定简易学生管理系统。
因为最终使用的用户都是普通的老师学生,并不具全都备良好地计算机使用水平,所以本系统的界面比较简洁、美观,使用也比较方便,操作几次就可以熟悉使用方式,不需要针对最终用户进行使用培训。
本系统可以达到以下目标:
(1)、灵活的人机交互界面,操作简单方便、界面简洁美观;
(2)、可以通过菜单、导航栏灵活的操作;
(3)、对学生选课成绩管理功能;
(4)、可以实现对信息的查询;
(5)、可以修改管理员密码;
(6)、系统最大限度的实现了易维护性和易操作性;
(7)、系统运行稳定、安全可靠。
(二)功能需求
选课与成绩管理功能模块表:
表1.2.9
二概要设计
(一)数据库设计
1、构成系统的实体
2、系统总体E-R图
3、E-R图转化成物理模型
4、学生选课管理系统的数据字典
(二)数据库实施
1、数据库脚本实现
drop table if exists admin;
drop index Relationship_7_FK on course; drop index Relationship_4_FK on course; drop index Relationship_2_FK on course; drop table if exists course;
drop index Relationship_6_FK on grades; drop table if exists grades;
drop index Relationship_5_FK on student;
drop index Relationship_3_FK on student;
drop index Relationship_1_FK on student;
drop table if exists student;
drop table if exists teacher;
/*=========================================================*/ /* Table: admin */
/*==========================================================*/ create table admin
(
adminId varchar(20) not null, adminPassword varchar(20),
adminLimit varchar(2),
primary key (adminId)
)
type = InnoDB;
/*==========================================================*/ /* Table: course */
/*==========================================================*/ create table course
(
couId varchar(20) not null, adminId varchar(20),
stuId varchar(20),
teaId varchar(20),
couName varchar(20),
couTime varchar(20),
couPlace varchar(20),
couItem varchar(20),
primary key (couId)
)
type = InnoDB;
/*==========================================================*/ /* Index: Relationship_2_FK */
/*=========================================================*/ create index Relationship_2_FK on course
(
adminId
);
/*=========================================================*/ /* Index: Relationship_4_FK */
/*==========================================================*/
create index Relationship_4_FK on course
(
stuId
);
/*==========================================================*/ /* Index: Relationship_7_FK */
/*==========================================================*/ create index Relationship_7_FK on course
(
teaId
);
/*========================================================*/
/* Table: grades */
/*==========================================================*/ create table grades
(
gradeCouId varchar(20) not null, teaId varchar(20),
gradeCouName varchar(20),
gradeCouTime varchar(20),
gradeCouPlace varchar(20),
gradeTeacherId varchar(20),
gradeCouItem varchar(20),
gradeStuId varchar(20),
gradeTest float(3),
primary key (gradeCouId)
)
type = InnoDB;
/*==========================================================*/ /* Index: Relationship_6_FK */
/*==========================================================*/ create index Relationship_6_FK on grades
(
teaId
);
/*=========================================================*/ /* Table: student */
/*========================================================*/ create table student
(
stuId varchar(20) not null, adminId varchar(20),
teaId varchar(20),
gradeCouId varchar(20),
stuName varchar(20),
stuSex varchar(2),
stuBirthday varchar(20),
stuAddress varchar(40),
stuMajor varchar(20),
stuPassword varchar(20),
primary key (stuId)
)
type = InnoDB;
/*=========================================================*/ /* Index: Relationship_1_FK */
/*=========================================================*/ create index Relationship_1_FK on student
(
adminId
);
/*=======================================================*/
/* Index: Relationship_3_FK */
/*======================================================*/ create index Relationship_3_FK on student
(
teaId
);
/*======================================================*/
/* Index: Relationship_5_FK */
/*========================================================*/ create index Relationship_5_FK on student
(
gradeCouId
);
/*=======================================================*/
/* Table: teacher */
/*======================================================*/ create table teacher
(
teaId varchar(20) not null,
teaName varchar(20),
teaSex varchar(2),
teaBirthday varchar(20),
teaAddress varchar(40),
teaDep varchar(20),
teaPassword varchar(20),
primary key (teaId)
)
type = InnoDB;
alter table course add constraint FK_Relationship_2 foreign key (adminId) references admin (adminId) on delete restrict on update restrict;
alter table course add constraint FK_Relationship_4 foreign key (stuId)
references student (stuId) on delete restrict on update restrict;
alter table course add constraint FK_Relationship_7 foreign key (teaId)
references teacher (teaId) on delete restrict on update restrict;
alter table grades add constraint FK_Relationship_6 foreign key (teaId)
references teacher (teaId) on delete restrict on update restrict;
alter table student add constraint FK_Relationship_1 foreign key (adminId) references admin (adminId) on delete restrict on update restrict;
alter table student add constraint FK_Relationship_3 foreign key (teaId)
references teacher (teaId) on delete restrict on update restrict;
alter table student add constraint FK_Relationship_5 foreign key (gradeCouId) references grades (gradeCouId) on delete restrict on update restrict;
三功能实现
(一)模块设计
本系统一共有三大模块,管理员模块、教师模块、学生模块。
其中管理员模块包括教师信息管理模块、学生信息管理模块、课程信息管理模块。
教师模块包括成绩管理模块。
学生模块包括课程选择模块、课表查询模块、成绩查询模块
1)登录模块
①登录模块:根据登陆者帐号判断其身份是管理员、教师还是学生
②注销模块:注销会清除当前登录者的session信息,并退出系统
2)管理员模块
管理员可以对教师信息、学生信息、课程信息进行增删改查。
3)学生模块
学生可以进行课程选择、课表查询、成绩查询。
4)教师模块
教师可以对选择自己课程的学生进行查询已经成绩的修改
(二)框架设计
根据SSM的编程设计,首先进行前端页面搭建好,然后在根据数据库的设计中的实体,建立相应的实体类,创建实体MODEL文件,在建DAO文件,创建BIZ业务逻辑的实现类,在建立CONTROLLER文件,从而完成整个项目的框架代码。
(三)编程实现
1、数据库连接
(1)、db.properties文件,数据库连接的驱动器和地址。
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test
ername=root
jdbc.password=
(2)、applicationContext.xml文件,事务管理传播行为以及切面的配置。
在事务的传播行为中,只有查询方法的事务为只读,添加、修改和删除的操作必须纳入事务管理。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="/schema/beans"
xmlns:xsi="/2001/XMLSchema-instance"
xmlns:context="/schema/context"
xmlns:aop="/schema/aop"
xmlns:tx="/schema/tx"
xsi:schemaLocation="/schema/beans
/schema/beans/spring-beans.xsd
/schema/context
/schema/context/spring-context-4.3.xsd
/schema/aop
/schema/aop/spring-aop-4.3.xsd
/schema/tx
/schema/tx/spring-tx-4.3.xsd"
>
<!-- 扫描除controller之外的包-->
<context:component-scan base-package="com.cqust">
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Controller" /> </context:component-scan>
<!-- 扫描jdbc连接信息的properties文件-->
<context:property-placeholder location="classpath:db.properties" />
<!-- 数据源-->
<bean id="dataSource"
class="mons.dbcp2.BasicDataSource">
<property name="driverClassName" value="${jdbc.driver}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${ername}"></property>
<property name="password" value="${jdbc.password}"></property> </bean>
<!-- 事务管理-->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean>
<!-- 整合mybatis -->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 配置数据源-->
<property name="dataSource" ref="dataSource"/>
<!-- 配置mybatis的配置文件位置-->
<property name="configLocation" value="classpath:mybatis-config.xml"/> </bean>
<!-- 配置扫描mybatis接口的实现,将其加入到ioc容器中-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.cqust.mapper"></property> </bean>
<!-- <context:component-scan base-package="com.itheima.service"/> -->
<!-- 配置sqlSession -->
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactoryBean"></constructor-arg>
<constructor-arg name="executorType" value="BATCH"></constructor-arg> </bean>
<!-- 配置事务切入点-->
<aop:config>
<aop:pointcut
expression="execution(* com.cqust.service..*(..))" id="txPointCut" /> <aop:advisor advice-ref="txAdvice"
pointcut-ref="txPointCut" />
</aop:config>
<!-- 配置事务属性-->
<tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes>
<tx:method name="*" />
<tx:method name="get*" read-only="true" />
<tx:method name="find*" read-only="true" />
</tx:attributes>
</tx:advice>
</beans>
(3)Mybatis.xml配置文件。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-////DTD Config 3.0//EN"
"/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<!-- 驼峰式命名规则-->
<setting name="mapUnderscoreToCamelCase" value="true"/> </settings>
<typeAliases>
<package name="com.cqust.model"/>
</typeAliases>
<mappers>
<mapper resource="com/cqust/mapper/AdminCourseMapper.xml"/>
<mapper resource="com/cqust/mapper/GradesMapper.xml"/> </mappers>
</configuration>
2、设计实体类
(1)、管理员实体类
package com.cqust.model;
public class Admin {
private String adminId;//管理员ID
private String adminPassword;//管理员密码
private String adminLimit;//管理员权限
public String getAdminId() {
return adminId;
}
public void setAdminId(String adminId) {
this.adminId = adminId;
}
public String getAdminPassword() {
return adminPassword;
}
public void setAdminPassword(String adminPassword) { this.adminPassword = adminPassword;
}
public String getAdminLimit() {
return adminLimit;
}
public void setAdminLimit(String adminLimit) {
this.adminLimit = adminLimit;
}
}
(2)、课程实体类。
package com.cqust.model;
public class Course {
private String couId;//课程ID
private String couName;//课程号
private String couTime;//课程时间
private String couPlace;//课程地点
private String couItem;//课程的学期
private String couTeacherId;//课程对应的老师号
private Teacher teacher;//课程对应的老师
private String stuId;//课程对应的学生号
private String TFchoose;//课程是否被选择
public String getTFchoose() {
return TFchoose;
}
public void setTFchoose(String tFchoose) {
TFchoose = tFchoose;
}
public String getStuId() {
return stuId;
}
public void setStuId(String stuId) {
this.stuId = stuId;
}
public String getCouId() {
return couId;
}
public void setCouId(String couId) {
this.couId = couId;
}
public String getCouName() {
return couName;
}
public void setCouName(String couName) {
this.couName = couName;
}
public String getCouTime() {
return couTime;
}
public void setCouTime(String couTime) {
this.couTime = couTime;
}
public String getCouPlace() {
return couPlace;
}
public void setCouPlace(String couPlace) {
this.couPlace = couPlace;
}
public String getCouTeacherId() {
return couTeacherId;
}
public void setCouTeacherId(String couTeacherId) { this.couTeacherId = couTeacherId;
}
public Teacher getTeacher() {
return teacher;
}
public void setTeacher(Teacher teacher) {
this.teacher = teacher;
}
public String getCouItem() {
return couItem;
}
public void setCouItem(String couItem) {
this.couItem = couItem;
}
}
(3)成绩实体类。
package com.cqust.model;
public class Grades {
private float gradeTest;//成绩
private Course course;//课程
private Teacher teacher;//老师
private Student student;//学生
private String gradeCouId;//成绩对应的课程号private String gradeCouName;//成绩对应的课程名字private String gradeCouTime;//课程时间
private String gradeCouPlace;//上课时间
private String gradeTeacherId;//任课老师
private String gradeCouItem;//学期
private String gradeStuId;//学生号
public String getGradeCouId() {
return gradeCouId;
}
public void setGradeCouId(String gradeCouId) { this.gradeCouId = gradeCouId;
}
public String getGradeCouName() {
return gradeCouName;
}
public void setGradeCouName(String gradeCouName) { this.gradeCouName = gradeCouName;
}
public String getGradeCouTime() {
return gradeCouTime;
}
public void setGradeCouTime(String gradeCouTime) { this.gradeCouTime = gradeCouTime;
}
public String getGradeCouPlace() {
return gradeCouPlace;
}
public void setGradeCouPlace(String gradeCouPlace) { this.gradeCouPlace = gradeCouPlace;
}
public String getGradeTeacherId() {
return gradeTeacherId;
}
public void setGradeTeacherId(String gradeTeacherId) { this.gradeTeacherId = gradeTeacherId;
}
public String getGradeCouItem() {
return gradeCouItem;
}
public void setGradeCouItem(String gradeCouItem) {
this.gradeCouItem = gradeCouItem;
}
public String getGradeStuId() {
return gradeStuId;
}
public void setGradeStuId(String gradeStuId) { this.gradeStuId = gradeStuId;
}
public float getGradeTest() {
return gradeTest;
}
public void setGradeTest(float gradeTest) { this.gradeTest = gradeTest;
}
public Course getCourse() {
return course;
}
public void setCourse(Course course) {
this.course = course;
}
public Teacher getTeacher() {
return teacher;
}
public void setTeacher(Teacher teacher) {
this.teacher = teacher;
}
public Student getStudent() {
return student;
}
public void setStudent(Student student) {
this.student = student;
}
}
(4)学生类。
package com.cqust.model;
public class Student {
private String stuId;//学号
private String stuName;//名字
private String stuSex;//性别
private String stuBirthday;//生日
private String stuAddress;//生源地
private String stuMajor;//学了哪些课程
private String stuPassword;//密码
public String getStuId() {
return stuId;
}
public void setStuId(String stuId) {
this.stuId = stuId;
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public String getStuSex() {
return stuSex;
}
public void setStuSex(String stuSex) {
this.stuSex = stuSex;
}
public String getStuBirthday() {
return stuBirthday;
}
public void setStuBirthday(String stuBirthday) { this.stuBirthday = stuBirthday;
}
public String getStuAddress() {
return stuAddress;
}
public void setStuAddress(String stuAddress) { this.stuAddress = stuAddress;
}
public String getStuMajor() {
return stuMajor;
}
public void setStuMajor(String stuMajor) {
this.stuMajor = stuMajor;
}
public String getStuPassword() {
return stuPassword;
}
public void setStuPassword(String stuPassword) { this.stuPassword = stuPassword;
}
}
(5)教师实体类
package com.cqust.model;
public class Teacher {
private String teaId;//教师号
private String teaName;//教师名字
private String teaSex;//教师性别
private String teaBirthday;//教师生日
private String teaAddress;//教师地址
private String teaDep;//教师院系
private String teaPassword;//教师密码
public String getTeaId() {
return teaId;
}
public void setTeaId(String teaId) {
this.teaId = teaId;
}
public String getTeaName() {
return teaName;
}
public void setTeaName(String teaName) {
this.teaName = teaName;
}
public String getTeaSex() {
return teaSex;
}
public void setTeaSex(String teaSex) {
this.teaSex = teaSex;
}
public String getTeaBirthday() {
return teaBirthday;
}
public void setTeaBirthday(String teaBirthday) { this.teaBirthday = teaBirthday;
}
public String getTeaAddress() {
return teaAddress;
}
public void setTeaAddress(String teaAddress) { this.teaAddress = teaAddress;
}
public String getTeaDep() {
return teaDep;
}
public void setTeaDep(String teaDep) {
this.teaDep = teaDep;
}
public String getTeaPassword() {
return teaPassword;
}
public void setTeaPassword(String teaPassword) {
this.teaPassword = teaPassword;
}
}
3、设计DAO对象
(1)管理员的Dao层接口。
package com.cqust.mapper;
import org.apache.ibatis.annotations.Param;
import com.cqust.model.*;
public interface AdminMapper {
//根据ID查询管理员信息
public Admin findAdminById(String adminId);
//修改管理员密码信息
public void adminUpdate(Admin admin);
//按照管理员账号登录
public Admin findAdminByIdAndPwd(@Param("userName")String userName,@Param("password")String password);
}
(2) AdminMapper.xml文件写相应的SQL语句。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-////DTD Mapper 3.0//EN" "/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cqust.mapper.AdminMapper">
<!-- 按照ID查询管理员信息-->
<select id="findAdminById" parameterType="String" resultType="Admin"> select * from tb_admin where adminId=#{adminId}
</select>
<!-- 修改学生信息-->
<update id="adminUpdate" parameterType="Admin">
update tb_admin set adminPassword=#{adminPassword}
where adminId=#{adminId}
</update>
<!-- 管理员进行登录验证-->
<select id="findAdminByIdAndPwd" resultType="Admin">
select * from tb_admin
where adminId=#{userName} and adminPassword=#{password};
</select>
</mapper>
(3)教师管理DAO接口。
package com.cqust.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.cqust.model.*;
public interface AdminTeacherMapper {
//添加教师信息
public void teaAdd(Teacher tea);
//按照姓名查找教师信息
public List<Teacher> findTeaByName(String name);
//按照学号查询教师信息
public Teacher findTeaById(String id);
//查询所有教师信息
public List<Teacher> findTeaByAll();
//修改教师信息
public void teaUpdate(Teacher tea);
//删除教师信息
public void teaDel(String id);
//按照学号查询教师信息
public Teacher findTeaByIdAndPwd(@Param("userName")String userName,@Param("password")String password);
}
(5)教师DAO的SQL实现语句。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-////DTD Mapper 3.0//EN" "/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cqust.mapper.AdminTeacherMapper">
<!-- 添加教师信息-->
<insert id="teaAdd" parameterType="Teacher">
insert into tb_teacher(teaId,teaName,teaSex,teaBirthday,teaAddress,teaDep,
teaPassword) V ALUES(#{teaId},#{teaName},#{teaSex},#{teaBirthday},
#{teaAddress},#{teaDep},#{teaPassword})
</insert>
<!-- 删除教师信息-->
<delete id="teaDel" parameterType="String">
delete from tb_teacher where teaId=#{teaId}
</delete>
<!-- 修改教师信息-->
<update id="teaUpdate" parameterType="Teacher">
update tb_teacher set teaName=#{teaName},teaSex=#{teaSex},teaBirthday=#{teaBirthday},
teaAddress=#{teaAddress},teaDep=#{teaDep},teaPassword=#{teaPassword}
where teaId=#{teaId}
</update>
<!-- 根据姓名查询教师信息-->
<select id="findTeaByName" parameterType="String" resultType="Teacher"> select * from tb_teacher where teaName like concat('%',#{teaName},'%') </select>
<!-- 根据姓名查询学生信息-->
<select id="findTeaById" parameterType="String" resultType="Teacher"> select * from tb_teacher where teaId=#{teaId}
</select>
<!-- 查询所有学生信息-->
<select id="findTeaByAll" parameterType="String" resultType="Teacher"> select * from tb_teacher;
</select>
<!-- 教师表进行登录验证-->
<select id="findTeaByIdAndPwd" resultType="Teacher">
select * from tb_teacher
where teaId=#{userName} and teaPassword=#{password};
</select>
</mapper>
(6)DAO成学生类实体的接口。
package com.cqust.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.cqust.model.*;
public interface AdminStudentMapper {
//添加学生信息
public void stuAdd(Student stu);
//按照姓名查找学生信息
public List<Student> findStuByName(String name);
//按照学号查询学生信息
public Student findStuById(String id);
//查询所有学生信息
public List<Student> findStuByAll();
//修改学生信息
public void stuUpdate(Student stu);
//删除学生信息
public void stuDel(String id);
//按照学号查询学生信息
public Student findStuByIdAndPwd(@Param("userName")String userName,@Param("password")String password);
}
(7)DAO成学生类实体的接口的SQL查询语句。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-////DTD Mapper 3.0//EN" "/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cqust.mapper.AdminStudentMapper">
<!-- 添加学生信息-->
<insert id="stuAdd" parameterType="Student">
insert into tb_student(stuId,stuName,stuSex,stuBirthday,stuAddress,stuMajor,
stuPassword) V ALUES(#{stuId},#{stuName},#{stuSex},#{stuBirthday},
#{stuAddress},#{stuMajor},#{stuPassword})
</insert>
<!-- 删除学生信息-->
<delete id="stuDel" parameterType="String">
delete from tb_student where stuId=#{stuId}
</delete>
<!-- 修改学生信息-->
<update id="stuUpdate" parameterType="Student">
update tb_student set stuName=#{stuName},stuSex=#{stuSex},stuBirthday=#{stuBirthday}, stuAddress=#{stuAddress},stuMajor=#{stuMajor},stuPassword=#{stuPassword} where stuId=#{stuId}
</update>
<!-- 根据姓名查询学生信息-->
<select id="findStuByName" parameterType="String" resultType="Student"> select * from tb_student where stuName like concat('%',#{stuName},'%') </select>
<!-- 根据学号查询学生信息-->
<select id="findStuById" parameterType="String" resultType="Student"> select * from tb_student where stuId=#{stuId}
</select>
<!-- 查询所有学生信息-->
<select id="findStuByAll" parameterType="String" resultType="Student"> select * from tb_student;
</select>
<!-- 学生表进行登录验证-->
<select id="findStuByIdAndPwd" resultType="Student">
select * from tb_student
where stuId=#{userName} and stuPassword=#{password};
</select>
</mapper>
4、实现BIZ业务逻辑
(1)管理员实现类
package com.cqust.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.cqust.model.Admin;
import com.cqust.mapper.AdminMapper;
import com.cqust.service.AdminService;
@Service("adminService")
public class AdminServiceImpl implements AdminService {
@Autowired
private AdminMapper adminMapper;
@Override
public void adminUpdate(Admin admin) {
// TODO Auto-generated method stub
adminMapper.adminUpdate(admin);
}
@Override
public Admin findAdminByIdAndPwd(String userName, String password) { // TODO Auto-generated method stub
return adminMapper.findAdminByIdAndPwd(userName, password);
}
@Override
public Admin findAdminById(String adminId) {
// TODO Auto-generated method stub
return adminMapper.findAdminById(adminId);
}
}
5、编写Controller配置文件,完成跳转
(1)、管理员CONTROLLER配置文件。
package com.cqust.controller;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import com.cqust.model.Admin;
import com.cqust.model.Course;
import com.cqust.model.Student;
import com.cqust.model.Teacher;
import com.cqust.service.AdminCourseService;
import com.cqust.service.AdminService;
import com.cqust.service.AdminStudentService;
import com.cqust.service.AdminTeacherService;
@Controller
public class AdminController {
@Autowired
private AdminStudentService adminStuService;
@Autowired
private AdminTeacherService adminTeaService;
@Autowired
private AdminCourseService adminCouService;
@Autowired
private AdminService adminService;
/**
* 登录操作
*/
@RequestMapping(value="/toReLogin",method=RequestMethod.GET)
public String toLogin() {
return "login";
}
@RequestMapping(value="/login1",method=RequestMethod.POST)
public String Login(@RequestParam("userName")String userName,@RequestParam("password")String password,
Model model,HttpSession session) {
Admin admin=adminService.findAdminByIdAndPwd(userName, password);
Student student=adminStuService.findStuByIdAndPwd(userName, password);
Teacher teacher=adminTeaService.findTeaByIdAndPwd(userName, password);
if(admin!=null) {
session.setAttribute("ADMIN_SESSION", admin);
return "redirect:/toAdminManage";
}
else {
if(teacher!=null) {
session.setAttribute("TEACHER_SESSION", teacher);
return "redirect:/toTeacherManage";
}
else {
if(student!=null) {
session.setAttribute("STUDENT_SESSION", student);
return "redirect:/toStudentManage";
}
model.addAttribute("error","用户名或密码错误");
return "login";
}
}
}
@RequestMapping(value="/toAdminManage")
public String toAdminManage() {
return "admin_index";
}
/**
* 退出登录
*/
@RequestMapping(value="/logout")
public String logout(HttpSession session){
session.invalidate();
return "redirect:/toReLogin";
}
/**
* 对学生进行增删改查
*/
//增加学生信息
@RequestMapping(value="/toStuAdd")
public String toStuAdd() {
return "admin_student_add";
}
@RequestMapping(value="/stuAdd")
public String StuAdd(Student stu,Model model){
if(adminStuService.findStuById(stu.getStuId())==null) {
adminStuService.stuAdd(stu);
return "redirect:/getAllStudent";
}
else {
model.addAttribute("msg","你所添加的该学号已存在");
return "admin_student_add";
}
}
//学生管理页面显示所有信息
@RequestMapping(value="/getAllStudent")
public String getAllStudent(Model model) {
List<Student> list = adminStuService.findStuByAll();
model.addAttribute("stuList", list);
return "admin_student";
}
//按照姓名查询学生信息
@RequestMapping(value="/stuSearch")
public String findStuByName(@RequestParam("stuName")String stuName,Model model) {。