首页 > 学院 > 开发设计 > 正文

使用struts2+hibernate的增、删、改、查构架简单的学生管理系统

2019-11-15 00:33:35
字体:
来源:转载
供稿:网友
使用struts2+hibernate的增、删、改、查构架简单的学生管理系统

工程环境:MyEclipse8.5

其他配置:Hibernate框架+jtds链接数据库驱动+Sql2008数据库+MyEclipse serevr+JDK1.7

开发环境:Win7x64

这个项目用到的jtds数据库链接驱动需要导入jdts-1.2.jar包

1.先创建数据库:

两张表cls(班级班)、stu(学生表)

create database student --创建学生数据库use studentcreate table cls (cls_id char(10) PRimary key,--主键cls_name char(15)); create table stu (stu_id int primary key,--主键stu_name char(15),stu_age int,id char(10) foreign key(id) references class (id)--外键); 

2.student工程

2.1创建web工程项目student

2.2加载struts2

项目名右键>MyEclipse>Addstruts

2.2加载hibernate3.3

项目名右键>MyEclipse>Addhibernate

2.3映射数据库

打开数据库DB Browser>new...>...>打开数据库>选择两张表>映射>OK

2.4写增删改查方法

2.41查询(主界面就是一个查询,点击班级标签显示这个班级的所有学生也是查询,详细 是根据学生ID进行查询输出学生信息,所以不一一举出)

主界面ok_n.jsp,由于主界面的数据在数据库中取出,所以要先访问fianall.action的test方法在数据库中取出数据,再在页面遍历出来

index.jsp跳转临时网页

<script language="javascript">window.location.href="fianall.action";</script>

  到test.java中查询数据,返回到ok_n.jsp主页面中

<action name="fianall" class="work.test"><result name="0">/ok.jsp</result><result name="1">/ok_n.jsp</result></action>

  test.java

package work;import java.util.ArrayList;import java.util.List;import com.Stu;import com.StuDAO;public class test {public List<Stu> i = new ArrayList<Stu>();public String execute() { //System.out.println("1");StuDAO  In=new StuDAO();    i=In.findAll();    return "1"; }}

  ok_n.jsp

<table class="bordered">  <tr>  <td><a href="add_news.action">增加学生</a></td>  <td></td>  <td></td>  <td></td>  <td><a href="fianall.action">刷新</a></td>  </tr>  <tr>  <th>学生编号</th>  <th>学生姓名</th>  <th>学生年级</th>  <th>学生班级</th>  <th>操作</th>  </tr> <s:iterator value="i"> <tr><td><s:property value="stuId"/></td><td><s:property value="stuName"/></td><td><s:property value="age"/></td><td><a href="only.action?cls_id=${cls.clsId }"><s:property value="cls.clsName"/></a></td><td><a href="del.action?stu_id=${stuId }&age=${age}&stu_name=${stuName}&cls_id=${cls.clsId }">删除</a><a href="up.action?stu_id=${stuId }">修改</a><a href="news.action?stu_id=${stuId }">详细</a></td></tr></s:iterator></table>

3个查询效果,主页、班级所有学生、学生信息

2.42增加学生

<td><a href="add_news.action">增加学生</a></td>

点击 增加学生 页面标签到add_news.action,在add_news.java中取出班级数据,在add.jsp页面遍历出班级

<action name="add_news" class="work.add_news"><result name="1">/add.jsp</result></action>

add_news.java

package work;import java.util.ArrayList;import java.util.List;import com.Cls;import com.ClsDAO;public class add_news {public List<Cls> i = new ArrayList<Cls>();public String execute() { //System.out.println("1");ClsDAO  In=new ClsDAO();    i=In.findAll();    return "1"; }}

  add.jsp

<form action="add.action" method="post">  <table class="bordered">  <tr><th><p>增加学生<s:property value="news"/></p></th></tr><tr><td><p>输入学生姓名:<input type="text" name="name"></p></td></tr><tr><td><p>输入学生年龄:<input type="text" name="age"></p></td></tr><tr><td><p>选择所属班级:<select name="cls_name"><s:iterator value="i"><option value="${clsId }">${clsName }</option></s:iterator></select><input type="submit" value="增加">  </p></td>  </tr>  <tr><td><a href="fianall.action">返回</a></td></tr> </table>  </form>

 

 点击增加按钮提交表单到add.action,在add.java中save数据,返回到增加学生页面

<action name="add" class="work.add"><result name="1">/add.jsp</result></action>

 add.java

package work;import com.Cls;import com.Stu;import com.StuDAO;public class add {public String name;//姓名public Integer age;//年龄public String cls_name;//班级号//public String news;public String execute ()    {try{//System.out.println(name);//System.out.println(age);//System.out.println(cls_name);    Cls s=new Cls();    s.setClsId(cls_name);        Stu Stu_add = new Stu(s,name,age);    StuDAO add = new StuDAO();add.save(Stu_add);//调用dao里面自带的seve方法(修改后),下面是修改后的//System.out.println(s.getClsId());}catch(Exception e){System.out.println(e.getMessage());}//news="添加成功";return "1";     }}

  hibernate DAO里面的save增加了事务

public void save(Stu transientInstance) {log.debug("saving PersonInf instance");try {session s=getSession();//事务Transaction t=s.beginTransaction();getSession().save(transientInstance);t.commit();log.debug("save successful");} catch (RuntimeException re) {log.error("save failed", re);throw re;}}

2.43删除学生

<a href="del.action?stu_id=${stuId }&age=${age}&stu_name=${stuName}&cls_id=${cls.clsId }">删除</a>

  点击 删除 标签到del.action,在del.java中删除数据

<action name="del" class="work.del"><result name="1">/index.jsp</result></action>

  del.java

package work;import java.util.ArrayList;import java.util.List;import com.Stu;import com.StuDAO;public class del {public String stu_id;//得到学生编号public List<Stu> i = new ArrayList<Stu>();public String execute() {   StuDAO  In=new StuDAO();   i=In.findstuid(stu_id);//用学生编号查询出学生信息LIST   In.delete(i.get(0));//用GET(0)到学生,用DAO里面的Ddelete方法del学生,DAO 里面的 delete方法也要添加事务方可正常执行    return "1"; }}

  hibernate DAO里面的delete增加了事务

public void delete(Stu persistentInstance) {log.debug("deleting Stu instance");try {//----------------事务Session s=getSession();Transaction t=s.beginTransaction();getSession().delete(persistentInstance);t.commit();log.debug("delete successful");} catch (RuntimeException re) {log.error("delete failed", re);throw re;}}

  2.44修改学生

<a href="up.action?stu_id=${stuId }">修改</a>

点击修改 标签到up.action,在up.java中查到数据,并在up.jap中遍历出来

<action name="up" class="work.up"><result name="1">/up.jsp</result></action>

  up.jsp

<s:iterator value="i"> <form action="updat.action?stuId=${stuId }&cls_id=${cls.clsId}" method="post"><table class="bordered"><tr><th><P>修改</th></tr> <s:iterator value="i"><tr><td><P>学生编号:<s:property value="stuId"/></P></td></tr><tr><td><P>学生名称:<input type="text" name="stu_name" value="${stuName }"></P></td></tr><tr><td><P>学生年龄:<input type="text" name="age" value="${age }"></P></td></tr><tr><td><P>学生班级:<s:property value="cls.clsName"/></P></td></tr></s:iterator><tr><td><input type="submit" value="更新"></td></tr><tr><td><a href="fianall.action">返回</a></td></tr></table></form></s:iterator>

  修改好数据,点击更新按钮提交到updat.action,到updat.java中修改,成功后返回主界面

<action name="updat" class="work.updat"><result name="1">/index.jsp</result></action>

  updat.java

package work;import java.util.List;import com.Cls;import com.ClsDAO;import com.Stu;import com.StuDAO;public class updat {public Integer stuId;public String cls_id;public String stu_name;public Integer age;public String execute() throws Exception{     Stu students=new Stu();  StuDAO studentsDAO=new StuDAO();   students.setStuId(stuId);   students.setAge(age);   students.setStuName(stu_name);   Cls classes=new Cls();   classes.setClsId(cls_id);   ClsDAO classesDAO=new ClsDAO();   List list= classesDAO.findByExample(classes);   for(Object object:list)   {   classes=(Cls)object;   }        students.setCls(classes);        studentsDAO.merge(students);//更新需要添加事务return "1";}}

  hibernate DAO里面的merge增加了事务

public Stu merge(Stu detachedInstance) {log.debug("merging Students instance");try {//事务Session session=getSession();Transaction transaction=session.beginTransaction(); Stu result = (Stu) getSession().merge(detachedInstance);transaction.commit();log.debug("merge successful");return result;} catch (RuntimeException re) {log.error("merge failed", re);throw re;}}

  最终结构

awei

2015年6月11日11:38:15


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表