麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發(fā)設計 > 正文

使用struts2+hibernate的增、刪、改、查構架簡單的學生管理系統(tǒng)

2019-11-15 00:33:35
字體:
供稿:網(wǎng)友
使用struts2+hibernate的增、刪、改、查構架簡單的學生管理系統(tǒng)

工程環(huán)境:MyEclipse8.5

其他配置:Hibernate框架+jtds鏈接數(shù)據(jù)庫驅(qū)動+Sql2008數(shù)據(jù)庫+MyEclipse serevr+JDK1.7

開發(fā)環(huán)境:Win7x64

這個項目用到的jtds數(shù)據(jù)庫鏈接驅(qū)動需要導入jdts-1.2.jar包

1.先創(chuàng)建數(shù)據(jù)庫:

兩張表cls(班級班)、stu(學生表)

create database student --創(chuàng)建學生數(shù)據(jù)庫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創(chuàng)建web工程項目student

2.2加載struts2

項目名右鍵>MyEclipse>Addstruts

2.2加載hibernate3.3

項目名右鍵>MyEclipse>Addhibernate

2.3映射數(shù)據(jù)庫

打開數(shù)據(jù)庫DB Browser>new...>...>打開數(shù)據(jù)庫>選擇兩張表>映射>OK

2.4寫增刪改查方法

2.41查詢(主界面就是一個查詢,點擊班級標簽顯示這個班級的所有學生也是查詢,詳細 是根據(jù)學生ID進行查詢輸出學生信息,所以不一一舉出)

主界面ok_n.jsp,由于主界面的數(shù)據(jù)在數(shù)據(jù)庫中取出,所以要先訪問fianall.action的test方法在數(shù)據(jù)庫中取出數(shù)據(jù),再在頁面遍歷出來

index.jsp跳轉(zhuǎn)臨時網(wǎng)頁

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

  到test.java中查詢數(shù)據(jù),返回到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中取出班級數(shù)據(jù),在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數(shù)據(jù),返回到增加學生頁面

<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);//調(diào)用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中刪除數(shù)據(jù)

<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方法也要添加事務方可正常執(zhí)行    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中查到數(shù)據(jù),并在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>

  修改好數(shù)據(jù),點擊更新按鈕提交到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


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 精品国产96亚洲一区二区三区 | 欧洲成人综合网 | 免费观看一级黄色片 | 男人的天堂色偷偷 | 男女羞羞在线观看 | 97视频| 毛片国产| 久久777国产线看观看精品 | 成年人精品视频 | 亚洲欧美成aⅴ人在线观看 av免费在线播放 | 91麻豆精品国产91久久久更新资源速度超快 | 久久久无码精品亚洲日韩按摩 | 亚洲综合一区在线观看 | 巨根插入| 亚洲国产精品久久久 | 欧美三级短视频 | v11av在线视频成人 | 国产精品99免费视频 | 国产精品久久久久久久久久大牛 | 欧美3p激情一区二区三区猛视频 | 毛片免费视频观看 | 日韩中文字幕一区二区三区 | 精品一区二区免费视频视频 | 日本精品久久久一区二区三区 | 久久久三级免费电影 | 国产精品视频中文字幕 | 国产91丝袜在线熟 | 成人黄视频在线观看 | 免费a视频 | 欧美在线观看黄色 | 欧美爱爱视频免费看 | 国产亚洲黑人性受xxxx精品 | 极品美女一级毛片 | av中文字幕免费在线观看 | 精品久久999 | h色在线观看| 日本aaa一级片 | 久久亚洲成人 | 中国女警察一级毛片视频 | 99国产精成人午夜视频一区二区 | 黄视频网址 |