Struts2+Hibernate 相结合的对数据库的增删改查

Hibernate部分

实体类Customer,同样是Action类

package cn.com.dao;
import java.util.List;
import java.util.Map;
import org.apache.struts2.interceptor.RequestAware;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.util.ValueStack;

import cn.com.util.Hibernate_Utils;
public class Customer implements RequestAware {
	private Integer id;
	private String name;
	private String source;
	private String industy;
	private String level;
	private String phone;
	private String moblie;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getSource() {
		return source;
	}

	public void setSource(String source) {
		this.source = source;
	}

	public String getIndusty() {
		return industy;
	}

	public void setIndusty(String industy) {
		this.industy = industy;
	}

	public String getLevel() {
		return level;
	}

	public void setLevel(String level) {
		this.level = level;
	}

	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public String getMoblie() {
		return moblie;
	}

	public void setMoblie(String moblie) {
		this.moblie = moblie;
	}

	/*
	 * author:命运的信徒date:2018/12/12arm:hibernate+Struts2结合,在页面上对数据库的数据进行增删改查
	 */
	private Map requetsmap;

	@Override
	public void setRequest(Map arg0) {
		// TODO Auto-generated method stub
		requetsmap = arg0;
	}

	public String query() {
		// 1.连接数据库
		Session session = Hibernate_Utils.openSession();
		Transaction tx = session.beginTransaction();
		// 2.查询语句
		Query query = session.createQuery("from Customer");
		List list = query.list();
		requetsmap.put("list", list);
		tx.commit();
		session.close();
		return "query";
	}

	public String add() {
		return "add";
	}

	public String addinfo() {
		// 增加信息
		Session session = Hibernate_Utils.openSession();
		Transaction tx = session.beginTransaction();
		Customer c = new Customer(id, name, source, industy, level, phone,
				moblie, requetsmap);
		session.save(c);
		tx.commit();
		session.close();
		return "addinfo";
	}

	public String delete() {
		// 删除信息
		Session session = Hibernate_Utils.openSession();
		Transaction tx = session.beginTransaction();
		//查询,由于页面
		Customer c = session.get(Customer.class, id);
		session.delete(c);
		tx.commit();
		session.close();
		return "delete";
	}

	public String update() {
		// 修改信息
		Session session = Hibernate_Utils.openSession();
		Transaction tx = session.beginTransaction();
		//查询,由于页面
		Query query= session.createQuery("from Customer where id=?");
		query.setLong(0, id);
	    Customer c=(Customer) query.uniqueResult();
	   ValueStack vs=ActionContext.getContext().getValueStack();
	   vs.push(c);
		return "update";
	}
	public String up() {
	delete();
	addinfo();
		return "up";
	}
	
	public Customer(Integer id, String name, String source, String industy,
			String level, String phone, String moblie,
			Map requetsmap) {
		super();
		this.id = id;
		this.name = name;
		this.source = source;
		this.industy = industy;
		this.level = level;
		this.phone = phone;
		this.moblie = moblie;
		this.requetsmap = requetsmap;
	}

	public Customer() {
		super();

	}

	@Override
	public String toString() {
		return "Customer [id=" + id + ", name=" + name + ", source=" + source
				+ ", industy=" + industy + ", level=" + level + ", phone="
				+ phone + ", moblie=" + moblie + "]";
	}
	
}

实体类的映射文件如下:
















Struts部分

连接

查看人员信息并对其进行增删改查

Strutx.xml配置文件











/sort.jsp


/one.jsp



/{1}.jsp




查询页面如下

 

idnamesourceindustrylevelphonemoblie增加
删除 修改

增加页面


    
   
   
   
   
   
   
   
   
    
  

修改页面


	
	
	${name}
	
		
		
		
		
		
		
		
		
		
		
	

删除页面

直接删除,没有页面

 

不足之处:

1.实体类和Action不知道怎么分开,全部写在一起了?

2.把类放在rquest域里面,不知道怎么在里面取出来,尝试用"#request.属性名",但是取不出来

3.不熟悉,导致这个小的例子做了大概4个小时左右

 

你可能感兴趣的:(java之ssh框架专栏)