这几天复习了一下Struts+Hibernate的知识,在做的过程中真的发现很多自己以为会了的,但是到用了的时候还是忘记了。以一个数据库表名Notebook的例做了一下增删改查!
1、添加Struts及HIbernate这个就不必说了
2、定义接口与实现层的操作类
接口里的方法
public void addnew(Notebook notebook);
public void delbook(int id);
public void updatebook(Notebook notebook);
public List showbook();
public Notebook getbook(int id);
3、在Struts的Action中声明接口及实现层的类,调用其内的方法对数据库进行操作
4、实现层类中的增删改查四大金刚的基本写法
NotebookDAO dao = new NotebookDAO();
Session session = dao.getSession();
Transaction tr = session.beginTransaction();
基本上这个就不用解释了
A、新增方法:
dao.save(notebook);
//不要忘记了提交一下事情关闭一下session就OK了
tr.commit();
session.close();
B、删除方法:
//先根据ID号查找出你要删除的那一条记录
Notebook notebook = dao.findById(id);
//再对数据库进行操作
dao.delete(notebook);
C、修改方法:
session.update(notebook);
tr.commit();
D、显示数据
Query query = session.createQuery("from Notebook");
return query.list();
5、显示数据时应该注意的问题:
Inotebook impl = new NotebookImpl();//用接口来声明实现层的类,从而达到封装效果
request.setAttribute("mylist", impl.showbook());//用此方法对数据传递到jsp页
return mapping.findForward("ok");//跳转
到jsp页面后使用“循环标签”进行读取数据
<logic:iterate id="aaa" name = "mylist">
<bean:write name = "aaa" property="id"/><br>
</logic:iterate>
有人问这里的ID和NAME是什么?我看到网上有一个人这样形容:“ID相当于对象,NAME相对于这个对象的属性”
6、得到修改数据传递到JSP页面时注意的问题
Imybook impl = new NotebookImpl();
//首先要用ID查找出你要修改的那条数据,然后再用方法进行修改
//在修改的页面有一个隐藏的ID <html:hidden property="id"/>
Notebook notebook = (Notebook)impl.getbook(new Integer(request.getParameter("id")));
addbookForm.setName(notebook.getName());
addbookForm.setOicq(notebook.getOicq());
addbookForm.setEmail(notebook.getEmail());
addbookForm.setContext(notebook.getContext());
return mapping.findForward("ok");