package com.lizhou.service;
import java.sql.Connection;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import com.lizhou.bean.Clazz;
import com.lizhou.bean.Course;
import com.lizhou.bean.CourseItem;
import com.lizhou.bean.Grade;
import com.lizhou.bean.Page;
import com.lizhou.bean.Student;
import com.lizhou.bean.Teacher;
import com.lizhou.bean.User;
import com.lizhou.dao.impl.BaseDaoImpl;
import com.lizhou.dao.impl.StudentDaoImpl;
import com.lizhou.dao.impl.TeacherDaoImpl;
import com.lizhou.dao.inter.BaseDaoInter;
import com.lizhou.dao.inter.StudentDaoInter;
import com.lizhou.dao.inter.TeacherDaoInter;
import com.lizhou.tools.MysqlTool;
import com.lizhou.tools.StringTool;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
* 教师类服务层
* @author bojiangzhou
*
*/
public class TeacherService {
private TeacherDaoInter dao;
public TeacherService(){
dao = new TeacherDaoImpl();
}
/**
* 获取教师信息
* @param page
* @param rows
* @return
*/
public String getTeacherList(Page page) {
//sql语句
String sql = "SELECT * FROM teacher ORDER BY id DESC LIMIT ?,?";
//获取数据
List<Teacher> list = dao.getTeacherList(sql, new Object[]{page.getStart(), page.getSize()}, null, null);
//获取总记录数
long total = dao.count("SELECT COUNT(*) FROM teacher", new Object[]{});
//定义Map
Map<String, Object> jsonMap = new HashMap<String, Object>();
//total键 存放总记录数,必须的
jsonMap.put("total", total);
//rows键 存放每页记录 list
jsonMap.put("rows", list);
//格式化Map,以json格式返回数据
String result = JSONObject.fromObject(jsonMap).toString();
//返回
return result;
}
/**
* 获取某个老师的具体信息:包括所选课程
* @param number
* @return
*/
public Teacher getTeacher(String number) {
//sql语句
String sql = "SELECT * FROM teacher WHERE number=?";
//获取数据
List<Teacher> list = dao.getTeacherList(sql, new Object[]{number}, null, null);
//返回
return list.get(0);
}
/**
* 获取某年级下老师的班级
* @param number
* @param grade
* @return
*/
public String getExamClazz(String number, Grade grade) {
//sql语句
String sql = "SELECT * FROM teacher WHERE number=?";
//获取数据
Teacher list = dao.getTeacherList(sql, new Object[]{number}, grade, null).get(0);
List<Clazz> clazzList = new LinkedList<>();
List<CourseItem> courseItem = list.getCourseList();
for(CourseItem item : courseItem){
boolean flag = true;
for(Clazz clazz : clazzList){
if(clazz.getId() == item.getClazzid()){
flag = false;
break;
}
}
if(flag){
clazzList.add(item.getClazz());
}
}
String result = JSONArray.fromObject(clazzList).toString();
//返回
return result;
}
/**
* 查询考试下老师的课程
* @param number
* @param grade
* @param clazz
* @return
*/
public String getExamClazz(String number, Grade grade, Clazz clazz) {
//sql语句
String sql = "SELECT * FROM teacher WHERE number=?";
//获取数据
Teacher list = dao.getTeacherList(sql, new Object[]{number}, grade, clazz).get(0);
List<Course> courseList = new LinkedList<>();
List<CourseItem> courseItem = list.getCourseList();
for(CourseItem item : courseItem){
courseList.add(item.getCourse());
}
String result = JSONArray.fromObject(courseList).toString();
//返回
return result;
}
/**
* 获取老师详细信息
* @param number
* @return
*/
public String getTeacherResult(String number) {
Teacher teacher = getTeacher(number);
String result = JSONObject.fromObject(teacher).toString();
//返回
return result;
}
/**
* 添加老师信息
* @param teacher
* @throws Exception
*/
public void addTeacher(Teacher teacher) throws Exception {
Connection conn = MysqlTool.getConnection();
try {
//开启事务
MysqlTool.startTransaction();
String sql = "INSERT INTO teacher(number, name, sex, qq, photo) value(?,?,?,?,?)";
Object[] param = new Object[]{
teacher.getNumber(),
teacher.getName(),
teacher.getSex(),
teacher.getPhone(),
teacher.getQq()
};
//添加教师信息
int teacherid = dao.insertReturnKeysTransaction(conn, sql, param);
//设置课程
if(teacher.getCourse() != null && teacher.getCourse().length > 0){
for(String course : teacher.getCourse()){
String[] gcc = course.split("_");
int gradeid = Integer.parseInt(gcc[0]);
int clazzid = Integer.parseInt(gcc[1]);
int courseid = Integer.parseInt(gcc[2]);
dao.insertTransaction(conn,
"INSERT INTO clazz_course_teacher(clazzid, gradeid, courseid, teacherid) value(?,?,?,?) ",
new Object[]{clazzid, gradeid, courseid, teacherid});
}
}
//添加用户记录
dao.insertTransaction(conn, "INSERT INTO user(account, name, type) value(?,?,?)",
new Object[]{
teacher.getNumber(),
teacher.getName(),
User.USER_TEACHER
});
//提交事务
MysqlTool.commit();
} catch (Exception e) {
//回滚事务
MysqlTool.rollback();
e.printStackTrace();
throw e;
} finally {
MysqlTool.closeConnection();
}
}
/**
* 修改教师信息
* @param teacher
* @throws Exception
*/
public void editTeacher(Teacher teacher) throws Exception {
Connection conn = MysqlTool.getConnection();
try {
//开启事务
MysqlTool.startTransaction();
String sql = "UPDATE teacher set name=?,sex=?,phone=?,qq=? WHERE id=?";
Object[] param = new Object[]{
teacher.getName(),
teacher.getSex(),
teacher.getPhone(),
teacher.getQq(),
teacher.getId()
};
//修改教师信息
dao.updateTransaction(conn, sql, param);
//修改系统用户信息
dao.update("UPDATE user SET name=? WHERE account=?",
new Object[]{teacher.getName(), teacher.getNumber()});
//删除教师与课程的关联
dao.deleteTransaction(conn, "DELETE FROM clazz_course_teacher WHERE teacherid =?", new Object[]{teacher.getId()});
//设置课程
if(teacher.getCourse() != null && teacher.getCourse().length > 0){
for(String course : teacher.getCourse()){
String[] gcc = course.split("_");
int gradeid = Integer.parseInt(gcc[0]);
int clazzid = Integer.parseInt(gcc[1]);
int courseid = Integer.parseInt(gcc[2]);
dao.insertTransaction(conn,
"INSERT INTO clazz_course_teacher(clazzid, gradeid, courseid, teacherid) value(?,?,?,?) ",
new Object[]{clazzid, gradeid, courseid, teacher.getId()});
}
}
//提交事务
MysqlTool.commit();
} catch (Exception e) {
//回滚事务
MysqlTool.rollback();
e.printStackTrace();
throw e;
} finally {
MysqlTool.closeConnection();
}
}
/**
* 教师修改个人信息
* @param teacher
*/
public void editTeacherPersonal(Teacher teacher){
String sql = "UPDATE teacher SET name=?, sex=?, phone=?, qq=? WHERE number=?";
//更新信息
dao.update(sql, new Object[]{
teacher.getName(),
teacher.getSex(),
teacher.getPhone(),
teacher.getQq(),
teacher.getNumber()});
dao.update("UPDATE user SET name=? WHERE account=?",
new Object[]{teacher.getName(), teacher.getNumber()});
}
/**
* 删除教师
* @param ids 教师ID数组
* @param numbers 教师工号数组
* @throws Exception
*/
public void deleteTeacher(String[] ids, String[] numbers) throws Exception{
//获取占位符
String mark = StringTool.getMark(ids.length);
Integer tid[] = new Integer[ids.length
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
随着学校的规模不断扩大,学生数量急剧增长,需要管理的各种信息也成倍增加。同时由于计算机和网络技术的普及,建立一个C/S或者B/S结构的学生信息管理系统之后,学生可以通过网络来查询自己的成绩并管理自己的信息,使得学生信息管理工作系统化、规范化高了学校管理学生信息的效率。 学生成绩信息管理系统是利用eclipse开发设计的。数据库是基于SQL SERVER设计,+easyUI前端框架+jQuery+ajax 其中与后台的交互都是以ajax+接口的方式完成的。 该系统实现的主要功能有:管理员管理学生,教师,系统信息,老师管理课程成绩信息,学生查询成绩,修改个人信息等功能。成绩列表可以导出Excel表格。 本系统主要实现了对高校从学生学籍信息录入、学生选课、学生考核、到学生成绩管理。整个系统分为学生信息管理、学生课程信息管理、学生成绩管理、系统管理四大模块。其中,学生信息管理模块包括学生信息录入、学生信息修改。学生课程信息管理模块包括学生选课、学生课程查询。学生成绩管理模块包括学生成绩录入、学生成绩查询。系统管理模块包括用户权限、密码修改、退出系统。整个系统从操作简便、灵活、实用的目的要求出发
资源推荐
资源详情
资源评论
收起资源包目录
基于Jsp的学生信息管理系统+毕业论文.rar (351个子文件)
BaseDaoImpl.class 11KB
TeacherService.class 9KB
ExamService.class 8KB
ScoreService.class 8KB
ExcelTool.class 7KB
TeacherServlet.class 7KB
StudentService.class 7KB
VCodeGenerator.class 6KB
StudentServlet.class 6KB
GradeService.class 5KB
ExamServlet.class 5KB
TeacherDaoImpl.class 5KB
ClazzService.class 5KB
SystemServlet.class 4KB
ScoreServlet.class 4KB
Exam.class 4KB
ScoreDaoImpl.class 4KB
ExamDaoImpl.class 3KB
LoginServlet.class 3KB
ClazzDaoImpl.class 3KB
ClazzServlet.class 3KB
StudentDaoImpl.class 3KB
BaseDaoInter.class 3KB
PhotoService.class 3KB
GradeServlet.class 3KB
PhotoServlet.class 3KB
CourseServlet.class 3KB
CourseService.class 3KB
EScore.class 3KB
Student.class 3KB
MysqlTool.class 2KB
PhotoDaoImpl.class 2KB
SystemService.class 2KB
VisitFilter.class 2KB
Teacher.class 2KB
CourseItem.class 2KB
Grade.class 2KB
Clazz.class 2KB
SystemInfo.class 2KB
StringTool.class 1KB
EncodeFilter.class 1KB
User.class 1KB
SystemInitListener.class 1KB
Page.class 982B
Course.class 718B
TeacherDaoInter.class 453B
StudentDaoInter.class 375B
ClazzDaoInter.class 365B
ExamDaoInter.class 363B
SystemDaoImpl.class 362B
ScoreDaoInter.class 353B
PhotoDaoInter.class 311B
SystemDaoInter.class 171B
.classpath 3KB
org.eclipse.wst.common.component 464B
org.eclipse.wst.jsdt.ui.superType.container 49B
H-ui.css 139KB
H-ui.min.css 99KB
easyui.css 54KB
iconfont.css 12KB
icheck.css 12KB
tabs.css 9KB
datagrid.css 5KB
icon.css 4KB
linkbutton.css 4KB
color.css 4KB
calendar.css 4KB
tree.css 3KB
panel.css 3KB
default.css 2KB
menu.css 2KB
window.css 2KB
tooltip.css 2KB
menubutton.css 2KB
searchbox.css 2KB
datalist.css 2KB
textbox.css 2KB
H-ui.login.css 2KB
layout.css 2KB
slider.css 2KB
spinner.css 1KB
pagination.css 1KB
skin.css 1KB
combo.css 1KB
accordion.css 838B
messager.css 804B
propertygrid.css 716B
progressbar.css 653B
datebox.css 619B
dialog.css 560B
combobox.css 396B
demo.css 306B
filebox.css 306B
splitbutton.css 293B
numberbox.css 128B
validatebox.css 94B
Thumbs.db 56KB
Thumbs.db 18KB
Thumbs.db 13KB
Thumbs.db 4KB
共 351 条
- 1
- 2
- 3
- 4
资源评论
- plasticsocket2023-08-23发现一个超赞的资源,赶紧学习起来,大家一起进步,支持!
笔触狂放
- 粉丝: 7458
- 资源: 100
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 没用333333333333333333333333333333
- 基于Vue和SpringBoot的企业员工管理系统2.0版本设计源码
- 【C++初级程序设计·配套源码】第2期-基本数据类型
- 基于Java和Vue的kopsoftKANBAN车间电子看板设计源码
- 影驰战将PS3111 东芝芯片TT18G23AIN开卡成功分享,图片里面画线的选项很重要
- 【C++初级程序设计·配套源码】第1期-语法基础
- 基于JavaScript、CSS、HTML的简易DOM版飞机游戏设计源码
- 基于Java开发的日程管理FlexTime应用设计源码
- SM2258XT-BGA144-4BGA180-6L-R1019 三星KLUCG4J1CB B0B1颗粒开盘工具 , EC, 3A, 94, 43, A4, CA 七彩虹SL300这个固件有用
- GJB 5236-2004 军用软件质量度量
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功