系统业务层重构开发笔记(学习别人补充自己)

数据存储层:Oracle

业务层:.Net

UI:Flex

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

建立Oracle数据表

系统业务层重构开发笔记(学习别人补充自己)

生成代码

用CodeSmith 建立Oracle连接 

系统业务层重构开发笔记(学习别人补充自己)

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

 

系统业务层重构开发笔记(学习别人补充自己)

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

系统业务层重构开发笔记(学习别人补充自己)

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

ServiceTemplate.cst

DaoTemplate.cst

IDaoTemplate.cst

DoMainTemplate.cst

系统业务层重构开发笔记(学习别人补充自己)

 

 

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

系统业务层重构开发笔记(学习别人补充自己)

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

系统业务层重构开发笔记(学习别人补充自己)

把DoMainTemplate.cst复制到Po项目中

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

系统业务层重构开发笔记(学习别人补充自己)

开始调试

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

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

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

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

系统业务层重构开发笔记(学习别人补充自己)

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

打开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与其他项目对比

系统业务层重构开发笔记(学习别人补充自己)

添加Po的项目引用

using Ebao51Net.Po.SuppliersModule;

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

系统业务层重构开发笔记(学习别人补充自己)

修改SuppliersDao.cs文件

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

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

namespace Ebao51Net.Persistence.SuppliersModule

 

 

 

 

 

替换成员名

系统业务层重构开发笔记(学习别人补充自己)

打开Service项目的SuppliersManager.cs文件

删除错误的引用

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

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

using Ebao51Net.Po.SuppliersModule;
using Ebao51Net.Persistence.SuppliersModule;

namespace Ebao51Net.Services.SuppliersModule

替换

系统业务层重构开发笔记(学习别人补充自己)

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

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

签入一下代码

配置部分

 

系统业务层重构开发笔记(学习别人补充自己)

配置 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" />

替换

系统业务层重构开发笔记(学习别人补充自己)

修改

 

<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>
 
方法功能就是主键自增量
 

修改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);
        }
    }
}
posted on 2012-02-12 22:40 lexus 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lexus/archive/2012/02/12/2348436.html