一、源码特点
   SSM 校园学习助手系统是一套完善的信息系统,结合springMVC框架完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用B/S模式开发。
ssm校园学习助手系统
 前段主要技术 html.css jquery
 后端主要技术 SSM
 数据库 mysql
 开发工具 eclipse  JDK1.8 TOMCAT 8.5
二、功能介绍
前台功能:
 系统首页浏览
 训练浏览、提交申请、查看申请信息
 经历浏览、提交评论、查看评论
 用户注册、登录、个人信息修改
 后台功能:
 (1)管理员管理:对管理员信息进行添加、删除、修改和查看
 (2)用户管理:对用户信息进行添加、删除、修改和查看
 (3)关注管理:对关注信息进行添加、删除、修改和查看
 (4)类型管理:对类型信息进行添加、删除、修改和查看
 (5)训练营管理:对训练营信息进行添加、删除、修改和查看
 (6)申请管理:对申请信息进行删除、修改和查看
 (7)报名管理:对报名信息进行删除、修改和查看
 (8)经历管理:对经历信息进行添加、删除、修改和查看
 (9)评论管理:对评论信息进行删除、修改和查看
 (10)用户登录、个人信息修改
数据库设计
| [表jiaoshi] 教师列属性表格 | |||||
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 | 
| 1 | jsid | INTEGER | 11 | 是 | 教师编号 | 
| 2 | yhm | VARCHAR | 40 | 否 | 用户名 | 
| 3 | mm | VARCHAR | 40 | 否 | 密码 | 
| 4 | xm | VARCHAR | 40 | 否 | 姓名 | 
| 5 | lxdh | VARCHAR | 40 | 否 | 联系电话 | 
| 6 | lxdz | VARCHAR | 40 | 否 | 联系地址 | 
| [表banji] 班级列属性表格 | |||||
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 | 
| 1 | bjid | INTEGER | 11 | 是 | 班级编号 | 
| 2 | bj | VARCHAR | 40 | 否 | 班级 | 
| [表xuesheng] 学生列属性表格 | |||||
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 | 
| 1 | xsid | INTEGER | 11 | 是 | 学生编号 | 
| 2 | yhm | VARCHAR | 40 | 否 | 用户名 | 
| 3 | mm | VARCHAR | 40 | 否 | 密码 | 
| 4 | xm | VARCHAR | 40 | 否 | 姓名 | 
| 5 | lxdh | VARCHAR | 40 | 否 | 联系电话 | 
| 6 | lxdz | VARCHAR | 40 | 否 | 联系地址 | 
| 7 | bj | VARCHAR | 40 | 否 | 班级 | 
| [表gly] 管理员列属性表格 | |||||
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 | 
| 1 | glyid | INTEGER | 11 | 是 | 管理员编号 | 
| 2 | yhm | VARCHAR | 40 | 否 | 用户名 | 
| 3 | mm | VARCHAR | 40 | 否 | 密码 | 
| 4 | xm | VARCHAR | 40 | 否 | 姓名 | 
| [表xywh] 校园文化列属性表格 | |||||
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 | 
| 1 | xywhid | INTEGER | 11 | 是 | 校园文化编号 | 
| 2 | bt | VARCHAR | 40 | 否 | 标题 | 
| 3 | nr | VARCHAR | 40 | 否 | 内容 | 
| 4 | fbsj | VARCHAR | 40 | 否 | 发布时间 | 
| [表tongzhi] 通知列属性表格 | |||||
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 | 
| 1 | tzid | INTEGER | 11 | 是 | 通知编号 | 
| 2 | bt | VARCHAR | 40 | 否 | 标题 | 
| 3 | nr | VARCHAR | 40 | 否 | 内容 | 
| 4 | fbsj | VARCHAR | 40 | 否 | 发布时间 | 
| [表liuyan] 留言列属性表格 | |||||
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 | 
| 1 | lyid | INTEGER | 11 | 是 | 留言编号 | 
| 2 | ly | VARCHAR | 40 | 否 | 留言 | 
| 3 | yh | VARCHAR | 40 | 否 | 用户 | 
| 4 | sj | VARCHAR | 40 | 否 | 时间 | 
| 5 | jsyh | VARCHAR | 40 | 否 | 接收用户 | 
代码设计
	@RequestMapping(value="/add")public String add(liuyan liuyan,HttpServletRequest request){//添加方法Map<String,Object> map= new HashMap<String,Object>();//初始化对象//String name=(String)request.getParameter("name");map.put("lyid", liuyan.getLyid());//留言编号map.put("ly", liuyan.getLy());//留言map.put("yh", liuyan.getYh());//用户map.put("sj", liuyan.getSj());//时间map.put("jsyh", liuyan.getJsyh());//接收用户String lyid=(String)liuyan.getLyid();//留言编号String ly=(String)liuyan.getLy();//留言String yh=(String)liuyan.getYh();//用户String sj=(String)liuyan.getSj();//时间String jsyh=(String)liuyan.getJsyh();//接收用户liuyandao.save(map);//调用 add方法 保存liuyan 数据request.setAttribute("msg", "<script>alert('添加成功');</script>");System.out.println("addok");return "liuyan/liuyanadd";}/**删除 liuyan* */@RequestMapping(value="/del")public String  del(Integer id,HttpServletRequest request,Map<String,Object> map){//	Map<String,Object> map= new HashMap<String,Object>();//初始化对象String a=(String)request.getParameter("keyid");//request 方式获得主键idid=Integer.parseInt(a);request.setAttribute("msg", "<script>alert('删除成功');</script>");liuyandao.del(id);//调用 删除方法return selectall(null,map,request);}/*** 修改liuyan信息*/@RequestMapping(value="/update")public String update(liuyan liuyan,HttpServletRequest request,Map<String,Object> map1){Map<String,Object> map= new HashMap<String,Object>();//初始化对象map.put("lyid", liuyan.getLyid());//留言编号map.put("ly", liuyan.getLy());//留言map.put("yh", liuyan.getYh());//用户map.put("sj", liuyan.getSj());//时间map.put("jsyh", liuyan.getJsyh());//接收用户map.put("hf", liuyan.getHf());//接收用户String lyid=(String)liuyan.getLyid();//留言编号String ly=(String)liuyan.getLy();//留言String yh=(String)liuyan.getYh();//用户String sj=(String)liuyan.getSj();//时间String jsyh=(String)liuyan.getJsyh();//接收用户request.setAttribute("msg", "<script>alert('操作成功');</script>");liuyandao.update(map);//执行update 方法return selectall(null,map1,request);}/*** 查询liuyan信息*/@RequestMapping(value="/modify")public String modify(Integer id,Map<String,Object> map,HttpServletRequest request){String keyid=(String)request.getParameter("keyid");//request 方式获得主键idList<Map<String,Object>> list= new  ArrayList<Map<String,Object>>();//初始化对象list=liuyandao.select(Integer.parseInt(keyid));//根据id返回 liuyan对象数据request.setAttribute("lyid", list.get(0).get("lyid"));//留言编号request.setAttribute("ly", list.get(0).get("ly"));//留言request.setAttribute("yh", list.get(0).get("yh"));//用户request.setAttribute("sj", list.get(0).get("sj"));//时间request.setAttribute("jsyh", list.get(0).get("jsyh"));//接收用户request.setAttribute("hf", list.get(0).get("hf"));//接收用户return "liuyan/liuyanmodify";}mybatis 配置
<insert id="insertchengji"  parameterType="java.util.Map">insert  into  chengji(xs,kc,cj,fbsj)  values(#{xs},#{kc},#{cj},#{fbsj})
</insert><delete id="delchengji" parameterType="int">delete  from  chengji where cjid=#{cjid}
</delete><update id="updatechengji" parameterType="java.util.Map">
update chengji set xs=#{xs},kc=#{kc},cj=#{cj},fbsj=#{fbsj} where cjid=#{cjid}
</update><!--  查询返回的是 list<map> -->
<!-- resultType 就是返回查询结果的类型,而如果是resultMap=则返回的就是你定义的javabean  -->
<select  id="selectchengji"  parameterType="int" resultType="java.util.Map">select  * from chengji where cjid=#{cjid}
</select><!-- resultType 就是返回查询结果的类型,而如果是resultMap=则返回的就是你定义的javabean  -->
<select  id="selectall"  parameterType="java.util.Map" resultType="java.util.Map">select  * from chengji where 1=1
<if test=" null != xs and xs!=''" >and xs = #{xs}
</if>
<if test=" null != kc and kc!=''" >and kc = #{kc}
</if>
<if test=" null != cj and cj!=''" >and cj = #{cj}
</if>
<if test=" null != fbsj and fbsj!=''" >and fbsj = #{fbsj}
</if></select>
 三、注意事项
 1、管理员账号:admin密码:admin 数据库配置文件datasource.properties
 2、开发环境为eclipse开发,数据库为mysql,使用java语言开发。
 3、数据库文件名是jspssmxyxx.sql 系统名称ssmxyxx
 4、地址:http://127.0.0.1:8080/ssmxyxx/qt/index.jsp
四系统实现



