将一个对人员增删改查的程序改成Hibernate+spring+struts方式,需要配置哪些文件? 如题。。我是新手,请高手指点 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.web.xml2.action的xml3.spring的xml4.hibernate的xml5.如果用spring注入相关,还要加相关service的xml baidu J2EE SSH 环境搭建配置文件很多,说不过来 http://blog.csdn.net/cai5/article/details/6565523S2SH -CRUD简单示例 S2SH -CRUD简单示例 一、 准备工作 开发环境:tomcat5+jdk6+mysql5+eclipse:eclipse-jee-helios-SR1-win32.zip. struts2+Spring2.0.6+Hibernate3.1。本示例通过对一个人力资源的系统,提供基本的增加、删除、修改、查询等功能。 lib包需要以下所示的这些包: antlr-2.7.6.jar commons-collections-3.2.jar commons-dbcp.jar commons-digester-2.0.jar commons-fileupload-1.2.1.jar commons-io-1.3.2.jar commons-logging-1.0.4.jar commons-pool.jar dom4j-1.6.1.jar freeer-2.3.16.jar hibernate3.jar javassist-3.9.0.GA.jar jta-1.1.jar log4j-1.2.15.jar mysql-connector-java-5.1.6-bin.jar(MySQL jar包) ognl-3.0.jar slf4j-api-1.5.8.jar slf4j-log4j12-1.5.0.jar spring.jar struts2-core-2.2.1.jar struts2-spring-plugin-2.2.1.jar xwork-core-2.2.1.jar 二、建立数据库 create database stud ; use stud ; create table Employee(id int(11) not null auto_increment,name varchar(255) ,address varchar(255) ,phone varchar(255) ,primary key (id)) ; 三、建立数据化持久层建立Hibernate逆向工程1、建立实体类及books.hbm.xml映射文件。Employee.javapackage com.ex.model;public class Employee { private Long id ; private String name ; private String address ; private String phone ; public Long getId() { return id; } public void setId(Long 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 String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public Employee(){ } public Employee(Long id, String name, String address, String phone) { super(); this.id = id; this.name = name; this.address = address; this.phone = phone; } }2、把实体类Employee的属性映射到Employee表,生成下面的Employee.hbm.xml文件(com/ex/model/Employee.hbm.xml):<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping> <class name="com.ex.model.Employee" table="Employee" lazy="true"> <id name="id" type="java.lang.Long" column="id"> <generator class="native" /> </id> <property name="name" type="java.lang.String"> <column name="name" /> </property> <property name="address" type="java.lang.String"> <column name="address" /> </property> <property name="phone" type="java.lang.String"> <column name="phone" /> </property> </class></hibernate-mapping>四、建立DAO层 1、建立DAO的接口类:EmployeeDaoEmployeeDao.javapackage com.ex.dao;import java.util.List;import com.ex.model.Employee;public interface EmployeeDao { public void add(Employee employee) ;//添加新雇员 public Employee getEmployee(Long id) ;//根据雇员ID得到雇员信息 public List< Employee> getEmployees() ;//获取所有雇员信息 public void delete(Long id ) ;//根据雇员ID,删除雇员 public void saveOrUpdate(Employee employee) ;//修改或更新雇员信息 public List< Employee> getEmployee(String name, String phone) ;//判断是否合法雇员 }2、实现此接口的类文件,EmployeeDaoImplEmployeeDaoImpl.javapackage com.ex.dao.impl;import java.util.List;import com.ex.dao.EmployeeDao;import com.ex.model.Employee;import org.hibernate.SessionFactory; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; public class EmployeeDaoImpl extends HibernateDaoSupport implements EmployeeDao { private SessionFactory sessionFactory ; public void setFactory(SessionFactory sessionFactory){ this.sessionFactory = sessionFactory ; } public SessionFactory getFactory(){ return this.sessionFactory ; } @Override public void add(Employee employee) { this.getHibernateTemplate().save( employee) ; } @Override public Employee getEmployee(Long id) { return (Employee) this.getHibernateTemplate().get(Employee.class, id) ; } @SuppressWarnings("unchecked") @Override public List<Employee> getEmployees() { return this.getHibernateTemplate().find("from Employee order by id" ) ; } @Override public void delete(Long id) { this.getHibernateTemplate().delete(this.getEmployee(id)) ; } @Override public void saveOrUpdate(Employee employee) { this.getHibernateTemplate().saveOrUpdate(employee) ; } @SuppressWarnings("unchecked") @Override public List<Employee> getEmployee(String name, String phone) { Object values[] ={name, phone} ; System.out.println("查询的结果是:"+ name + " "+ phone) ; return this.getHibernateTemplate().find("from Employee e where e.name=? and e.phone=? order by id", values) ; }}五、 建立业务逻辑层注明:在业务逻辑层需要认真思考每个业务逻辑所能用到的持久层对象和DAO。DAO层之上是业务逻辑层,DAO类可以有很多个,但业务逻辑类应该只有一个,可以在业务逻辑类中调用各个DAO类进行操作。1、创建服务接口类EmployeeManagerEmployeeManager.javapackage com.ex.service;import java.util.List;import com.ex.model.Employee;public interface EmployeeManager { public void addEmployee(Employee employee) ; public List< Employee> listEmployee() ; public void deleteEmployee(Long id) ; public void saveOrUpdate(Employee employee) ; public Employee getEmployee(Long id) ; public Employee getEmployee(String name, String phone) ; } 2、实现此接口类:EmployeeManagerImpl:EmployeeManagerImpl.javapackage com.ex.service.impl;import java.util.List;import com.ex.dao.EmployeeDao;import com.ex.model.Employee;import com.ex.service.EmployeeManager;public class EmployeeManagerImpl implements EmployeeManager { private EmployeeDao employeeDao ; public void setEmployeeDao(EmployeeDao employeeDao){ this.employeeDao = employeeDao ; } public EmployeeDao getEmployeeDao(){ return this.employeeDao ; } @Override public void addEmployee(Employee employee) { this.employeeDao.add(employee) ; } @Override public List<Employee> listEmployee() { return this.employeeDao.getEmployees() ; } @Override public void deleteEmployee(Long id) { this.employeeDao.delete(id) ; } @Override public void saveOrUpdate(Employee employee) { this.employeeDao.saveOrUpdate(employee) ; } @Override public Employee getEmployee(Long id) { return this.employeeDao.getEmployee(id) ; } @Override public Employee getEmployee(String name, String phone) { List< Employee> list = this.employeeDao.getEmployee(name, phone) ; if (list != null && list.size() >0){ return list.get( 0 ) ; }else{ return null ; } }}六、 创建Action类:EmployeeAction.java:EmployeeAction.javapackage com.ex.action;import java.util.List;import com.ex.model.Employee;import com.ex.service.EmployeeManager;import com.opensymphony.xwork2.ActionSupport;public class EmployeeAction extends ActionSupport { private static final long serialVersionUID = 1L; private EmployeeManager employeeManager; private List<Employee> employees; private Employee employee; private Long id; private Long[] ids; private String name; private String phone; public EmployeeManager getEmployeeManager() { return employeeManager; } public void setEmployeeManager(EmployeeManager employeeManager) { this.employeeManager = employeeManager; } public List<Employee> getEmployees() { return employees; } public void setEmployees(List<Employee> employees) { this.employees = employees; } public Employee getEmployee() { return employee; } public void setEmployee(Employee employee) { this.employee = employee; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Long[] getIds() { return ids; } public void setIds(Long[] ids) { this.ids = ids; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } // action public String add() { if (this.employeeManager.getEmployee(employee.getName(), employee.getPhone()) != null) { return INPUT; } else { this.employeeManager.addEmployee(employee); return SUCCESS; } } public String list() { this.employees = this.employeeManager.listEmployee(); if (this.employees.size() > 0) { return SUCCESS; } else { return INPUT; } } public String delete() { if (null != this.id) { this.employeeManager.deleteEmployee(this.id); } else { if (ids.length > 0) { for (Long id : ids) { this.employeeManager.deleteEmployee(id); } } } if (this.employeeManager.listEmployee().size() > 0) { return SUCCESS; } else { return INPUT; } } public String saveOrUpdate() { this.employeeManager.saveOrUpdate(employee); return SUCCESS; } public String edit() { this.employee = this.employeeManager.getEmployee(id); return SUCCESS; } public String save() { Long id = this.employee.getId(); employee = this.employeeManager.getEmployee(id); return SUCCESS; } public String update() { Long id = this.employee.getId(); this.employeeManager.saveOrUpdate(employee); return SUCCESS; } public String login() { Employee emp = this.employeeManager.getEmployee(name, phone); List list = this.employeeManager.listEmployee(); if (null != emp) { return SUCCESS; } else { if (list.size() > 0) { return INPUT; } else { return ERROR; } } }} 楼上的很细心,不知道lz能看懂不?不知道你学没学过SSH框架,通过你的问题我猜你没学过。 The import org.springframework.orm cannot be resolved是不是少了spring jar文件?谁知道是少了那个jar包呢? [code=Java][package com.experiment.Dao.DapImpl;import java.util.List;import org.hibernate.SessionFactory;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.experiment.Dao.UserManagerDao;import com.experiment.vo.UserInfo;public class UserManagerDaoImpl implements UserManagerDao { private SessionFactory sessionFactory ; public void setFactory(SessionFactory sessionFactory){ this.sessionFactory = sessionFactory ; } public SessionFactory getFactory(){ return this.sessionFactory ; } public void add(UserInfo usr) { // TODO Auto-generated method stub this.getHibernateTemplate().save(user); } public void delete(int id) { // TODO Auto-generated method stub this.getHibernateTemplate().delete(this.getUser(id)); } public UserInfo getUser(int id) { // TODO Auto-generated method stub return (UserInfo) this.getHibernateTemplate().get(UserInfo.class,id); } public List<UserInfo> getUser(String name, String account) { // TODO Auto-generated method stub Object values[] ={name,account}; System.out.println("查询的结果是:"+name+" "+account); return this.getHibernateTemplate().find("from UserTable t where t.name=? and t.account=? order by id"); } public List<UserInfo> getUsers() { // TODO Auto-generated method stub return this.getHibernateTemplate().find("from UserTable order by id"); } public void saveOrUpdate(UserInfo user) { // TODO Auto-generated method stub this.getHibernateTemplate().saveOrUpdate(user) ; }}]this.getHibernateTemplate().这是什么错误?为什么下面有红线? 字符串处理问题。 获取spring 注入对象 怎么提高JSP页面显示速度 SSH框架权限设计问题 sessionid的问题 怎么办啊,大家快来看看吧 小弟刚刚学JAVA,迷惑中。 jsp和javascript传递参数的问题 在weblogic调试jsp的问题? 各位大侠,快帮帮忙.分决不会少的.(我写了一个jsp文件用来删除数据库,出现问题) 插入数据库异常 JAVA如何传输和获取二进制流
2.action的xml
3.spring的xml
4.hibernate的xml
5.如果用spring注入相关,还要加相关service的xml
配置文件很多,说不过来
一、 准备工作
开发环境:tomcat5+jdk6+mysql5+eclipse:eclipse-jee-helios-SR1-win32.zip.
struts2+Spring2.0.6+Hibernate3.1。本示例通过对一个人力资源的系统,提供基本的增加、删除、修改、查询等功能。
lib包需要以下所示的这些包:
antlr-2.7.6.jar
commons-collections-3.2.jar
commons-dbcp.jar
commons-digester-2.0.jar
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
commons-logging-1.0.4.jar
commons-pool.jar
dom4j-1.6.1.jar
freeer-2.3.16.jar
hibernate3.jar
javassist-3.9.0.GA.jar
jta-1.1.jar
log4j-1.2.15.jar
mysql-connector-java-5.1.6-bin.jar(MySQL jar包)
ognl-3.0.jar
slf4j-api-1.5.8.jar
slf4j-log4j12-1.5.0.jar
spring.jar
struts2-core-2.2.1.jar
struts2-spring-plugin-2.2.1.jar
xwork-core-2.2.1.jar
二、建立数据库
create database stud ;
use stud ;
create table Employee(id int(11) not null auto_increment,name varchar(255) ,address varchar(255) ,phone varchar(255) ,primary key (id)) ;
三、建立数据化持久层
建立Hibernate逆向工程
1、建立实体类及books.hbm.xml映射文件。
Employee.javapackage com.ex.model;public class Employee { private Long id ;
private String name ;
private String address ;
private String phone ;
public Long getId() {
return id;
}
public void setId(Long 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 String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public Employee(){
}
public Employee(Long id, String name, String address, String phone) {
super();
this.id = id;
this.name = name;
this.address = address;
this.phone = phone;
}
}
2、把实体类Employee的属性映射到Employee表,生成下面的Employee.hbm.xml文件(com/ex/model/Employee.hbm.xml):
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping> <class name="com.ex.model.Employee" table="Employee" lazy="true">
<id name="id" type="java.lang.Long" column="id">
<generator class="native" />
</id>
<property name="name" type="java.lang.String">
<column name="name" />
</property>
<property name="address" type="java.lang.String">
<column name="address" />
</property>
<property name="phone" type="java.lang.String">
<column name="phone" />
</property>
</class>
</hibernate-mapping>
四、建立DAO层
1、建立DAO的接口类:EmployeeDao
EmployeeDao.java
package com.ex.dao;import java.util.List;import com.ex.model.Employee;public interface EmployeeDao { public void add(Employee employee) ;//添加新雇员
public Employee getEmployee(Long id) ;//根据雇员ID得到雇员信息
public List< Employee> getEmployees() ;//获取所有雇员信息
public void delete(Long id ) ;//根据雇员ID,删除雇员
public void saveOrUpdate(Employee employee) ;//修改或更新雇员信息
public List< Employee> getEmployee(String name, String phone) ;//判断是否合法雇员
}2、实现此接口的类文件,EmployeeDaoImpl
EmployeeDaoImpl.java
package com.ex.dao.impl;import java.util.List;import com.ex.dao.EmployeeDao;
import com.ex.model.Employee;
import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport; public class EmployeeDaoImpl extends HibernateDaoSupport implements EmployeeDao { private SessionFactory sessionFactory ;
public void setFactory(SessionFactory sessionFactory){
this.sessionFactory = sessionFactory ;
}
public SessionFactory getFactory(){
return this.sessionFactory ;
}
@Override
public void add(Employee employee) { this.getHibernateTemplate().save( employee) ;
} @Override
public Employee getEmployee(Long id) { return (Employee) this.getHibernateTemplate().get(Employee.class, id) ;
} @SuppressWarnings("unchecked")
@Override
public List<Employee> getEmployees() {
return this.getHibernateTemplate().find("from Employee order by id" ) ;
} @Override
public void delete(Long id) { this.getHibernateTemplate().delete(this.getEmployee(id)) ;
} @Override
public void saveOrUpdate(Employee employee) { this.getHibernateTemplate().saveOrUpdate(employee) ;
} @SuppressWarnings("unchecked")
@Override
public List<Employee> getEmployee(String name, String phone) { Object values[] ={name, phone} ;
System.out.println("查询的结果是:"+ name + " "+ phone) ;
return this.getHibernateTemplate().find("from Employee e where e.name=? and e.phone=? order by id", values) ;
}}
五、 建立业务逻辑层
注明:在业务逻辑层需要认真思考每个业务逻辑所能用到的持久层对象和DAO。DAO层之上是业务逻辑层,DAO类可以有很多个,但业务逻辑类应该只有一个,可以在业务逻辑类中调用各个DAO类进行操作。
1、创建服务接口类EmployeeManager
EmployeeManager.java
package com.ex.service;import java.util.List;import com.ex.model.Employee;public interface EmployeeManager { public void addEmployee(Employee employee) ;
public List< Employee> listEmployee() ;
public void deleteEmployee(Long id) ;
public void saveOrUpdate(Employee employee) ;
public Employee getEmployee(Long id) ;
public Employee getEmployee(String name, String phone) ;
} 2、实现此接口类:EmployeeManagerImpl:
EmployeeManagerImpl.java
package com.ex.service.impl;import java.util.List;import com.ex.dao.EmployeeDao;
import com.ex.model.Employee;
import com.ex.service.EmployeeManager;public class EmployeeManagerImpl implements EmployeeManager { private EmployeeDao employeeDao ;
public void setEmployeeDao(EmployeeDao employeeDao){
this.employeeDao = employeeDao ;
}
public EmployeeDao getEmployeeDao(){
return this.employeeDao ;
}
@Override
public void addEmployee(Employee employee) { this.employeeDao.add(employee) ; } @Override
public List<Employee> listEmployee() {
return this.employeeDao.getEmployees() ;
} @Override
public void deleteEmployee(Long id) {
this.employeeDao.delete(id) ; } @Override
public void saveOrUpdate(Employee employee) { this.employeeDao.saveOrUpdate(employee) ;
} @Override
public Employee getEmployee(Long id) { return this.employeeDao.getEmployee(id) ;
} @Override
public Employee getEmployee(String name, String phone) { List< Employee> list = this.employeeDao.getEmployee(name, phone) ;
if (list != null && list.size() >0){
return list.get( 0 ) ;
}else{
return null ;
}
}}
六、 创建Action类:EmployeeAction.java:EmployeeAction.java
package com.ex.action;import java.util.List;import com.ex.model.Employee;
import com.ex.service.EmployeeManager;
import com.opensymphony.xwork2.ActionSupport;public class EmployeeAction extends ActionSupport { private static final long serialVersionUID = 1L; private EmployeeManager employeeManager;
private List<Employee> employees;
private Employee employee;
private Long id;
private Long[] ids;
private String name;
private String phone; public EmployeeManager getEmployeeManager() {
return employeeManager;
} public void setEmployeeManager(EmployeeManager employeeManager) {
this.employeeManager = employeeManager;
} public List<Employee> getEmployees() {
return employees;
} public void setEmployees(List<Employee> employees) {
this.employees = employees;
} public Employee getEmployee() {
return employee;
} public void setEmployee(Employee employee) {
this.employee = employee;
} public Long getId() {
return id;
} public void setId(Long id) {
this.id = id;
} public Long[] getIds() {
return ids;
} public void setIds(Long[] ids) {
this.ids = ids;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getPhone() {
return phone;
} public void setPhone(String phone) {
this.phone = phone;
} // action
public String add() {
if (this.employeeManager.getEmployee(employee.getName(),
employee.getPhone()) != null) {
return INPUT;
} else {
this.employeeManager.addEmployee(employee);
return SUCCESS;
} } public String list() {
this.employees = this.employeeManager.listEmployee();
if (this.employees.size() > 0) {
return SUCCESS;
} else {
return INPUT;
}
} public String delete() {
if (null != this.id) {
this.employeeManager.deleteEmployee(this.id);
} else {
if (ids.length > 0) {
for (Long id : ids) {
this.employeeManager.deleteEmployee(id);
}
}
}
if (this.employeeManager.listEmployee().size() > 0) {
return SUCCESS;
} else {
return INPUT;
} } public String saveOrUpdate() { this.employeeManager.saveOrUpdate(employee);
return SUCCESS; } public String edit() { this.employee = this.employeeManager.getEmployee(id);
return SUCCESS; } public String save() {
Long id = this.employee.getId();
employee = this.employeeManager.getEmployee(id);
return SUCCESS;
} public String update() { Long id = this.employee.getId();
this.employeeManager.saveOrUpdate(employee);
return SUCCESS;
} public String login() {
Employee emp = this.employeeManager.getEmployee(name, phone);
List list = this.employeeManager.listEmployee();
if (null != emp) {
return SUCCESS;
} else {
if (list.size() > 0) {
return INPUT;
} else {
return ERROR;
}
} }
}
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.experiment.Dao.UserManagerDao;
import com.experiment.vo.UserInfo;public class UserManagerDaoImpl implements UserManagerDao { private SessionFactory sessionFactory ;
public void setFactory(SessionFactory sessionFactory){
this.sessionFactory = sessionFactory ;
}
public SessionFactory getFactory(){
return this.sessionFactory ;
}
public void add(UserInfo usr) {
// TODO Auto-generated method stub
this.getHibernateTemplate().save(user);
} public void delete(int id) {
// TODO Auto-generated method stub
this.getHibernateTemplate().delete(this.getUser(id));
} public UserInfo getUser(int id) {
// TODO Auto-generated method stub
return (UserInfo) this.getHibernateTemplate().get(UserInfo.class,id);
} public List<UserInfo> getUser(String name, String account) {
// TODO Auto-generated method stub
Object values[] ={name,account};
System.out.println("查询的结果是:"+name+" "+account);
return this.getHibernateTemplate().find("from UserTable t where t.name=? and t.account=? order by id");
} public List<UserInfo> getUsers() {
// TODO Auto-generated method stub
return this.getHibernateTemplate().find("from UserTable order by id");
} public void saveOrUpdate(UserInfo user) {
// TODO Auto-generated method stub
this.getHibernateTemplate().saveOrUpdate(user) ;
}
}]this.getHibernateTemplate().这是什么错误?为什么下面有红线?