Hibernate+struts2之ajax异步实现简单的增删改查例子

  • 使用hibernate表连接
  • entity代码(代码过多就不上传了,自行封装)

Publisher实体

public class Publisher implements Serializable{
	private int id;
	private String name;
	private String address;
}

Publisher.hbm.xnl



	
	
	   
	      
	   
	   
	   
	
	
  • hibernate.cfg.xml


	
	
		
		com.mysql.jdbc.Driver
		jdbc:mysql://localhost/book
		root
		root
		
		20
		1
		5000
		100
		3000
		2
		true
		
		org.hibernate.dialect.MySQLDialect
		
		update
		
		false
		
		true
		
		
		true
			
		org.hibernate.cache.EhCacheProvider
		
		
		 
		
		true
		
		true
		
		
		true
		 
		
		
	
  • utils

创建表(数据可手动添加)

public class ExportDB {
	public static void main(String[] args) {
		//读取配置文件,configure()该方法默认读取src下名为hibernate.cfg.xml
		Configuration cfg=new Configuration().configure();
		//将类导成表
		SchemaExport se=new SchemaExport(cfg);
		//参数,显示一些脚本等信息,true即可
		se.create(true, true);
	}
}

HibernateUtils

public class HibernateUtils {
	private static SessionFactory sessionFactory;
	static{
		try {
			sessionFactory=new Configuration().configure().buildSessionFactory();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public static SessionFactory getSessionFactory(){
		return sessionFactory;
	}
	public static Session getSession(){
		return sessionFactory.openSession();
	}
	public static void closeSession(Session session){
		if(session!=null&&session.isOpen()){
			session.close();
		}
	}
}
  • dao

PublisherDao

public class PublisherDao {
	private static PublisherDao instances=new PublisherDao();
	public static PublisherDao getInstances() {
		return instances;
	}
	public void add(Publisher publisher){
		Session session=HibernateUtils.getSession();
		session.beginTransaction();
		
		session.save(publisher);
		
		session.getTransaction().commit();
		HibernateUtils.closeSession(session);
	}
	public void upd(Publisher publisher){
		Session session=HibernateUtils.getSession();
		session.beginTransaction();
		
		session.update(publisher);
		
		session.getTransaction().commit();
		HibernateUtils.closeSession(session);
	}
	public Publisher findOne(int id){
		Publisher publisher=new Publisher(); 
		Session session=HibernateUtils.getSession();
		
		//建议使用select
		//session.load(publisher, id);
		publisher=(Publisher)session.createQuery("from Publisher p where p.id=?")
			.setInteger(0, id)
			.list()
			.get(0);
		
		HibernateUtils.closeSession(session);
		return publisher;
	}
	public List findAll(){
		List list=new ArrayList();
		Session session=HibernateUtils.getSession();
		
		list=session.createQuery("from Publisher").list();
		
		HibernateUtils.closeSession(session);
		return list;
	}
	public void del(int id){
		Session session=HibernateUtils.getSession();
		session.beginTransaction();
		
		session.delete(findOne(id));
		
		session.getTransaction().commit();
		HibernateUtils.closeSession(session);
	}
}
  • gson

GsonUtils

public class GsonUtils {
	private static Gson gson=new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
	public static String object2json(Object obj){
		return gson.toJson(obj);
	}
	public static Object json2Object(String json,Class c){
		return gson.fromJson(json, c);
	}
	public static List json2List(String json,TypeToken tt){
		return gson.fromJson(json, tt.getType());
	}
}
  • action

BaseAction

/**
 * action基类
 * @author zy
 * 封装了常用的方法,以解耦方式获得常用对象
 */
public class BaseAction extends ActionSupport {
	/**
	 * get request obj
	 * @return
	 */
	public Map getRequest(){
		//得到上下文
		ActionContext ac=ActionContext.getContext();
		return (Map)ac.get("request");
	}
	/**
	 * get session obj
	 * @return
	 */
    public Map getSession(){
    	ActionContext ac=ActionContext.getContext();
    	return ac.getSession();
    }
    /**
	 * get application obj
	 * @return
	 */
	public Map getApplication() {
		ActionContext ctx = ActionContext.getContext();
		return ctx.getApplication();
	}
	/**
	 * 获得Response对象,只能用耦合形式,Response可以获得out对象,用于ajax
	 * @return
	 */
	public HttpServletResponse getResponse() {
		ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");
		return ServletActionContext.getResponse();
	}
	/**
	 * 获得out对象
	 * @return
	 * @throws IOException
	 */
	public PrintWriter getOut() throws IOException {
		return getResponse().getWriter();
	}
	
}

PublisherAction

public class PublisherAction extends BaseAction{
	private List list;
	private Publisher publisher=new Publisher();
	private String name;
	private String address;
	private int id;
	public String list() throws Exception {
		list=PublisherDao.getInstances().findAll();
		String json=GsonUtils.object2json(list);
		getOut().println(json);
		return null;
	}
	public String add() throws Exception {
		publisher.setName(name);
		publisher.setAddress(address);
		PublisherDao.getInstances().add(publisher);
		return null;
	}
	public String toUpd() throws Exception {
		publisher=PublisherDao.getInstances().findOne(id);
		String json=GsonUtils.object2json(publisher);
		getOut().println(json);
		return null;
	}
	public String del() throws Exception {
		PublisherDao.getInstances().del(id);
		return null;
	}
	public String upd() throws Exception {
		publisher.setId(id);
		publisher.setName(name);
		publisher.setAddress(address);
		PublisherDao.getInstances().upd(publisher);
		return null;
	}
	//---
	public List getList() {
		return list;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public void setList(List list) {
		this.list = list;
	}
	public Publisher getPublisher() {
		return publisher;
	}
	public void setPublisher(Publisher publisher) {
		this.publisher = publisher;
	}
}
  • index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>


  
    
    
    
    
  
  
  
  
	名称:

地址:


  • strurs.xml

	
	
		
	

web.xml


	
		struts2
		org.apache.struts2.dispatcher.FilterDispatcher
	
	
		struts2

		/*
	
  
    index.jsp
  

所用到的包

Hibernate+struts2之ajax异步实现简单的增删改查例子_第1张图片

jquery-1.8.3.js

 

你可能感兴趣的:(Hibernate,Struts2)