搜档网
当前位置:搜档网 › struts2与hibernate结合crud实例

struts2与hibernate结合crud实例

struts2与hibernate结合crud实例
struts2与hibernate结合crud实例

题外话:现在在学Java曾经遇到过crud的问题在网上找了半天资料都不是很详细,现在终于会了就把他们总结了一下,希望对everyboday 都有所帮助:

题目:对Book表用struts2\hirbernate\写crud

技术(配置):myeclpse8.0\tomacat\navicat\mysql….

步骤:1.新建web项目(注意选择Java EE5.0);

2.用myeclpse导入hibernate struts2的类库;

3.数据库建表输入少量数据;

4.用用hibernate反转生成Book.java BookDao.java

BookDAO extends BaseHibernateDAO

/BaseHibernateDAO代码如下:

package com.runjoin.dao;

import java.io.Serializable;

import java.util.List;

import org.hibernate.Session;

import org.hibernate.Transaction;

/**

* 封装DAO方法

* @author fan

*/

public class BaseHibernateDAO implements IBaseHibernateDAO { public Session getSession() {

return HibernateSessionFactory.getSession();

}

public void save(Object obj){

Session session = this.getSession();

Transaction trans = session.beginTransaction();

try{

session.save(obj);

https://www.sodocs.net/doc/5217059604.html,mit();

}catch (Exception e) {

e.printStackTrace();

trans.rollback();

}finally{

session.close();

}

}

public void update(Object obj){

Session session = this.getSession();

Transaction trans = session.beginTransaction();

try{

session.update(obj);

https://www.sodocs.net/doc/5217059604.html,mit();

}catch (Exception e) {

e.printStackTrace();

trans.rollback();

}finally{

session.close();

}

}

public void delete(Object obj){

Session session = this.getSession();

Transaction trans = session.beginTransaction();

try{

session.delete(obj);

https://www.sodocs.net/doc/5217059604.html,mit();

}catch (Exception e) {

e.printStackTrace();

trans.rollback();

}finally{

session.close();

}

}

public Object findByID(Class classname,Serializable id ){

Session session = this.getSession();

Object obj = null;

try{

obj =session.get(classname, id);

}catch (Exception e) {

e.printStackTrace();

}finally{

session.close();

}

return obj;

}

public List findAll(String classname){

Session session = this.getSession();

try{

return session.createQuery("from "+classname).list();

}catch (Exception e) {

e.printStackTrace();

}finally{

session.close();

}

return null;

}

}

5.配置struts.xml

"https://www.sodocs.net/doc/5217059604.html,/dtds/struts-2.1.dtd">

value="true">

type="redirect">/Book_all.action

class="com.runjoin.action.BookAction"

method="{2}">

/{1}_{2}_success.jsp

6.新建BookAction代码如下:

package com.runjoin.action;

import java.util.List;

import com.opensymphony.xwork2.ActionSupport; import com.runjoin.crud.entity.Book;

import com.runjoin.crud.entity.Category;

import com.runjoin.dao.BookDAO;

import com.runjoin.dao.IBaseHibernateDAO;

public class BookAction extends ActionSupport { /**

* 封装Book的CRUD方法

* @author fan

*/

private Book book;

private List books;

private Category category;

private int id;

/**

* @return the id

*/

public int getId() {

return id;

}

/**

* @param id the id to set

*/

public void setId(int id) {

this.id = id;

}

private IBaseHibernateDAO dao = new BookDAO();

public String all() {

books = dao.findAll("com.runjoin.crud.entity.Book b left join fetch b.category ");

return SUCCESS;

}

public String add() {

dao.save(book);

return "allbook";

}

public String update() {

dao.update(book);

return "allbook";

}

public String delete() {

dao.delete(book);

return "allbook";

}

public String updateInput() {

book=(Book)dao.findByID(Book.class, id);

return SUCCESS;

}

public String execute() {

// TODO Auto-generated method stub

return SUCCESS;

}

/**

* @return the book

*/

public Book getBook() {

return book;

}

/**

* @return the books

*/

public List getBooks() {

return books;

}

/**

* @return the category

*/

public Category getCategory() {

return category;

}

/**

* @return the dao

*/

public IBaseHibernateDAO getDao() {

return dao;

}

/**

* @param book

* the book to set

*/

public void setBook(Book book) {

this.book = book;

}

/**

* @param books

* the books to set

*/

public void setBooks(List books) {

this.books = books;

}

/**

* @param category

* the category to set

*/

public void setCategory(Category category) { this.category = category;

}

/**

* @param dao

* the dao to set

*/

public void setDao(IBaseHibernateDAO dao) { this.dao = dao;

}

}

7.jsp部分:

a.Book_all_sucsess.jsp (列表)

书籍列表:

添加新书

序号:

名字:

作者:

类别名称:

onclick="location.href='Book_updateInput.action?id=

value="id"/>'">

onclick="location.href='Book_delete.action?book.id=

value="id"/>'">

b.(添加列表)Book_add_success.jsp

<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%>

<%@taglib uri="/struts-tags"prefix="s"%>

添加书籍

var="cate">

list="#cate.categorys"listKey="id"

listValue="https://www.sodocs.net/doc/5217059604.html,"headerKey="-1"headerValue="请选择书籍类别"/>

c.(修改数据)Book_updateInput_success.jsp

<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%>

<%@taglib uri="/struts-tags"prefix="s"%>

添加书籍

序号:

的信息修改

var="cate">

listValue="name"headerKey="-1"headerValue="请选择书籍类别"/>

代码运行效果如下图:

补充说明:代码有一个问题:在添加书籍时选择列表后不能提交到数据库,如有其它问题请留言geduo1986@https://www.sodocs.net/doc/5217059604.html,邮箱

相关主题