题外话:现在在学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}">
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,邮箱