1.导入ssh包........................................................ 1
2.写包名 如:....................................................... 1
3.编写持久层:...................................................... 1
3.1 写pojo 类 并配置对应的name.hbm.xml.......................... 1
3.2对应的User.hbm.xml.......................................... 2
3.3写dto 把pojo类当做属性...................................... 3
3.4写对dto进行操作的dao的接口.................................. 3
3.5写相应的对dto进行操作的daoimpl的实现类,.................... 4
该类要继HibernateDaoSupport 实现dao接口......................... 4
3.6编写applicationconText.xml 一下的三个bean 是 必须要的........ 5
3.7 在applicationContext.xml添加编写相应的...................... 6
不同的pojo的事务拦截............................................ 6
4.编写服务层........................................................ 7
4.1 编写对应pojo的服务的接口.................................... 7
4.3在applicationContext.xml中添加.............................. 9
5.编写表现层....................................................... 10
5.1编写pojo对应的action 实现类,在这里我实现了查询的操作........ 10
5.2在application中添加如下内容................................ 11
6.编写web.xml..................................................... 11
8.编写hibernate.cfg.xml........................................... 12
1.导入ssh包
2.写包名 如:
3.编写持久层:
3.1 写pojo 类 并配置对应的name.hbm.xml
package com.boldgirl.hrms.resume.pojo;
public class User {
private int id;
private String name;
private int age;
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
3.2对应的User.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.boldgirl.hrms.resume.pojo">
<class name="User" table="user">
<id name="id">
<generator class="native"></generator>
</id>
<property name="name"></property>
<property name="age"></property>
</class>
</hibernate-mapping>
3.3写dto 把pojo类当做属性
package com.boldgirl.hrms.resume.dto;
import com.boldgirl.hrms.resume.pojo.User;
public class UserDTO {
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
3.4写对dto进行操作的dao的接口
package com.boldgirl.hrms.resume.dao;
import java.util.List;
import com.boldgirl.hrms.resume.pojo.User;
public interface UserDAO {
public List<User> findAll();
public void save(User u);
public void delete(User u);
public void update(User u);
public void findall(User u);
}
3.5写相应的对dto进行操作的daoimpl的实现类,
该类要继HibernateDaoSupport 实现dao接口
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.boldgirl.hrms.resume.pojo.User;
public class UserDAOimpl extends HibernateDaoSupport implements UserDAO {
public void delete(User u) {
this.getHibernateTemplate().delete(u);
}
public List<User> findAll() {
List <User> list =this.getHibernateTemplate().find("from User");
return list;
}
public User findall(User u) {
u=(User) this.getHibernateTemplate().find("from People p where p.id=u.id ");
return u;
}
public void save(User u) {
this.getHibernateTemplate().save(u);
}
public void update(User u) {
this.getHibernateTemplate().update(u);
}
}
3.6编写applicationconText.xml 一下的三个bean 是 必须要的
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<!-- 创建SessionFactory -->
<bean id="sesssionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
</property>
</bean>
<!-- 创建Hibernate模板 7步骤中的1,2-->
<bean id="hibernateTemplate"
class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sesssionFactory"></property>
</bean>
<!-- 事务管理器 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sesssionFactory"></property>
</bean>
</beans>
3.7 在applicationContext.xml添加编写相应的
不同的pojo的事务拦截
<!-- 配置DAO -->
<bean id="UserDAO" class="com.boldgirl.hrms.resume.dao.UserDAOimpl"
scope="prototype">
<property name="hibernateTemplate" ref="hibernateTemplate"></property>
</bean>
<!-- 7步骤中4,6 -->
<!-- 配置事务拦截器 -->
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<!-- 需要事务拦截器 -->
<property name="transactionManager" ref="transactionManager"></property>
<!--拦截规则 -->
<property name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="dele*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
4.编写服务层
4.1 编写对应pojo的服务的接口
package com.boldgirl.hrms.resume.service;
import java.util.List;
import com.boldgirl.hrms.resume.dto.UserDTO;
public interface Userservice {
public List<UserDTO> findAll();
public void save(UserDTO dto);
public void update(UserDTO dto);
public void delete(UserDTO dto);
public UserDTO findall(UserDTO dto);
}
4.2编写对应pojo的服务的实现类
package com.boldgirl.hrms.resume.service;
import java.util.ArrayList;
import java.util.List;
import com.boldgirl.hrms.resume.dao.UserDAO;
import com.boldgirl.hrms.resume.dto.UserDTO;
import com.boldgirl.hrms.resume.pojo.User;
public class Userserviceimpl implements Userservice {
private UserDAO dao;
public void delete(UserDTO dto) {
dao.delete(dto.getUser());
}
public List<UserDTO> findAll() {
List<UserDTO> listDTO = new ArrayList<UserDTO>();
List<User> listUser = dao.findAll();
for (User user : listUser) {
UserDTO dto= new UserDTO();
dto.setUser(user);
listDTO.add(dto);
}
return listDTO;
}
public UserDTO findall(UserDTO dto) {
User user=new User();
user=dao.findall(dto.getUser());
dto.setUser(user);
return dto;
}
public void save(UserDTO dto) {
dao.save(dto.getUser());
}
public void update(UserDTO dto) {
dao.update(dto.getUser());
}
}
4.3在applicationContext.xml中添加
<!-- 配置service -->
<bean id="userService"
class="com.boldgirl.hrms.resume.dao.UserDAO.java">
<property name="dao" ref="UserDAO"></property>
</bean>
<!-- 配置哪些bean需要拦截 -->
<!-- 生产代理,自动的代理 -->
<bean
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<!-- 配置需要代理的类 -->
<property name="beanNames">
<list>
<value>userService</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>
5.编写表现层
5.1编写pojo对应的action 实现crud,在这里我实现了查询的操作
package com.boldgirl.hrms.resume.action;
import java.util.List;
import java.util.Map;
import com.boldgirl.hrms.resume.dto.UserDTO;
import com.boldgirl.hrms.resume.service.Userservice;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class UserlistAction extends ActionSupport {
private Userservice service;
private UserDTO dto;
public Userservice getService() {
return service;
}
public void setService(Userservice service) {
this.service = service;
}
public UserDTO getDto() {
return dto;
}
public void setDto(UserDTO dto) {
this.dto = dto;
}
@Override
public String execute() throws Exception {
List<UserDTO> list = service.findAll();
Map map = (Map) ActionContext.getContext().get("request");
map.put("list", list);
return SUCCESS;
}
}
5.2在application中添加如下内容
<!--配置struts和spring的整合 -->
<bean id="userList"
class="com.boldgirl.hrms.resume.action.UserlistAction"
scope="prototype">
<property name="service" ref="userService"></property>
</bean>
6.编写web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
7.编写struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="false" />
<package name="default" namespace="" extends="struts-default">
<action name="list" class="userList">
<result name="success">/listbook.jsp</result>
</action>
</package>
<!-- Add packages here -->
</struts>
8.编写hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password">123</property>
<property name="hibernate.connection.url">
jdbc:sqlserver://localhost:1433;databaseName=book
</property>
<property name="hibernate.connection.driver_class">
com.microsoft.sqlserver.jdbc.SQLServerDriver
</property>
<property name="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</property>
<property name="show_sql"></property>
<mapping
resource="com/boldgirl/hrms/resume/service/User.hbm.xml" />
</session-factory>
</hibernate-configuration>