一、源码特点
java SSM火车票务管理系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,spring+springMVC+mybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代
码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。
java ssm火车票务管理系统
二、功能介绍
(1)用户管理:对用户信息进行添加、删除、修改和查看
(2)管理员管理:对管理员信息进行添加、删除、修改和查看
(3)新闻管理:对新闻信息进行添加、删除、修改和查看
(4)列车管理:对列车信息进行添加、删除、修改和查看
(5)途径站点管理:对途径站点信息进行添加、删除、修改和查看
(6)订票管理:对订票信息进行添加、删除、修改和查看。
(7)用户登录、个人信息修改
数据库设计
(1)用户信息表如表3.1所示:
表3.1 用户信息表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | yhid | INTEGER | 11 | 是 | 用户编号 |
2 | yhm | VARCHAR | 40 | 否 | 用户名 |
3 | mm | VARCHAR | 40 | 否 | 密码 |
4 | xm | VARCHAR | 40 | 否 | 姓名 |
5 | xb | VARCHAR | 40 | 否 | 性别 |
6 | dh | VARCHAR | 40 | 否 | 电话 |
7 | yx | VARCHAR | 40 | 否 | 邮箱 |
8 | zjh | VARCHAR | 40 | 否 | 证件号 |
(2)管理员信息表如表3.2所示:
表3.2 管理员信息表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | glyid | INTEGER | 11 | 是 | 管理员编号 |
2 | yhm | VARCHAR | 40 | 否 | 用户名 |
3 | mm | VARCHAR | 40 | 否 | 密码 |
4 | xm | VARCHAR | 40 | 否 | 姓名 |
5 | xb | VARCHAR | 40 | 否 | 性别 |
6 | dh | VARCHAR | 40 | 否 | 电话 |
7 | yx | VARCHAR | 40 | 否 | 邮箱 |
(3)新闻信息表如表3.3所示:
表3.3新闻信息表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | xwid | INTEGER | 11 | 是 | 新闻编号 |
2 | bt | VARCHAR | 40 | 否 | 标题 |
3 | nr | VARCHAR | 40 | 否 | 内容 |
4 | fbsj | VARCHAR | 40 | 否 | 发布时间 |
(4)列车信息表如表3.4所示:
表3.4 列车信息表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | lcid | INTEGER | 11 | 是 | 列车编号 |
2 | cc | VARCHAR | 40 | 否 | 车次 |
3 | qsz | VARCHAR | 40 | 否 | 起始站 |
4 | mdz | VARCHAR | 40 | 否 | 目的站 |
5 | fcsj | VARCHAR | 40 | 否 | 发车时间 |
6 | dzsj | VARCHAR | 40 | 否 | 到站时间 |
7 | pj | VARCHAR | 40 | 否 | 票价 |
8 | ptzjg | VARCHAR | 40 | 否 | 普通座价格 |
9 | wpjg | VARCHAR | 40 | 否 | 卧铺价格 |
10 | rwjg | VARCHAR | 40 | 否 | 软卧价格 |
控制层代码
@RequestMapping(value="/add")
public String add(lieche lieche,HttpServletRequest request){
Map<String,Object> map= new HashMap<String,Object>();
//String name=(String)request.getParameter("name");
map.put("lcid", lieche.getLcid());//列车编号
map.put("cc", lieche.getCc());//车次
map.put("qsz", lieche.getQsz());//起始站
map.put("mdz", lieche.getMdz());//目的站
map.put("fcsj", lieche.getFcsj());//发车时间
map.put("dzsj", lieche.getDzsj());//到站时间
map.put("pj", lieche.getPj());//票价
map.put("ptzjg", lieche.getPtzjg());//普通座价格
map.put("wpjg", lieche.getWpjg());//卧铺价格
map.put("rwjg", lieche.getRwjg());//软卧价格
String lcid=(String)lieche.getLcid();//列车编号
String cc=(String)lieche.getCc();//车次
String qsz=(String)lieche.getQsz();//起始站
String mdz=(String)lieche.getMdz();//目的站
String fcsj=(String)lieche.getFcsj();//发车时间
String dzsj=(String)lieche.getDzsj();//到站时间
String pj=(String)lieche.getPj();//票价
String ptzjg=(String)lieche.getPtzjg();//普通座价格
String wpjg=(String)lieche.getWpjg();//卧铺价格
String rwjg=(String)lieche.getRwjg();//软卧价格
String sql="select count(1) as num from lieche where cc='"+cc+"'";
ResultSet rs=null;
int num=0;
DBO db=new DBO();
try{
rs=db.query(sql);
if(rs.next()){
num=rs.getInt("num");
}
if(num>0){
request.setAttribute("msg", "<script>alert('添加失败、车次重复');</script>");
}else{
liechedao.save(map);
request.setAttribute("msg", "<script>alert('添加成功');</script>");
}
}catch(Exception e){
e.printStackTrace();
}
// request.setAttribute("msg", "<script>alert('添加成功');</script>");
System.out.println("addok");
return "lieche/liecheadd";
}
/**删除
*
*/
@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>");
liechedao.del(id);
return selectall(null,map,request);
}
/**
* 修改lieche信息
*/
@RequestMapping(value="/update")
public String update(lieche lieche,HttpServletRequest request,Map<String,Object> map1){
Map<String,Object> map= new HashMap<String,Object>();
map.put("lcid", lieche.getLcid());//列车编号
map.put("cc", lieche.getCc());//车次
map.put("qsz", lieche.getQsz());//起始站
map.put("mdz", lieche.getMdz());//目的站
map.put("fcsj", lieche.getFcsj());//发车时间
map.put("dzsj", lieche.getDzsj());//到站时间
map.put("pj", lieche.getPj());//票价
map.put("ptzjg", lieche.getPtzjg());//普通座价格
map.put("wpjg", lieche.getWpjg());//卧铺价格
map.put("rwjg", lieche.getRwjg());//软卧价格
String lcid=(String)lieche.getLcid();//列车编号
String cc=(String)lieche.getCc();//车次
String qsz=(String)lieche.getQsz();//起始站
String mdz=(String)lieche.getMdz();//目的站
String fcsj=(String)lieche.getFcsj();//发车时间
String dzsj=(String)lieche.getDzsj();//到站时间
String pj=(String)lieche.getPj();//票价
String ptzjg=(String)lieche.getPtzjg();//普通座价格
String wpjg=(String)lieche.getWpjg();//卧铺价格
String rwjg=(String)lieche.getRwjg();//软卧价格
request.setAttribute("msg", "<script>alert('修改成功');</script>");
liechedao.update(map);
return selectall(null,map1,request);
}
/**
* 查询lieche信息
*/
@RequestMapping(value="/modify")
public String modify(Integer id,Map<String,Object> map,HttpServletRequest request){
String keyid=(String)request.getParameter("keyid");
List<Map<String,Object>> list= new ArrayList<Map<String,Object>>();
list=liechedao.select(Integer.parseInt(keyid));
request.setAttribute("lcid", list.get(0).get("lcid"));//列车编号
request.setAttribute("cc", list.get(0).get("cc"));//车次
request.setAttribute("qsz", list.get(0).get("qsz"));//起始站
request.setAttribute("mdz", list.get(0).get("mdz"));//目的站
request.setAttribute("fcsj", list.get(0).get("fcsj"));//发车时间
request.setAttribute("dzsj", list.get(0).get("dzsj"));//到站时间
request.setAttribute("pj", list.get(0).get("pj"));//票价
request.setAttribute("ptzjg", list.get(0).get("ptzjg"));//普通座价格
request.setAttribute("wpjg", list.get(0).get("wpjg"));//卧铺价格
request.setAttribute("rwjg", list.get(0).get("rwjg"));//软卧价格
return "lieche/liechemodify";
}
持久层代码
public void save(Map<String, Object> map) {
sqlSession.insert("com.lieche.insertlieche", map);
}
/**
* 删除aa
* @param id
*/
public void del(Integer id) {
sqlSession.delete("com.lieche.dellieche", id);
}
/**
* 修改lieche信息
* @param map
*/
public void update(Map<String, Object> map) {
sqlSession.update("com.lieche.updatelieche", map);
}
/**
* 查询lieche信息
* @param id
* @return
*/
public List<Map<String, Object>> select(Integer id) {
return sqlSession.selectList("com.lieche.selectlieche", id) ;
}
/**
* 查询lieche信息
*
* @return
*/
public List<Map<String, Object>> selectAll(Map<String, Object> map) {
return sqlSession.selectList("com.lieche.selectall", map) ;
}
mybatis 配置文件
<insert id="insertlieche" parameterType="java.util.Map">
insert into lieche(cc,qsz,mdz,fcsj,dzsj,pj,ptzjg,wpjg,rwjg) values(#{cc},#{qsz},#{mdz},#{fcsj},#{dzsj},#{pj},#{ptzjg},#{wpjg},#{rwjg})
</insert>
<delete id="dellieche" parameterType="int">
delete from lieche where lcid=#{lcid}
</delete>
<update id="updatelieche" parameterType="java.util.Map">
update lieche set cc=#{cc},qsz=#{qsz},mdz=#{mdz},fcsj=#{fcsj},dzsj=#{dzsj},pj=#{pj},ptzjg=#{ptzjg},wpjg=#{wpjg},rwjg=#{rwjg} where lcid=#{lcid}
</update>
<!-- 查询返回的是 list<map> -->
<!-- resultType 就是返回查询结果的类型,而如果是resultMap=则返回的就是你定义的javabean -->
<select id="selectlieche" parameterType="int" resultType="java.util.Map">
select * from lieche where lcid=#{lcid}
</select>
<!-- resultType 就是返回查询结果的类型,而如果是resultMap=则返回的就是你定义的javabean -->
<select id="selectall" parameterType="java.util.Map" resultType="java.util.Map">
select * from lieche where 1=1
<if test=" null != cc and cc!=''" >
and cc = #{cc}
</if>
<if test=" null != qsz and qsz!=''" >
and qsz = #{qsz}
</if>
<if test=" null != mdz and mdz!=''" >
and mdz = #{mdz}
</if>
<if test=" null != fcsj and fcsj!=''" >
and fcsj = #{fcsj}
</if>
<if test=" null != dzsj and dzsj!=''" >
and dzsj = #{dzsj}
</if>
<if test=" null != pj and pj!=''" >
and pj = #{pj}
</if>
<if test=" null != ptzjg and ptzjg!=''" >
and ptzjg = #{ptzjg}
</if>
<if test=" null != wpjg and wpjg!=''" >
and wpjg = #{wpjg}
</if>
<if test=" null != rwjg and rwjg!=''" >
and rwjg = #{rwjg}
</if>
</select>
三、注意事项
1、管理员账号:admin 密码:admin 数据库配置文件datasource.properties
2、开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。
3、数据库文件名是jspssmhcpw.sql,系统名称ssmhcpw
4、系统首页地址:http://127.0.0.1:8080/ssmhcpw/login.jsp
四 系统实现