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
查询页面如下
id name source industry level phone moblie 增加
删除
修改
增加页面
修改页面
${name}
删除页面
直接删除,没有页面
不足之处:
1.实体类和Action不知道怎么分开,全部写在一起了?
2.把类放在rquest域里面,不知道怎么在
3.不熟悉,导致这个小的例子做了大概4个小时左右