一、源码特点
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)个人信息修改以及密码修改。
数据库设计
(1)用户信息表如表5.1所示:
表5.1 用户信息表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | yhid | INTEGER | 11 | 是 | 用户编号 |
2 | yhm | VARCHAR | 40 | 否 | 用户名 |
3 | mm | VARCHAR | 40 | 否 | 密码 |
4 | xm | VARCHAR | 40 | 否 | 姓名 |
5 | qx | VARCHAR | 40 | 否 | 权限 |
6 | lxdh | VARCHAR | 40 | 否 | 联系电话 |
7 | lxdz | VARCHAR | 40 | 否 | 联系地址 |
(2)实践基地如表5.2所示:
表5.2 实践基地表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | sjjdid | INTEGER | 11 | 是 | 实践基地编号 |
2 | sjjdmc | VARCHAR | 40 | 否 | 实践基地名称 |
3 | js | VARCHAR | 40 | 否 | 介绍 |
4 | fbr | VARCHAR | 40 | 否 | 发布人 |
(3)实践形式表如表5.3所示:
表5.3 实践形式表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | sjxsid | INTEGER | 11 | 是 | 实践形式编号 |
2 | xs | VARCHAR | 40 | 否 | 形式 |
(4)实践申请信息表如表5.4所示:
表5.4 实践申请信息表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | sjsqid | INTEGER | 11 | 是 | 实践申请编号 |
2 | ls | VARCHAR | 40 | 否 | 流水 |
3 | bt | VARCHAR | 40 | 否 | 标题 |
4 | xs | VARCHAR | 40 | 否 | 形式 |
5 | nr | VARCHAR | 40 | 否 | 内容 |
6 | sjjd | VARCHAR | 40 | 否 | 实践基地 |
7 | tjr | VARCHAR | 40 | 否 | 提交人 |
8 | tjsj | VARCHAR | 40 | 否 | 提交时间 |
9 | zt | VARCHAR | 40 | 否 | 状态 |
10 | yj | VARCHAR | 40 | 否 | 意见 |
(5)实践报告表如表5.5所示:
表5.5 实践报告表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | sjbgid | INTEGER | 11 | 是 | 实践报告编号 |
2 | sj | VARCHAR | 40 | 否 | 实践 |
3 | bgmc | VARCHAR | 40 | 否 | 报告名称 |
4 | fj | VARCHAR | 40 | 否 | 附件 |
5 | sm | VARCHAR | 40 | 否 | 说明 |
6 | tjr | VARCHAR | 40 | 否 | 提交人 |
7 | zt | VARCHAR | 40 | 否 | 状态 |
(6)评价单位表如表5.6所示:
表5.6 评价单位表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | pjdwid | INTEGER | 11 | 是 | 评价单位编号 |
2 | sj | VARCHAR | 40 | 否 | 实践 |
3 | bt | VARCHAR | 40 | 否 | 标题 |
4 | pjnr | VARCHAR | 40 | 否 | 评价内容 |
5 | sjjd | VARCHAR | 40 | 否 | 实践基地 |
6 | pjr | VARCHAR | 40 | 否 | 评价人 |
7 | pjsj | VARCHAR | 40 | 否 | 评价时间 |
系统ER 图
控制层代码
@Resource pjxsDao pjxsdao;
@RequestMapping(value="/addPage")
public String addPage(pjxs pjxs,HttpServletRequest request){
Map<String,Object> map= new HashMap<String,Object>();
System.out.println("addPageok");
return "pjxs/pjxsadd";
}
@RequestMapping(value="/add")
public String add(pjxs pjxs,HttpServletRequest request){
Map<String,Object> map= new HashMap<String,Object>();
//String name=(String)request.getParameter("name");
map.put("pjxsid", pjxs.getPjxsid());//评价学生编号
map.put("sj", pjxs.getSj());//实践
map.put("bt", pjxs.getBt());//标题
map.put("pjnr", pjxs.getPjnr());//评价内容
map.put("pjxs", pjxs.getPjxs());//评价学生
map.put("pjr", pjxs.getPjr());//评价人
map.put("pjsj", pjxs.getPjsj());//评价时间
String pjxsid=(String)pjxs.getPjxsid();//评价学生编号
String sj=(String)pjxs.getSj();//实践
String bt=(String)pjxs.getBt();//标题
String pjnr=(String)pjxs.getPjnr();//评价内容
String pjxs1=(String)pjxs.getPjxs();//评价学生
String pjr=(String)pjxs.getPjr();//评价人
String pjsj=(String)pjxs.getPjsj();//评价时间
int num=0;
ResultSet rs=null;
String sql="";
DBO db=new DBO();
try{
sql="select count(1) as num from pjxs where sj='"+sj+"' and pjr='"+pjr+"'";
rs=db.query(sql);
if(rs.next()){
num=rs.getInt("num");
}
if(num==0){
sql="select * from sjsq where ls='"+sj+"'";
rs=db.query(sql);
if(rs.next()){
pjxs1=rs.getString("tjr");
}
map.put("pjxs", pjxs1);//实践基地
pjxsdao.save(map);
request.setAttribute("msg", "<script>alert('添加成功');</script>");
}else{
request.setAttribute("msg", "<script>alert('添加失败、数据重复');</script>");
}
}catch(Exception e){
e.printStackTrace();
}
request.setAttribute("msg", "<script>alert('添加成功');</script>");
System.out.println("addok");
return "pjxs/pjxsadd";
}
/**删除
*
*/
@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");
id=Integer.parseInt(a);
request.setAttribute("msg", "<script>alert('删除成功');</script>");
pjxsdao.del(id);
return selectall(null,map,request);
}
/**
* 修改pjxs信息
*/
@RequestMapping(value="/update")
public String update(pjxs pjxs,HttpServletRequest request,Map<String,Object> map1){
Map<String,Object> map= new HashMap<String,Object>();
map.put("pjxsid", pjxs.getPjxsid());//评价学生编号
map.put("sj", pjxs.getSj());//实践
map.put("bt", pjxs.getBt());//标题
map.put("pjnr", pjxs.getPjnr());//评价内容
map.put("pjxs", pjxs.getPjxs());//评价学生
map.put("pjr", pjxs.getPjr());//评价人
map.put("pjsj", pjxs.getPjsj());//评价时间
String pjxsid=(String)pjxs.getPjxsid();//评价学生编号
String sj=(String)pjxs.getSj();//实践
String bt=(String)pjxs.getBt();//标题
String pjnr=(String)pjxs.getPjnr();//评价内容
String pjxs1=(String)pjxs.getPjxs();//评价学生
String pjr=(String)pjxs.getPjr();//评价人
String pjsj=(String)pjxs.getPjsj();//评价时间
request.setAttribute("msg", "<script>alert('修改成功');</script>");
pjxsdao.update(map);
return selectall(null,map1,request);
}
持久层代码
public void save(Map<String, Object> map) {
sqlSession.insert("com.sjbg.insertsjbg", map);
}
/**
* 删除aa
* @param id
*/
public void del(Integer id) {
sqlSession.delete("com.sjbg.delsjbg", id);
}
/**
* 修改sjbg信息
* @param map
*/
public void update(Map<String, Object> map) {
sqlSession.update("com.sjbg.updatesjbg", map);
}
/**
* 查询sjbg信息
* @param id
* @return
*/
public List<Map<String, Object>> select(Integer id) {
return sqlSession.selectList("com.sjbg.selectsjbg", id) ;
}
mybatis 配置文件
<insert id="insertpjxs" parameterType="java.util.Map">
insert into pjxs(sj,bt,pjnr,pjxs,pjr,pjsj) values(#{sj},#{bt},#{pjnr},#{pjxs},#{pjr},#{pjsj})
</insert>
<delete id="delpjxs" parameterType="int">
delete from pjxs where pjxsid=#{pjxsid}
</delete>
<update id="updatepjxs" parameterType="java.util.Map">
update pjxs set sj=#{sj},bt=#{bt},pjnr=#{pjnr},pjxs=#{pjxs},pjr=#{pjr},pjsj=#{pjsj} where pjxsid=#{pjxsid}
</update>
<!-- 查询返回的是 list<map> -->
<!-- resultType 就是返回查询结果的类型,而如果是resultMap=则返回的就是你定义的javabean -->
<select id="selectpjxs" parameterType="int" resultType="java.util.Map">
select * from pjxs where pjxsid=#{pjxsid}
</select>
<!-- resultType 就是返回查询结果的类型,而如果是resultMap=则返回的就是你定义的javabean -->
<select id="selectall" parameterType="java.util.Map" resultType="java.util.Map">
select * from pjxs where 1=1
<if test=" null != sj and sj!=''" >
and sj = #{sj}
</if>
<if test=" null != bt and bt!=''" >
and bt = #{bt}
</if>
<if test=" null != pjnr and pjnr!=''" >
and pjnr = #{pjnr}
</if>
<if test=" null != pjxs and pjxs!=''" >
and pjxs = #{pjxs}
</if>
<if test=" null != pjr and pjr!=''" >
and pjr = #{pjr}
</if>
<if test=" null != pjsj and pjsj!=''" >
and pjsj = #{pjsj}
</if>
</select>
三、注意事项
1、管理员账号:admin密码:admin 数据库配置文件datasource.properties
2、开发环境为eclipse开发,数据库为mysql,使用java语言开发。
3、数据库文件名是jspssmsjjd.sql 系统名称ssmsjjd
4、地址:http://127.0.0.1:8080/ssmsjjd/login.jsp
四系统实现
源码获取 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓