数据存储层: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); } } }