[졸업과제] java+mysql 기반 학생정보관리시스템 소스코드 (테스트 통과)

목차

1. 소개

2. 주요 기술

3. 시스템의 기본 기능 요구 사항

3.1 시스템 구조

3.2 데이터베이스 요구 사항 분석

3.3 시스템 목표

4. 데이터베이스 테이블 설계

5. 시스템의 세부 설계 및 구현

5.1 시스템 설계 및 구현

5.1.1 로그인 인터페이스 구현

5.1.2 시스템 메인 인터페이스

 5.1.3 학생정보관리 구현

5.1.4 클래스 정보 관리

5.1.5 성적정보 관리

5.1.6 데이터 사전 카테고리 관리

5.1.8 시스템 관련 설정

6. 소스 코드 획득:


 소스코드 획득 : java+mysql 기반 학생정보관리시스템 소스코드(테스트 실행)

1. 소개

학생 정보 관리 시스템은 교육 단위에서 없어서는 안될 부분입니다. 완벽하게 기능하고 사용하기 쉬운 정보 관리 시스템은 관련 교직원의 업무량을 효과적으로 줄일 수 있을 뿐만 아니라 그 내용은 학교 의사 결정자와 관리자에게 매우 중요합니다. 따라서 학생정보관리시스템은 이용자에게 충분한 정보와 빠른 질의 수단을 제공할 수 있어야 한다. 그러나 사람들은 파일 아카이브, 통계 및 쿼리 데이터를 관리하기 위해 항상 전통적인 수동 방법을 사용했습니다.이 관리 방법에는 낮은 효율성, 낮은 기밀성 및 많은 노동 낭비와 같은 많은 단점이 있습니다. 파일은 시간이 지남에 따라 생성되고 데이터는 검색, 업데이트 및 유지 관리에 많은 어려움을 가져옵니다. 과학기술의 부단한 발전에 따라 컴퓨터과학은 날로 성숙해지고 그 강력한 기능은 사람들에게 깊이 인식되었으며 인류사회의 여러 분야에 진입하여 점점 더 중요한 역할을 하고 있다. 

    컴퓨터 응용 프로그램의 일부로 컴퓨터를 사용하여 각종 학교 정보를 관리하는 것은 수동 관리와 비교할 수 없는 장점이 있습니다.예: 빠른 검색, 편리한 쿼리, 고효율, 우수한 신뢰성, 대용량 저장 용량, 우수한 기밀성, 긴 수명 길고 저렴한 비용. 이러한 장점은 학교 정보 관리의 효율성을 크게 향상시킬 수 있으며 단위가 과학적으로 공식적으로 관리되고 세계와 일치하는 중요한 조건이기도 합니다.  

2. 주요 기술

기술 이름

효과
자바 + 스트럿츠2 백엔드 프레임워크
JSP 프런트엔드 프레임워크
MySQL 데이터 베이스

3. 시스템의 기본 기능 요구 사항

시스템에는 일종의 시스템 관리자 권한이 있으며, 다음으로 이 권한에 대한 기능적 구조를 설명한다.

3.1 시스템 구조

주요 기능은 다음과 같습니다.

시스템관리자 : 학생정보관리, 학급정보관리, 성적정보관리, 시스템관리(데이터사전관리, 데이터사전 카테고리관리, 비밀번호변경 포함)

시스템 비즈니스 흐름도:

 

3.2 데이터베이스 요구 사항 분석

위 업무 흐름도에 관련된 내용에 따라 데이터베이스에 설계할 테이블은 학생 테이블, 클래스 테이블, 등급 테이블, 데이터 사전 카테고리 테이블, 데이터 사전 테이블, 관리 테이블입니다.

3.3 시스템 목표

이 주제 선택 시스템의 설계는 주로 다음 목표를 달성합니다.

  1. .Humanized 디자인: 시스템 인터페이스는 친숙하고 작업은 간단합니다.

.학생정보, 학급정보, 성적정보 관리 실현

4. 데이터베이스 테이블 설계

(1) 관리자 정보 양식

분야 명

데이터 유형

길이

기본 키 여부

설명하다

사용자 ID

정수

자동 번호 매기기

사용자 이름

varchar

20

사용자 이름

비밀번호

varchar

20

비밀번호

(2) 학생 테이블

분야 명

데이터 유형

길이

기본 키 여부

설명하다

학생 아이디

varchar

40

UUID

스투노

varchar

20

학생 아이디

stuName

varchar

20

학생 이름

스투섹스

varchar

10

학생 성별

stuBirthday

날짜

생일

stuRxsj

날짜

입장시간

기절

varchar

20

국적

stuZzmm

varchar

20

정치적 지위

클래스 ID

정수

11

수업 번호

stuDesc

텍스트

주목

스투픽

varchar

20

학생 사진

  1. . 클래스 테이블

분야 명

데이터 유형

길이

기본 키 여부

설명하다

클래스 ID

정수

11

자동 번호 매기기

클래스 이름

varchar

20

클래스 이름

gradeId

정수

11

등급 외래 키

classDesc

텍스트

수업 설명

  1. .등급표

분야 명

데이터 유형

길이

기본 키 여부

설명하다

gradeId

정수

11

자동 번호 매기기

gradeName

바르차르

20

등급명

gradeDesc

텍스트

성적표

  1. . 데이터 사전 테이블

분야 명

데이터 유형

길이

기본 키 여부

설명하다

ID

정수

11

자동 번호 매기기

ddTypeId

정수

11

데이터 사전 클래스

dd값

varchar

20

데이터 사전 값

ddDesc

텍스트

주목

  1. . 데이터 사전 카테고리 테이블

분야 명

데이터 유형

길이

기본 키 여부

설명하다

ddTypeId

정수

11

자동 번호 매기기

ddTypeName

varchar

20

데이터 사전 클래스

ddTypeDesc

텍스트

주목

5. 시스템의 세부 설계 및 구현

5.1 시스템 설계 및 구현

5.1.1 로그인 인터페이스 구현

 렌더링:

관련 지침:

사용자는 시스템 로그인 인터페이스에 들어가고 사용자 이름, 암호 및 확인 코드를 입력하고 입력이 정확하면 시스템의 기본 인터페이스에 들어갑니다.

키 코드 구현:

public User login(Connection con,User user)throws Exception{
		User resultUser=null;
		String sql="select * from t_user where userName=? and password=?";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1, user.getUserName());
		pstmt.setString(2, user.getPassword());
		ResultSet rs=pstmt.executeQuery();
		if(rs.next()){
			resultUser=new User();
			resultUser.setUserId(rs.getInt("userId"));
			resultUser.setUserName(rs.getString("userName"));
			resultUser.setPassword(rs.getString("password"));
		}
		return resultUser;
	}

5.1.2 시스템 메인 인터페이스

관련 지침:

 사용자는 올바른 사용자 이름, 비밀번호 및 확인 코드를 입력하고 로그인을 클릭하고 배경 확인에 성공한 다음 주로 학생 정보 관리, 수업 정보 관리, 성적 정보의 네 가지 기능을 포함하는 시스템의 기본 인터페이스에 들어갑니다. 관리 및 시스템 관리;

키 코드 구현:

공개 페이지 head.jsp

<div class="row-fluid">
	<div class="span12">
		<div class="head">
			<div class="headLeft">
				<img src="${pageContext.request.contextPath}/images/logo.png"/>
			</div>
			<div class="headRight">
				欢迎管理员:<font color="red">${currentUser.userName }</font>&nbsp;&nbsp;&nbsp;<font id="today" class="currentDateTime"></font>
			</div>
		</div>
	</div>
</div>

공개 페이지 menu.jsp

<div class="row-fluid">
	<div class="span12">
		<div class="navbar">
		  <div class="navbar-inner">
		    <a class="brand" href="main.jsp">首页</a>
		    <ul class="nav">
		    	<li class="dropdown">
                       <a href="#" class="dropdown-toggle" data-toggle="dropdown">学生信息管理 <b class="caret"></b></a>
                       <ul class="dropdown-menu">
                         <li><a href="student!preSave">学生信息添加</a></li>
                         <li><a href="student!list">学生信息维护</a></li>
                       </ul>
                   </li>
		      	<li class="dropdown">
                       <a href="#" class="dropdown-toggle" data-toggle="dropdown">班级信息管理 <b class="caret"></b></a>
                       <ul class="dropdown-menu">
                         <li><a href="class!preSave">班级信息添加</a></li>
                         <li><a href="class!list">班级信息维护</a></li>
                       </ul>
                   </li>
                   <li class="dropdown">
                       <a href="#" class="dropdown-toggle" data-toggle="dropdown">年级信息管理 <b class="caret"></b></a>
                       <ul class="dropdown-menu">
                         <li><a href="grade!preSave">年级信息添加</a></li>
                         <li><a href="grade!list">年级信息维护</a></li>
                       </ul>
                   </li>
		        <li class="dropdown">
                       <a href="#" class="dropdown-toggle" data-toggle="dropdown">系统管理 <b class="caret"></b></a>
                       <ul class="dropdown-menu">
                         <li><a href="dataDic!list">数据字典维护</a></li>
                         <li><a href="dataDicType!list">数据字典类别维护</a></li>
                         <li><a href="user!preSave">修改密码</a></li>
                         <li class="divider"></li>
                         <li><a href="javascript:logOut()">退出系统</a></li>
                       </ul>
                   </li>
		    </ul>

공개 페이지 foot.jsp

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<div class="row-fluid" style="margin-top: 30px;">
	<div class="span12">
		<div class="foot">Copyright © 2013-2014 XXX 版权所有</div>
	</div>
</div>

 5.1.3 학생정보관리 구현

 추가할 학생 정보:

 학생 정보 수정:

 학생 정보 보기:

 학생 정보 삭제:

관련 지침:

 학생 정보 유지 모듈은 위의 기능을 포함합니다: 학생 정보 표시, 학생 정보 조회, 학생 정보 추가, 수정, 삭제;

키 코드 구현:

  학생 정보 문의:

public List<Student> studentList(Connection con,Student s_student,PageBean pageBean)throws Exception{
		List<Student> studentList=new ArrayList<Student>();
		...此处省略sql拼接代码
		if(pageBean!=null){
			sb.append(" limit "+pageBean.getStart()+","+pageBean.getPageSize());
		}
		System.out.println(sb.toString());
		PreparedStatement pstmt=con.prepareStatement(sb.toString());
		ResultSet rs=pstmt.executeQuery();
		while(rs.next()){
			Student student=new Student();
			student.setStudentId(rs.getString("studentId"));
			student.setStuNo(rs.getString("stuNo"));
			student.setStuName(rs.getString("stuName"));
			student.setStuSex(rs.getString("stuSex"));
			student.setStuBirthday(DateUtil.formatString(rs.getString("stuBirthday"),"yyyy-MM-dd"));
			student.setStuRxsj(DateUtil.formatString(rs.getString("stuRxsj"),"yyyy-MM-dd"));
			student.setStuNation(rs.getString("stuNation"));
			student.setStuZzmm(rs.getString("stuZzmm"));
			student.setClassId(rs.getInt("classId"));
			student.setClassName(rs.getString("className"));
			student.setStuDesc(rs.getString("stuDesc"));
			student.setStuPic(rs.getString("stuPic"));
			student.setGradeId(rs.getInt("gradeId"));
			student.setGradeName(rs.getString("gradeName"));
			studentList.add(student);
		}
		return studentList;
	}

추가할 학생 정보:

public int studentAdd(Connection con,Student student)throws Exception{
		String sql="insert into t_student values(?,?,?,?,?,?,?,?,?,?,?)";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1, UUIDUtil.getUUID());
		pstmt.setString(2, student.getStuNo());
		pstmt.setString(3, student.getStuName());
		pstmt.setString(4, student.getStuSex());
		pstmt.setString(5, DateUtil.formatDate(student.getStuBirthday(), "yyyy-MM-dd"));
		pstmt.setString(6, DateUtil.formatDate(student.getStuRxsj(), "yyyy-MM-dd"));
		pstmt.setString(7, student.getStuNation());
		pstmt.setString(8, student.getStuZzmm());
		pstmt.setInt(9, student.getClassId());
		pstmt.setString(10, student.getStuDesc());
		pstmt.setString(11, student.getStuPic());
		return pstmt.executeUpdate();
	}

학생 정보 수정:

public int studentUpdate(Connection con,Student student)throws Exception{
		String sql="update t_student set stuNo=?,stuName=?,stuSex=?,stuBirthday=?,stuRxsj=?,stuNation=?,stuZzmm=?,classId=?,stuDesc=?,stuPic=? where studentId=?";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1, student.getStuNo());
		pstmt.setString(2, student.getStuName());
		pstmt.setString(3, student.getStuSex());
		pstmt.setString(4, DateUtil.formatDate(student.getStuBirthday(), "yyyy-MM-dd"));
		pstmt.setString(5, DateUtil.formatDate(student.getStuRxsj(), "yyyy-MM-dd"));
		pstmt.setString(6, student.getStuNation());
		pstmt.setString(7, student.getStuZzmm());
		pstmt.setInt(8, student.getClassId());
		pstmt.setString(9, student.getStuDesc());
		pstmt.setString(10, student.getStuPic());
		pstmt.setString(11, student.getStudentId());
		return pstmt.executeUpdate();
	}

학생 정보 삭제:

public int studentDelete(Connection con,String studentId)throws Exception{
		String sql="delete from t_student where studentId=?";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1, studentId);
		return pstmt.executeUpdate();
	}

학생 정보 보기:

public Student getStudentById(Connection con,String studentId)throws Exception{
		String sql="select * from t_student t1,t_class t2,t_grade t3 where t1.classId=t2.classId and t2.gradeId=t3.gradeId and t1.studentId=?";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1, studentId);
		ResultSet rs=pstmt.executeQuery();
		Student student=null;
		while(rs.next()){
			student=new Student();
			student.setStudentId(rs.getString("studentId"));
			student.setStuNo(rs.getString("stuNo"));
			student.setStuName(rs.getString("stuName"));
			student.setStuSex(rs.getString("stuSex"));
			student.setStuBirthday(DateUtil.formatString(rs.getString("stuBirthday"),"yyyy-MM-dd"));
			student.setStuRxsj(DateUtil.formatString(rs.getString("stuRxsj"),"yyyy-MM-dd"));
			student.setStuNation(rs.getString("stuNation"));
			student.setStuZzmm(rs.getString("stuZzmm"));
			student.setClassId(rs.getInt("classId"));
			student.setClassName(rs.getString("className"));
			student.setStuDesc(rs.getString("stuDesc"));
			student.setStuPic(rs.getString("stuPic"));
			student.setGradeId(rs.getInt("gradeId"));
			student.setGradeName(rs.getString("gradeName"));
		}
		return student;
	}

5.1.4 클래스 정보 관리

렌더링:

 클래스 정보 쿼리:

 추가된 클래스 정보:

 클래스 정보 수정:

 클래스 정보 삭제:

관련 지침:

 클래스 정보 관리 모듈은 클래스 정보 조회, 클래스 정보 추가, 수정, 삭제 기능을 포함합니다.

키 코드 구현:

 클래스 정보 쿼리:

public List<Class> classList(Connection con,Class s_class)throws Exception{
		List<Class> classList=new ArrayList<Class>();
		StringBuffer sb=new StringBuffer("select * from t_class t1,t_grade t2 where t1.gradeId=t2.gradeId");
		if(s_class!=null && s_class.getGradeId()!=-1){
			sb.append(" and t1.gradeId="+s_class.getGradeId());
		}
		PreparedStatement pstmt=con.prepareStatement(sb.toString());
		ResultSet rs=pstmt.executeQuery();
		while(rs.next()){
			Class c=new Class();
			c.setClassId(rs.getInt("classId"));
			c.setClassName(rs.getString("className"));
			c.setGradeId(rs.getInt("gradeId"));
			c.setGradeName(rs.getString("gradeName"));
			c.setClassDesc(rs.getString("classDesc"));
			classList.add(c);
		}
		return classList;
	}

추가된 클래스 정보:

public int classAdd(Connection con,Class c)throws Exception{
		String sql="insert into t_class values(null,?,?,?)";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1, c.getClassName());
		pstmt.setInt(2, c.getGradeId());
		pstmt.setString(3, c.getClassDesc());
		return pstmt.executeUpdate();
	}

클래스 정보 수정:

public int classUpdate(Connection con,Class c)throws Exception{
		String sql="update t_class set className=?,gradeId=?,classDesc=? where classId=?";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1, c.getClassName());
		pstmt.setInt(2, c.getGradeId());
		pstmt.setString(3, c.getClassDesc());
		pstmt.setInt(4, c.getClassId());
		return pstmt.executeUpdate();
	}

클래스 정보 삭제:

public int classDelete(Connection con,String Id)throws Exception{
		String sql="delete from t_class where classId=?";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1,Id);
		return pstmt.executeUpdate();
	}

5.1.5 성적정보 관리

렌더링:

등급 정보 문의:

추가된 등급 정보: 

 성적 정보 수정:

성적 정보 삭제:

관련 지침:

 등급 정보 관리 모듈은 다음과 같은 기능을 포함합니다: 등급 정보 조회, 등급 정보 추가, 수정, 삭제;

키 코드 구현:

 등급 정보 문의:

public List<Grade> gradeList(Connection con)throws Exception{
		List<Grade> gradeList=new ArrayList<Grade>();
		String sql="select * from t_grade";
		PreparedStatement pstmt=con.prepareStatement(sql);
		ResultSet rs=pstmt.executeQuery();
		while(rs.next()){
			Grade grade=new Grade();
			grade.setGradeId(rs.getInt("gradeId"));
			grade.setGradeName(rs.getString("gradeName"));
			grade.setGradeDesc(rs.getString("gradeDesc"));
			gradeList.add(grade);
		}
		return gradeList;
	}

추가된 등급 정보:

public int gradeAdd(Connection con,Grade grade)throws Exception{
		String sql="insert into t_grade values(null,?,?)";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1, grade.getGradeName());
		pstmt.setString(2, grade.getGradeDesc());
		return pstmt.executeUpdate();
	}

성적 정보 수정:

public int gradeUpdate(Connection con,Grade grade)throws Exception{
		String sql="update t_grade set gradeName=?,gradeDesc=? where gradeId=?";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1, grade.getGradeName());
		pstmt.setString(2, grade.getGradeDesc());
		pstmt.setInt(3, grade.getGradeId());
		return pstmt.executeUpdate();
	}

성적 정보 삭제:

public int gradeDelete(Connection con,String gradeId)throws Exception{
		String sql="delete from t_grade where gradeId=?";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1,gradeId);
		return pstmt.executeUpdate();
	}

5.1.6 데이터 사전 카테고리 관리

 데이터 사전 클래스를 추가합니다.

관련 지침:

 데이터 사전 범주 정보 관리 모듈은 다음 기능을 포함합니다: 데이터 사전 범주 조회, 데이터 사전 범주 추가, 수정, 삭제;

키 코드 구현:

 데이터 사전 범주 정보 쿼리:

public List<DataDicType> dataDicTypeList(Connection con)throws Exception{
		List<DataDicType> dataDicTypeList=new ArrayList<DataDicType>();
		String sql="select * from t_dataDicType";
		PreparedStatement pstmt=con.prepareStatement(sql);
		ResultSet rs=pstmt.executeQuery();
		while(rs.next()){
			DataDicType dataDicType=new DataDicType();
			dataDicType.setDdTypeId(rs.getInt("ddTypeId"));
			dataDicType.setDdTypeName(rs.getString("ddTypeName"));
			dataDicType.setDdTypeDesc(rs.getString("ddTypeDesc"));
			dataDicTypeList.add(dataDicType);
		}
		return dataDicTypeList;
	}

추가된 데이터 사전 범주 정보:

public int dataDicTypeAdd(Connection con,DataDicType dataDicType)throws Exception{
		String sql="insert into t_dataDicType values(null,?,?)";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1, dataDicType.getDdTypeName());
		pstmt.setString(2, dataDicType.getDdTypeDesc());
		return pstmt.executeUpdate();
	}

5.1.8 시스템 관련 설정

기능 설명:

 사용자는 원래 암호, 새 암호를 입력하고 새 암호를 확인합니다. 이 모든 것이 필요하며 원래 암호는 정확해야 하며 새 암호와 확인된 새 암호가 일치해야 합니다. 그렇지 않으면 오류 메시지가 표시됩니다. ;

 키 코드:

public int modifyPassword(Connection con,User user)throws Exception{
		String sql="update t_user set password=? where userId=?";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1, user.getPassword());
		pstmt.setInt(2, user.getUserId());
		return pstmt.executeUpdate();
	}

6. 소스코드 획득

java+mysql 기반 학생정보관리시스템 소스코드 (테스트 실행)

추천

출처blog.csdn.net/tyxjolin/article/details/130178567