`
terryfeng
  • 浏览: 505042 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多

数据存储层: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);
        }
    }
}
分享到:
评论

相关推荐

    [免费高清PDF]31天重构系列笔记.rar

    在31天的时间里,这本笔记系统地介绍了重构的基本理念、原则和C#中的具体实施方法。 重构的核心概念是通过一系列微小的步骤,逐步改善代码质量,避免一次性大规模的修改所带来的风险。在C#中,重构涉及到各种技巧和...

    图书管理系统设计重构

    总的来说,这个图书管理系统项目涵盖了软件开发的多个关键领域,包括设计模式、数据库管理、用户交互以及安全性控制,是学习和实践Java Web开发的优秀实例。通过深入研究和分析该项目,不仅可以提升对Java编程和设计...

    系统重构的最佳实践.docx

    同时,需要使用迭代的方式参与重构项目,避免全部开发完成,再进行系统切换的方式。 最后,重构需要清晰了解旧系统。了解现有系统是一个学习的过程,需要了解旧系统的相关知识,以及有哪些需求点和应该注意的问题等...

    31天重构学习笔记中文版

    通过对以上案例的学习,我们不仅了解了重构的基本原则和实践方法,还深入探讨了如何通过具体的编码技巧来提高代码质量和系统的整体性能。这些知识对于每一位软件工程师而言都是非常宝贵的,无论是初学者还是资深...

    .NET 快速重构 - 学习笔记

    .NET 快速重构学习笔记是针对开发者提升代码质量和可维护性的重要指南。重构是一个系统性的过程,旨在改善软件设计,优化代码结构,而不改变其外在行为。在.NET开发环境中,重构是不可或缺的技能,它可以帮助开发者...

    供应链企业组织结构与业务流程重构

    【供应链企业组织结构与业务流程重构】是当前企业面临的重要议题。传统的组织模式通常是基于劳动分工和职能专业化,这种模式在市场稳定时效果显著,但面对现今市场快速变化和供应链管理的需求,其局限性逐渐暴露。 ...

    企业信息管理系统(13)_控制层、项目视图层、model 层重构

    在本话题中,我们将重点关注系统架构中的控制层、项目视图层以及model层的重构,这些都是确保系统性能、可维护性和扩展性的关键环节。 首先,我们来看控制层。控制层是系统架构中的核心部分,负责处理用户输入、...

    遗留系统重构与维护

    遗留系统的重构与维护是软件...对于遗留系统重构与维护课程讲义,除了上述提到的内容,还应该包含大量的实例、最佳实践、策略和技巧,以便于学习者能够更好地理解和运用重构与维护的理论知识,并将其应用于实际工作中。

    《剖析业务架构与业务系统重构实践》

    《剖析业务架构与业务系统重构实践》

    重构 学习笔记 refactoring martin fowler

    重构是软件开发过程中的一个重要环节,它涉及到对现有代码的改进,目的是为了提高代码的可读性、可维护性和设计质量,而不改变其外部行为。本文主要围绕重构的关键概念、原则、时机以及面临的挑战展开讨论。 首先,...

    代码重构开发技术学习路线图

    代码重构开发技术学习路线图,从入门到架构师学习路线

    P7P8架构师带你剖析业务架构与业务系统重构实践 实战电商与营销业务新风暴NX

    ### 业务架构与业务系统重构实践 #### 一、业务架构与业务系统重构的重要性 在当前快速变化的商业环境中,企业面临着不断增长的市场需求和技术挑战。为了更好地应对这些挑战,提高企业的竞争力,业务架构和业务...

    系统重构.pdf 侯捷

    系统重构是软件开发中不可或缺的一部分,它不仅能提升代码质量,还能增强系统的可维护性和可扩展性。通过遵循一定的原则和方法,可以有效地降低重构过程中的风险,并确保重构活动的成功实施。对于软件开发者来说,...

    基于教材重构的深度学习.pdf

    【基于教材重构的深度学习】是指在教学过程中,教师通过深入理解和分析教材,将课程内容按照知识结构重新组织,以促进学生的深度学习。这一方法强调在教学中关注知识的本质,运用数学思想,以及通过问题试误来放大...

    软件重用-系统重构

    在IT行业中,软件重用和系统重构是两个关键的概念,它们对于提高开发效率、降低维护成本以及提升软件质量具有至关重要的作用。让我们深入探讨这两个主题。 **软件重用(Software Reuse)** 软件重用是将已开发的、...

    springmvc重构员工管理系统

    4. **Service层**:在员工管理系统中,Service层是业务逻辑层,通常与DAO层(数据访问对象)交互,处理数据操作。可以使用Spring的依赖注入(DI)功能将Service实例注入到Controller中。 5. **Repository/DAO接口**...

    《重构》----学习笔记

    《重构》是一本深入探讨软件开发过程中的代码优化与改进的经典著作。重构,简单来说,是在不改变软件外部行为的前提下,对其内部结构进行改进,以提高代码的可读性、可维护性和可扩展性。这一过程并非依赖于个人天赋...

    重构代码笔记1

    重构是软件开发中的一种重要实践,旨在提升代码的可读性、可维护性和设计质量,同时保持原有功能的不变。本文以"重构代码笔记1"为出发点,深入探讨了24种常见的代码坏味道及其对应的重构策略。 首先,神秘命名...

    大规模软件重用和系统重构课件

    在编程和软件开发领域,大规模软件重用和系统重构是两个至关重要的概念,它们对于提高开发效率、降低维护成本以及确保软件质量具有显著作用。在这个课件中,我们将深入探讨这两个主题,帮助学习者理解如何在实践中...

Global site tag (gtag.js) - Google Analytics