SSH xml配置文件及架构设计
来源:互联网 发布:ubuntu 虚拟机 wifi 编辑:程序博客网 时间:2024/04/30 08:44
第一:web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><!-- spring的web启动方式 --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- 延长session生命周期 --><filter> <filter-name>openSession</filter-name> <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class></filter><filter-mapping> <filter-name>openSession</filter-name> <url-pattern>/*</url-pattern></filter-mapping><!-- 过滤器 --><filter> <filter-name>MyFilter</filter-name> <filter-class>com.hsg.filter.MyFilter</filter-class></filter><filter-mapping> <filter-name>MyFilter</filter-name> <url-pattern>/*</url-pattern></filter-mapping> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>3</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>3</param-value> </init-param> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>
第二:struts-config.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config> <data-sources /> <form-beans /> <global-exceptions /> <global-forwards /> <action-mappings> <action path="/sale" parameter="p" type="org.springframework.web.struts.DelegatingActionProxy" ></action> <action path="/detail" parameter="p" type="org.springframework.web.struts.DelegatingActionProxy" ></action> </action-mappings> <message-resources parameter="com.yourcompany.struts.ApplicationResources" /></struts-config>
第三:applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xmlns:util="http://www.springframework.org/schema/util"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.5.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="configLocation"value="classpath:hibernate.cfg.xml"></property></bean><bean id="TSaleformDetailDAO"class="com.hsg.dao.TSaleformDetailDAO"><property name="sessionFactory"><ref bean="sessionFactory" /></property></bean><bean id="TSaleformDAO" class="com.hsg.dao.TSaleformDAO"><property name="sessionFactory"><ref bean="sessionFactory" /></property></bean><!-- 注入service --><bean id="SaleformService" class="com.hsg.service.SaleformService"> <property name="detailDao"><ref bean="TSaleformDetailDAO"></ref></property> <property name="saleformDao"><ref bean="TSaleformDAO"></ref></property></bean> <!-- 注入service --><bean id="SaleformDetailService" class="com.hsg.service.SaleformDetailService"> <property name="detailDao"><ref bean="TSaleformDetailDAO"></ref></property> <property name="saleformDao"><ref bean="TSaleformDAO"></ref></property></bean><!-- 注入action --><bean name="/sale" class="com.hsg.action.SaleformAction"> <property name="detailService"><ref bean="SaleformDetailService"></ref></property> <property name="saleService"><ref bean="SaleformService"></ref></property></bean><!-- 注入action --><bean name="/detail" class="com.hsg.action.SaleformDetailAction"> <property name="detailService"><ref bean="SaleformDetailService"></ref></property> <property name="saleService"><ref bean="SaleformService"></ref></property></bean><!-- 声明事物管理器 --><bean id="htm" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"><ref bean="sessionFactory" /></property></bean><!-- 通知器 --> <tx:advice id="adv" transaction-manager="htm"> <tx:attributes> <tx:method name="*"/> </tx:attributes> </tx:advice><!-- aop切入事务拦截器 --><aop:config> <aop:advisor advice-ref="adv" pointcut="execution(* com.hsg.iservice.*.*(..))"/></aop:config></beans>
第四: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"><!-- Generated by MyEclipse Hibernate Tools. --><hibernate-configuration><session-factory> <!-- 数据库对应的方言 --><property name="dialect">org.hibernate.dialect.Oracle9Dialect</property><!-- 定义数据库服务器地址 --><property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property><!-- 数据库用户名 --><property name="connection.username">hhgz</property><!-- 对应密码--><property name="connection.password">hhgz</property><!-- 数据库连接驱动--><property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property><property name="myeclipse.connection.profile">softfactory</property><!-- 操作数据库时是否打印sql语句 --><property name="hibernate.show_sql"></property><!-- 配置ORM映射文件 --><mapping resource="com/hsg/pojos/TSaleformDetail.hbm.xml" /><mapping resource="com/hsg/pojos/TSaleform.hbm.xml" /></session-factory></hibernate-configuration>
第五:*.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"><!-- Mapping file autogenerated by MyEclipse Persistence Tools--><hibernate-mapping> <class name="com.hsg.pojos.TSaleform" table="T_SALEFORM" schema="HHGZ" > <id name="FSaleformNo" type="java.lang.String" > <column name="F_SALEFORM_NO" length="20" /> <generator class="assigned" /> </id> <property name="FSaleformDate" type="java.util.Date" > <column name="F_SALEFORM_DATE" length="7" not-null="true" /> </property> <property name="FCustomer" type="java.lang.String"> <column name="F_CUSTOMER" length="20" not-null="true" /> </property> <property name="FSales" type="java.lang.String"> <column name="F_SALES" length="20" not-null="true" /> </property> <property name="FRemark" type="java.lang.String"> <column name="F_REMARK" length="2000" /> </property> <set name="TSaleformDetails" inverse="true"> <!-- 指定外键 --> <key> <column name="F_SALEFORM_NO" length="20" not-null="true" unique="true" /> </key> <!-- 指定引用类 --> <one-to-many class="com.hsg.pojos.TSaleformDetail" /> </set> </class></hibernate-mapping>
附一:SSH架构
附二:baseDao和service及action三个类的实现方式
1,baseDao
package com.hsg.dao;import java.util.List;import org.hibernate.HibernateException;import org.hibernate.Query;import org.springframework.dao.DataAccessResourceFailureException;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;public class BaseDao extends HibernateDaoSupport{/** * 根据hql 查询 * @param hql * @param objects * @return */public List queryByHql(final String hql,final Object...objects){Query query=this.getSession().createQuery(hql);try {if(objects!=null){for (int i = 0; i < objects.length; i++) {query.setParameter(i, objects[i]);}}} catch (HibernateException e) {// TODO Auto-generated catch blocke.printStackTrace();}return query.list();}/** * 根据hql 查询 * @param hql * @param objects * @return */public Object queryByUnique(final String hql,final Object...objects){Query query=this.getSession().createQuery(hql);try {if(objects!=null){for (int i = 0; i < objects.length; i++) {query.setParameter(i, objects[i]);}}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} return query.uniqueResult();}}
2.service实现类
/** * 订单服务类 * @author hushiguo * */public class SaleformService implements ISaleformService { private TSaleformDAO saleformDao; private TSaleformDetailDAO detailDao; public void setSaleformDao(TSaleformDAO saleformDao) {this.saleformDao = saleformDao;}public void setDetailDao(TSaleformDetailDAO detailDao) {this.detailDao = detailDao;} /** * 添加订单 * @param saleForm 订单信息 * @param detail 详单信息 * @return */public void addSale(TSaleform saleForm){try {if(saleForm!=null){saleformDao.save(saleForm);}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}} /** * 获得最大编号 * @param saleDate 日期 * @return 单号 */public String getBigSaleId(String saleDate){ String saleId="";SimpleDateFormat df=new SimpleDateFormat("yyyyMMdd");Date nowDate=new Date();String hql="";if(saleDate==null||saleDate.equals("")){hql="select max(s.FSaleformNo) from TSaleform s where to_char(s.FSaleformDate,'yyyyMMdd')=?";saleId=(String) saleformDao.queryByUnique(hql, df.format(nowDate));if(saleId==null){saleId="SL"+df.format(nowDate)+"001";}else{String id=saleId.substring(2);saleId="SL"+(Long.parseLong(id)+1);}}else{hql="select max(s.FSaleformNo) from TSaleform s where to_char(s.FSaleformDate,'yyyyMMdd')=?";saleId=(String) saleformDao.queryByUnique(hql,saleDate);if(saleId==null){saleId="SL"+saleDate+"001";}else{//SL20110909001String id=saleId.substring(2);saleId="SL"+(Long.parseLong(id)+1);}}return saleId;}}
3.action实现类
/** * 订单action * @author hushiguo * */public class SaleformAction extends DispatchAction { private ISaleformService saleService; private ISaleformDetailService detailService;public void setSaleService(ISaleformService saleService) {this.saleService = saleService;}public void setDetailService(ISaleformDetailService detailService) {this.detailService = detailService;}/* * * 添加订单 */public ActionForward addSale(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception {// TODO Auto-generated method stubPrintWriter out=response.getWriter();String saleId=request.getParameter("saleId"); //订单编号String rq=request.getParameter("rq"); //日期String kh=request.getParameter("kh"); //客户String ywy=request.getParameter("ywy"); //业务员String bz=request.getParameter("bz"); //备注String [] jsonArray=request.getParameterValues("jsonArray"); //详单信息 SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); Date d=null; Boolean bol=true;if(rq!=null&&!rq.equals("")){d=df.parse(rq);}TSaleformDetail detail=null;Integer lineId=null;try {TSaleform saleForm=new TSaleform(saleId,d,kh,ywy,bz);//saleService.addSale(saleForm); //调用添加订单业务方法//循环json对象数组 将它转换为对应类的对象for (int i = 0; i < jsonArray.length; i++) {//将对象转换为JSONObjectJSONObject json=JSONObject.fromObject(jsonArray[i]); //将JSONObject转换为对应类的对象 detail= (TSaleformDetail) json.toBean(json,TSaleformDetail.class); System.out.println(detail.getFGoods()); lineId=detailService.addSale(saleForm, detail); //调用添加详单方法}} catch (Exception e) {bol=false;// TODO Auto-generated catch blocke.printStackTrace();}out.print("{result:"+bol+",saleId:"+lineId+"}");/** * JSONObject * 将对象转换成 JSONObject * object 可以是json字符串, 也可以是对象 * JSONObject.fromObject(object) * * 将一个JsonObject对象转换成对应的类的对象 * obj: JsonObject 对象 * JSONObject.toBean(obj,Emp.class) * * 将一个JsonArray对象转换成List<Emp> * JSONArray.toList(jsonArray,Emp.class) * * 通过键获得值 * obj.get(key) * * */return null;} /* * 获得订单编号 */public ActionForward getBigSaleId(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception {// TODO Auto-generated method stubPrintWriter out=response.getWriter();try {String saleDate=request.getParameter("saleDate");SimpleDateFormat df=new SimpleDateFormat("yyyyMMdd");String d2="";if(saleDate!=null&&!saleDate.equals("")){ //d2=df.format(df.parse(saleDate)); if(saleDate.contains("-")){ String [] dd=saleDate.split("-"); for (int i = 0; i <dd.length; i++) { d2+=dd[i]; } }else if(saleDate.contains("/")){ String [] dd=saleDate.split("/"); for (int i = 0; i <dd.length; i++) { d2+=dd[i]; } } System.out.println(d2); String saleId=saleService.getBigSaleId(d2); out.print(saleId);}else{ String saleId=saleService.getBigSaleId(saleDate); out.print(saleId);}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;} }
附3:建表SQL
----------------=========创建订单表create table t_saleform( f_saleform_noVARCHAR2(20) primary key not null,--NY单号assigned f_saleform_dateDATEnot null,--N单据日期 要建索引idx_form_date f_customerVARCHAR2(20)not null,--N客户 f_salesVARCHAR2(20)not null,--N业务员 f_remarkVARCHAR2(2000)--备注);--建日期索引create index idx_date on t_saleform(f_saleform_date);----------------=========创建详单表create table t_saleform_detail( f_saleform_noVARCHAR(20)not null,--NYY出库单号,引用t_sd_saleform. f_saleform_no f_line_idSMALLINTnot null,--NY行号 f_goodsVARCHAR(50)not null,--N商品名称 f_qtyNUMERIC(19,4)not null,--N数量 f_priceNUMERIC(19,4)not null,--N单价 f_money_amtNUMERIC(19,4)not null,--N金额 constraint pk_f_saleform_no primary key (f_saleform_no), constraint fk_f_saleform_no foreign key (f_saleform_no) references t_saleform(f_saleform_no));
- SSH xml配置文件及架构设计
- ssh - 配置文件 - struts.xml
- 购物车模块设计及实现(SSH架构)
- 购物车模块设计及实现(SSH架构)
- ssh整合 web.xml 配置文件
- SSH配置文件之applicationContext.xml
- SSH的web.xml配置文件
- SSH之web.xml配置文件
- ssh框架xml配置文件集合
- SSH框架搭建及配置文件
- SSH中的web.xml配置文件格式
- SSH之struts2的配置文件 struts.xml
- SSH整合applicationContext.xml配置文件(my project)
- SSH所需pop.xml配置文件s
- SSH架构整合-XML文件配置
- ssh整合步骤之二(架构设计)
- 【引用】ssh配置文件(web.xml,struts.xml,applicationContext.xml,persistence.xml,log4j.properties)
- 搭建SSH框架的时候的applicationContext.xml配置文件
- ABAP SCREEN 常用语句
- flash player 安装报错不是最新版本问题解决
- 动态规划:数字三角形
- jstl标签和EL表达式
- linux下错误bad interpreter: No such file or directory
- SSH xml配置文件及架构设计
- [linux安全] nmap扫描器的使用
- 主流linux版本介绍
- 事物
- 浅谈c# Attribute
- Eclipse 优化
- 对Freescale i.mx53 ADC驱动程序的透彻分析
- Oracle 11g中管理员用户sys,system密码不可用解决办法
- 如何让你的程序在没有root的情况下访问系统敏感数据