1、struts hibernate的增删改查magiczhou 超详细Struts2+hibernate3简单使用由于是用MyEclipse自动生成hibernate的一些信息,所以要先进行数据库的设计数据库名称为 hibernate_test 这里演示只用了一个表Userinfo表的结构如图这里是使用Mysql的数据库 大家可以自己创建(由于在这里是使用MyEclipse来自动加入hibernate的支持,数据库要先建立好(可能实际开发中,都是手工加入hibernate框架,数据库都是由hibernate自己生成,不用自己去创建,就要写好相关的javaBean,这里不多说))我这里使用的Mye
2、clipse8.6 首先在myeclipse中创建好一个 “数据库连接信息” (不知道这样的说法正不争取,看图)(如何打开 DB Browser - window - show view - DB Browser 右键)然后弹出一个信息框,填写相关信息,如下Finish之后,双击打开刚刚创建的数据库连接大家就可以看到数据库里面的信息了返回界面,创建一个web项目 如图:先加入hibernate 的支持。看图(是hibernate 的那个)弹出信息框,继续Next ,保持这一步的默认就好,继续next,可以看到这个界面然后下面的信息会自动填补上去的,继续 Next ,看到如下图这个是hibern
3、ate的sessionFactory 然后就可以Finish 了。 是不是步骤挺多的。 我在这写文章更烦 现在下图显示内容没有什么,等下我们让myeclipse自动帮我们添加信息进去2跳转到 DB Browser 视图,如图右键这张数据表(userinfo)在弹出的信息框根据自己的需要,选择自己的项目和目录等。如图- Next然后再看下hibernate.cfg.xml现在看下项目目录情况自己新建文件夹或者包现在的情况明显类的位置不好,需要把一些类移动到别的包上 ,右键要移动的UserinfoDAO.java 如下:(选中红色那个,然后移动到自己想要的包上或者文件夹上)我们需要为Userinf
4、oDAO.java 导出接口也是右键UserinfoDAO.java 在弹出的对话框自己选择需要的方法 或者全选了也没事然后在把这个接口类移到别的包下我还创建了hibernate方法调用的工厂类 UserinfoFactory.java(com.laogen.Factory)public class UserinfoFactory public static UserinfoService getMethod() return new UserinfoDAO(); hibernate的操作基本就做完了图片好多啊 晕 这个是我src目录下的所有文件现在hibernate算ok了,剩下Struts
5、2了,看下如何添加Struts2的 也是跟hibernate差不多的,就是步骤有点多,不知道大家在看这篇文章的时候会不会觉得烦,如果觉得烦,也没办法的,开发这个东西就是这样。你要知道我在电脑上敲代码和截图,不说了弹出信息框,请按照红色方框选择剩下就是加入jsp和action了,这些基本跟前面我写的文章 struts2的增删改查 (不知道的可以自己去看看,就在我的XX博客上)没有多少区别,主要是action 使用hibernate 的一些方法,有所不同,hibernate已经帮我们管理数据库的一些操作,开发更加方便。下面是我写的简单的UserinfoAction ,主要就是 增删改查 的功能实现
6、package com.laogen.Action;import java.util.List;import org.apache.struts2.ServletActionContext;import org.hibernate.Session;import org.hibernate.Transaction;import com.laogen.Factory.UserinfoFactory;import com.laogen.Util.HibernateSessionFactory;import com.laogen.pojo.Userinfo;public class UserinfoA
7、ction private UserinfoFactory factory; private Session session = HibernateSessionFactory.getSession(); private Transaction tx = session.beginTransaction(); /事务 private List list; private Userinfo userinfo; public Userinfo getUserinfo() return userinfo; public void setUserinfo(Userinfo userinfo) this
8、.userinfo = userinfo; public List getList() return list; public void setList(List list) this.list = list; /显示用户列表 SuppressWarnings( unchecked, static-access ) public String list() System.out.println(list方法); factory = new UserinfoFactory(); list = factory.getMethod().findAll(); /findAll 方法查询所有信息 ret
9、urn list; /显示修改用户信息 SuppressWarnings( static-access ) public String update() String id = ServletActionContext.getRequest().getParameter(id); /接收要删除的id int iid = Integer.parseInt(id); factory = new UserinfoFactory(); userinfo = factory.getMethod().findById(iid); /findById 是根据id查到该id的记录 return update;
10、 /显示修改用户信息 SuppressWarnings( static-access ) public String updated() String id = ServletActionContext.getRequest().getParameter(id); /接收要删除的id String name = ServletActionContext.getRequest().getParameter(name); /接收要删除的id String pass = ServletActionContext.getRequest().getParameter(pass); /接收要删除的id i
11、nt iid = Integer.parseInt(id); factory = new UserinfoFactory(); userinfo = factory.getMethod().findById(iid); /findById 是根据id查到该id的记录 userinfo.setName(name); userinfo.setPass(pass); try factory.getMethod().merge(userinfo); /merge 是执行修改 mit();/提交事务 catch (Exception e) e.printStackTrace(); tx.rollback
12、(); finally if(session != null) session.close();/关闭session return list(); /修改之后再重新查询一边数据 /删除用户 SuppressWarnings( static-access ) public String delete() String id = ServletActionContext.getRequest().getParameter(id); /接收要删除的id int iid = Integer.parseInt(id); factory = new UserinfoFactory(); userinfo
13、= factory.getMethod().findById(iid);/findById 是根据id查到该id的记录 try factory.getMethod().delete(userinfo); mit();/提交事务 catch (Exception e) e.printStackTrace(); tx.rollback(); finally if(session != null) session.close(); /关闭session return list(); /删除之后再重新查询一边数据 /添加用户信息 SuppressWarnings( static-access ) pu
14、blic String add() String name = ServletActionContext.getRequest().getParameter(name); /接收要添加的name String pass = ServletActionContext.getRequest().getParameter(pass); /接收要添加的pass userinfo = new Userinfo(); userinfo.setName(name); userinfo.setPass(pass); try factory.getMethod().save(userinfo); mit();
15、/提交事务 catch (Exception e) e.printStackTrace(); tx.rollback(); finally if(session != null) session.close();/关闭session return list(); /添加之后再重新查询一边数据 然后看下 struts.xml 用了个通配符 * 代码更加精简 /list.jsp /1.jsp 然后就是页面的代码,有4个页面 index.jsp、add.jsp、update.jsp、list.jspIndex.jsp (就是个连接,查询所有的信息) 登陆界面 listadd.jsp 增加员工 &nb
16、sp; 增加信息 信息 录入 name pass update.jps 修改 修改 项目 录入 name input type=text name=name value= input type=hidden name=id value= password input type=text name=pass value= list.jsp 查询所以信息界面 用户信息 number name password operate input type=button value=修改 onclick=window.location.href=Userinfo_update?id=+ input type=button value=删除 onclick=if(window.confirm(确定要删除吗?)=true)window.location.href=Userinfo_delete?id=+ 终于完了 谢谢
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1