整合过程和XML版的大抵相同
直接整合:
第一步:引入节点(与上一篇的节点相同)
第二步:分层
@Repository("deptDao") public class DeptDaoImpl implements IDeptDao { @Resource(name = "sessionFactory") SessionFactory sessionFactory; public int add(Dept dept) { Session session = sessionFactory.getCurrentSession(); Serializable count = session.save(dept); return (Integer)count; } public SessionFactory getSessionFactory() { return sessionFactory; } public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } }
@Entity @Table(name = "Dept") public class Dept implements Serializable{ @Id @GeneratedValue private Integer dno; @Column private String dname; public Integer getDno() { return dno; } public void setDno(Integer dno) { this.dno = dno; } public String getDname() { return dname; } public void setDname(String dname) { this.dname = dname; } }
@Service("dpetService") public class DeptServiceImpl implements IDeptService { @Resource(name = "deptDao") DeptDaoImpl dao; @Transactional public int add(Dept dept) { return dao.add(dept); } public DeptDaoImpl getDao() { return dao; } public void setDao(DeptDaoImpl dao) { this.dao = dao; } }
第三步:配置文件
<context:component-scan base-package="cn.com"></context:component-scan> <!--数据源--> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.dirverClass}"></property> <property name="jdbcUrl" value="${jdbc.url}"></property> <property name="user" value="${jdbc.username}"></property> <property name="password" value="${jdbc.password}"></property> </bean> <!--识别jdbc.properties--> <context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder> <!--sessionfactory工厂--> <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="hibernateProperties"> <props> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop> <prop key="hibernate.current_session_context_class">org.springframework.orm.hibernate5.SpringSessionContext</prop> </props> </property> <!--扫描小配置文件--> <property name="packagesToScan" value="cn.com.entity"></property> </bean> <!--事务管理器--> <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <!--事务注解配置--> <tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
第四步:web.xml (与上一篇相同的web.xml)
第五步:action层
@Controller @ParentPackage("struts-default") @Namespace("/") @Scope("prototype") public class DeptAction implements Action { private Dept dept; @Resource(name = "dpetService") IDeptService service; @org.apache.struts2.convention.annotation.Action(value = "addDept",results={@Result(name = "success",location = "/index.jsp")}) public String execute() throws Exception { service.add(dept); return SUCCESS; } public Dept getDept() { return dept; } public void setDept(Dept dept) { this.dept = dept; } public IDeptService getService() { return service; } public void setService(IDeptService service) { this.service = service; } }
第六步:UI层 (添加方法)
数据库
完毕!!