zoukankan      html  css  js  c++  java
  • 系统业务层重构开发笔记(学习别人补充自己)

    数据存储层:Oracle

    业务层:.Net

    UI:Flex

    术语:Oracle,.Net,IBatis,Castle,Flex,CodeSmith

    建立Oracle数据表

    image

    生成代码

    用CodeSmith 建立Oracle连接 

    image

    打开定义好的MapsConfig.cst模板 生成IBatis 使用的 SQLMap  SQL定义的XML文件

    image

    把另存为的XML文件,重新命名复制到UI项目的Maps目录下

    image

    再选择下面模板文件生成,方式一样都是选择相同的表

    ServiceTemplate.cst

    DaoTemplate.cst

    IDaoTemplate.cst

    DoMainTemplate.cst

    2009-10-27_131831

    把Dao和IDao文件复制到的相应项目新建目录下

    image

    把Service文件复制到相应的项目新建目录下

    image

    把DoMainTemplate.cst复制到Po项目中

    将生成好的文件也改名字,与原有系统命名一致,开始项目调试,此时编译会出错。

    image

    开始调试

    1.SVN在更新项目的时候如果把csproj项目文件冲突之后,会造成项目加载不起来

    可以右键编辑删除这个项目的csproj文件中冲突的部分,再重新加载项目即可成功。

    2.SVN在提交的时候遇到冲突的问题

    可以右键红色的冲突项目,选择回滚或者更新至最新版本尝试

    image

    提交和更新完版本之后,开始调试项目中刚刚加入的文件

    打开Po项目中的Suppliers.cs文件

    更新命名空间

    namespace Ebao51Net.Po.SuppliersModule

    更新生成中错误的地方

            /// <summary>
            /// 0 未启用
    1 已启用
    2 暂停中
            /// </summary>
            private Int32 status;
            /// <summary>
            /// 0 未启用
    1 已启用
    2 暂停中
            /// </summary>
            public Int32  Status
            {
                get{return status;}
                set{status = value;}
            }    

    更新后

    /// <summary>
            /// 0 未启用
            /// 1 已启用
            /// 2 暂停中
            /// </summary>
            private Int32 status;
            /// <summary>
            /// 
            /// </summary>
            public Int32  Status
            {
                get{return status;}
                set{status = value;}
            }    

    打开Persistence项目ISuppliersDao.cs与其他项目对比

    image

    添加Po的项目引用

    using Ebao51Net.Po.SuppliersModule;

    替换CodeSmith根据数据表名生成的实体及方法名称,使用当前文件替换成类名即可

    image

    修改SuppliersDao.cs文件

    更改命名空间和添加引用空间名

    using Ebao51Net.Po.SuppliersModule;
    using Ebao51Net.Persistence.DataAccess;
    
    namespace Ebao51Net.Persistence.SuppliersModule

    替换成员名

    image

    打开Service项目的SuppliersManager.cs文件

    删除错误的引用

    using Payment.Persistence.PayMentModule;
    using Payment.Po.PayMentModule;

    修改命名空间,添加代码引用

    using Ebao51Net.Po.SuppliersModule;
    using Ebao51Net.Persistence.SuppliersModule;
    
    namespace Ebao51Net.Services.SuppliersModule

    替换

    image

    将SuppliersDAO 修改成SuppliersDao 有三处要修改

    编译一下整个解决方案,发现有几处错误,不是与刚才的过程有关的,是由于之前其他同事修改造成的

    签入一下代码

    配置部分

    image

    配置 SqlMap.config 添加SQLMap的XML定义,添加:

    <!--供应商-->
            <sqlMap resource="${root}Suppliers.xml" />
     
    配置 Daos.config 添加定义,
    <!--供应商-->
            <component id="SuppliersDao" service="Ebao51Net.Persistence.SuppliersModule.ISuppliersDao, Ebao51Net.Persistence"  type="Ebao51Net.Persistence.SuppliersModule.SuppliersDao, Ebao51Net.Persistence"  >
                <parameters>
                    <commonMapperFactory>${commonMapperFactory}</commonMapperFactory>
                </parameters>
            </component>
     
    SuppliersDao是在以下用的的名字
    namespace Ebao51Net.Services.SuppliersModule
    {
        public class SuppliersManager : ServiceBase
        {
            private ISuppliersDao SuppliersDao;
            public SuppliersManager()
            {
                SuppliersDao = GetDao<ISuppliersDao>("SuppliersDao");
            }
     

    修改生成的XML需要修改Suppliers.xml 文件,在ServiceUI的Maps目录下

    删掉

    <typeAlias alias="SuppliersTab" type="IBCS.Domain.ContractUI.Maps.Suppliers, IBCS.Domain" />
    换成
     <typeAlias alias="Suppliers" type="Ebao51Net.Po.SuppliersModule.Suppliers, Ebao51Net.Po" />

    替换

    image

    修改

    <insert id="Suppliers.Insert" parameterClass="Suppliers">
                INSERT INTO PD_SUPPLIERS_TAB (ID,INSURE_ID,CODE,NAME,SHORT_NAME,PROVINCE,CITY,AREA,STATUS,REMARK,CREATE_TIME,UPDATE_TIME,PHONE,LINKMAN,BANKNAME,BANKNUMBER,CLEARINGMODE,COOPERATEMODE)
                 VALUES (#Id#,#InsureId#,#Code#,#Name#,#ShortName#,#Province#,#City#,#Area#,#Status#,#Remark#,#CreateTime#,#UpdateTime#,#Phone#,#Linkman#,#Bankname#,#Banknumber#,#Clearingmode#,#Cooperatemode#)
                <selectKey resultClass="int" type="pre" property="Id" >
               修改这句为下图 -->    SELECT SEQ_PD_SUPPLIER.NEXTVAL AS VALUE FROM DUAL
                </selectKey> 
            </insert>
    image 
    方法功能就是主键自增量
     

    修改Properties.config文件,查看连接数据库字符串是否正确

    <settings>
        <add key="provider" value="oracleClient2.0"/>
        <add key="connectionString" value="Data Source=11;Persist Security Info=True;User ID=11;Password=11;Unicode=True"/>
        <add key="root" value="Maps\" />
        <add key="assembly" value="ebao51.ServiceUI"/>
    </settings>
    

    使用测试

    添加一条记录,看一下结果

    using Ebao51Net.Services.SuppliersModule;
    using Ebao51Net.Po.SuppliersModule;
    
    namespace ServiceUI
    {
        public partial class EditSuppliers : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                SuppliersManager sm = new SuppliersManager();
                Suppliers su=new Suppliers();
                su.Name = "Name1";
                sm.AddSuppliers(su);
            }
        }
    }
  • 相关阅读:
    CSS3笔记3
    blackeye部署
    解决企业员工异地办公需求
    Django基于正则表达式匹配URL
    Ubuntu修改Apache默认Web端口
    Django基础篇
    jQuery学习笔记
    HDFS NFS Gateway 无法启动、挂载失败问题(CM集群安装HDFS)
    在cm安装的大数据管理平台中集成impala之后读取hive表中的数据的设置(hue当中执行impala的数据查询)
    在hue里面集成spark2,使用oozie的调度
  • 原文地址:https://www.cnblogs.com/lexus/p/2348436.html
Copyright © 2011-2022 走看看