浅谈做的第一个项目学生后台管理系统

本文档介绍了使用Hibernate框架和Struts2框架实现学生后台管理系统的步骤,包括jar包导入、配置文件编写、实体类映射、接口与Action实现,以及模块化的编程建议。详细阐述了从项目初始化到登录验证、数据库操作的全过程。

本项目主要是基于运用Hibernate的框架和Struts2的框架对学生后台管理系统进行记录的,在这个小demo中还是有学到很多有用的思路。

1.在整个项目开始需要的是对jar包的导入,主要还是Hibernate,Struts2,junit,还有sql的包的导入,同时还要又比较完备的前端页面显示,部分静态页面就不用说了,web.xml文档配置的信息主要还是和过滤器filter有关的信息,通过运用Struts2过滤器来过滤所有action的请求;

2,在整个项目中,先是要对配置文档进行配置,特别是Struts.xml文档的编写,还有对Hibernate.cfg.xml的编写。Struts.xml文档主要存放的信息大体是对action的详细信息的配置还有对action的动态跳转各种页面的处理;而Hibernate.cfg.xml文档则是整个Java工程与数据库之间的联系,通过对数据库连接信息的配置还有就是对实体类与数据库之间的联系进行的映射关系,同时在数据库里面建立对应的表格或是使用SchemaExport创建表结构,其程序如下:

Configuration config=new Configuration().configure();
SchemaExport export =new SchemaExport(config);
export.create(true, true);

3.接下来就是对实体类的进行创建,创建之后还得通过实体类.hbm.xml对数据的信息进行一一的对应,在类型还有名称等方面信息的配置,之后切记要在Hibernate.cfg.xm文档中加上mapping映射;

4.之后就是对登录的实体类user进行规定,通过在数据库中先添加信息,再通过进行程序编写进行验证;

5.编写所要用到的基本工具类,就是建立sessionfactory的一个工具类方便以后进行调用,大抵程序如下:

public class mysessionfactory {
private static SessionFactory sessionfactory;
private mysessionfactory() {
}
public static SessionFactory getSessionFactory() {
if (sessionfactory == null) {
Configuration config = new Configuration().configure();
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()
.applySettings(config.getProperties())
.buildServiceRegistry();
SessionFactory sessionfactory = config
.buildSessionFactory(serviceRegistry);
return sessionfactory;
} else {
return sessionfactory;
}
}
}

6.在实现上面获取sessionfactory的程序后就方便获取session,可以建立user和student的接口,以便在进行user和student建立实例的时候可以通过直接引用接口来对实体类的实例进行初始化,像学生类的接口主要如下所示:

public interface studentdao {
public List<student> allstudent();
public student qstudentbyid(String sid);
public boolean addstudent(student u);
public boolean updatestudent(student u);
public boolean deletestudent(String sid);
}

7.建立接口之后就是对该接口对应的实体类方法进行编写,建立实体类的话是对内部程序的编写进行完善实现各部分的详细功能,在每个小方法中基本都是啊哟建立session和事务然后在session和事务中对接收的数据进行操作,最后再提交事务,例如学生中的一个方法如下:

//增加学生的方法

public boolean addstudent(student u) {
u.setSid(newstudentid());
Transaction tx =null;
try {
Session session=mysessionfactory.getSessionFactory().getCurrentSession();
tx=session.beginTransaction();
session.save(u);
tx.commit();
return true;
} catch (Exception e) {
e.printStackTrace();
tx.commit();
return false;
}finally{
if(tx!=null){
tx=null;
}
}
}

//修改学生的方法

public boolean updatestudent(student u) {
Transaction tx =null;
try {
Session session=mysessionfactory.getSessionFactory().getCurrentSession();
tx=session.beginTransaction();
session.update(u);
tx.commit();
return true;
} catch (Exception e) {
e.printStackTrace();
tx.commit();
return false;
} finally{
  if(tx!=null){
tx=null;
}
}
}

7.接下来就是对action的方法进行编写,在编写action的过程中,最好还是要先进行一个父类的编写,可以在这个父类中实现一些网络的接口还有对ActionSupport这个类的继承,然后接收一些request,response的数据以便之后建立student还有user子类进行调用省去一些麻烦。其父类程序如下:

public class superaction extends ActionSupport implements ServletContextAware,ServletRequestAware, ServletResponseAware{
private static final long serialVersionUID = 1L;
protected HttpServletResponse ServletResponse;
protected HttpServletRequest ServletRequest;
protected HttpSession session;
protected ServletContext application;
@Override
public void setServletResponse(HttpServletResponse ServletResponse) {
this .ServletResponse=ServletResponse;
}
@Override
public void setServletRequest(HttpServletRequest ServletRequest) {
// TODO Auto-generated method stub
this.ServletRequest=ServletRequest;
this.session=this.ServletRequest.getSession();
}
@Override
public void setServletContext(ServletContext application) {
// TODO Auto-generated method stub
this.application=application;
}
}

通过以上的三个方法对应的输入值,在子类中就可以很便捷调用其request等数据;

8.接下来就是对action两个子类进行编写,在对useraction类的编写中,要注意登录界面是采用了模型驱动来接收表单的数据,然后对登录进行处理,基本在这个action的设计中基本都得返回一个字符串,这个字符串信息是为了在struts.xml文档中对action进行注册然后在action的result中要对应该字符串跳转的页面,然后action中调用的基本是上面第6点中的建立实体类的基本方法进行判断;

9.在struts.xml文档中也要注意通配符的使用对应的*代表的名字还有方法,在配置完struts.xml文档之后还要在jsp页面中的一些调用的地方加上调用的地址,基本调用的方法很多都是<%path %>加action中名空间+该action的名字_方法.action这个得方式进行调用,可能还会用到例如${session.方法}的方式来进行调用或是“”#session.modify_student.birthday“”这种方式进行调用

10.最好是每个步骤都单独对其一个方法或是一个模块进行模块化设计,不要都把所有模块堆一起进行编写,便于整个程序bug的检查,最好设计完一个模块之后就通过test对该模块进行单独的检查。

基本过程就是如此,我是菜鸟新手,就总结一下以后方便复习,我是按着教程来的,源代码的网址:http://download.youkuaiyun.com/detail/kebe_mo/9909756

java web学生成绩后台管理系统,基于mvc设计模式实现,可以为java毕业设计项目 项目描述 (1)该系统的用户分为教师和学生。教师的功能有:管理某一学生或课程的信息以及成绩,包括增、删、查、报表打印等;学生用户只能查看个人的信息以及成绩。 (2)系统运行在Windows平台上,要求有一个较好的图形用户界面,操作要求简单。 (3)运用学生成绩管理维护系统可以减轻学院教学人员的工作量,缩小开支,提高工作效率与准确率,能够节省时间,学生也能够尽快的知道自己的考试成绩,投入新的课程的学习或复习这次没有考过的课程。而学生成绩管理系统的应用也为今天的民办教育在未来市场的竞争力有所提高。 (4)学生成绩管理是一个非常繁琐与复杂的一项工作,一个原因就是工作量大,不好管。对于一个学校而言,管理好学生的成绩,是非常重要的。因此开发出一套学生成绩管理系统是非常必要的。 关于用户对我们产品的相关需求和建议: 1.界面尽量人性化,容易操作,简单易懂; 2.功能齐全,只有你想不到的,没有我们不到的; 3.页面整体设计上应尽量美观大方; 4.操作上能够根据需求进退自如。 运行环境 jdk7+tomcat7+mysql 项目技术(必填) Servlet+JSP+jdbc+bootstrap+jquery+js 数据库文件 链接: https://pan.baidu.com/s/1LDn-ssmcqphqI8HKwqAfJg 密码: ynbe jar包文件 链接:https://pan.baidu.com/s/1CJAQAT74hKD1MlsVwbCdCw 提取码:vuex
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值