背景

我们经常在配置文件中配置各种:id、name,然后在程序中使用这些配置获取信息,这导致了字符串重复出现在系统的多个地方,非常不利于维护,本文介绍采用 T4 来消除这种重复。

T4 消除重复

配置文件

 <?xml version="1.0" encoding="utf-8" ?>

 <sqlMap namespace="Accounts" xmlns="http://ibatis.apache.org/mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <alias>
<typeAlias alias="Account" type="WHTR.Domain.Accounts.Account, WHTR.Domain" />
</alias> <statements>
<select id="Account.GetByCustomIdAndAccountType" parameterClass="Hashtable" resultMap="Account">
select
*
from
[Account]
where
(CustomerId = #customerId#) and (AccountType = #accountType#)
</select> <insert id="Account.Insert" parameterMap="Account">
<generate table="Account"/>
<selectKey resultClass="int" type="post" property="Id">
select @@IDENTITY as value
</selectKey>
</insert> <update id="Account.Update" parameterClass="Account">
update
[Account]
set
CustomerId = #CustomerId#,
Amount = #Amount#,
AccountType = #AccountType#,
FrozenAmount = #FrozenAmount#,
InitialAmount = #InitialAmount#,
Creator = #Creator#,
CreateDate = #CreateDate#,
Editor = #Editor#,
EditDate = #EditDate#,
IsDel = #IsDel#,
Version = Version + 1
where
(Version = #Version#) and (Id = #Id#)
</update>
</statements> </sqlMap>

原始代码

         public void Insert(Account account)
{
Mapper
.Instance()
.Insert("Account.Insert", account);
}

重构后的代码

         public void Insert(Account account)
{
Mapper
.Instance()
.Insert(Constants.Account.Insert, account);
}
}

模版

如何写 T4 这里就不介绍了。

T4:使用 T4 消除程序和配置文件中重复的字符串信息的更多相关文章

  1. 在spring boot中使用jasypt对配置文件中的敏感字符串加密

    在spring boot的配置文件application.property(application.yml)文件中常常配置一些密码类的字符,如果用明文则很容易被盗用,可以使用jasypt在配置密码的地 ...

  2. .NET如何从配置文件中获取连接字符串

    一.设置配置文件 <configuration> <!--在configuration下创建一个connectionStrings--> <connectionStrin ...

  3. java消除整型数组中重复的元素,排序后输出新数组

    法一: import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(S ...

  4. JAVA案例练习: 去除ArrayList中重复的字符串(字符串内容相同),去除重复的对象

    package com.yqw.list; import java.util.ArrayList;import java.util.Iterator; public class Demo_ArrayL ...

  5. C#中正则表达式解析字符串信息

    正则表达式提取0~9数字 private static string RegexPickupNumber(string str) { string pattern = @"[^0-9]+&q ...

  6. Prism 学习:从配置文件中加载 Module

    之前我们已经了解过,如何从指定的目录中来加载 Module(原文),现在我们来看,如何从应用程序的配置文件中来加载 Module.以这种方式来加载 Module 的优点包括:1. 被加载的 Modul ...

  7. 关于IBatisNet的配置文件中数据库连接字符串加密处理

    我们通常在IBatisNet配置文件 properties.config 加入数据库连接字符串.数据库连接字符串直接放在里面,没有被加密,很不安全.如果我们把 properties.config 文件 ...

  8. Java关于Properties用法(二)——替换配置文件中的参数

    上一章讲了配置文件的基本用法,虽然上一章已经可以解决一些需求,但还不些不足之处.假如,配置文件里面的字符串有一部分需要经常变动,另外一些不需要,上一章的方法就不方便了,所以这章主要讲如何在配置文件中使 ...

  9. 获取EnterpriseLibrary企业库配置文件中ConnectionStrings(原创)

    在使用企业类库时想取出单独企业配置文件中的连接字符串遍历,并放到自己的数据库处理类中,在查找了很久的资料后都没有找到,于是自己探索着写了一个,共享给大家以做参考: ConfigurationSourc ...

随机推荐

  1. C#, CLR, and .NET Framework versions

  2. python实战之原生爬虫(爬取熊猫主播排行榜)

    """ this is a module,多行注释 """ import re from urllib import request # B ...

  3. tenaorflow函数(1)

    TensorFlow 将图形定义转换成分布式执行的操作, 以充分利用可用的计算资源(如 CPU 或 GPU.一般你不需要显式指定使用 CPU 还是 GPU, TensorFlow 能自动检测.如果检测 ...

  4. 一步一步学习IdentityServer3 (3)

    在上一篇中配置一个基础的idrserver服务端 这篇文章将对服务端做一些变化,这里我先贴一下上一章中的代码 证书: static class Certificate { public static ...

  5. CSS3 transition实现超酷图片墙动画效果

    一.前面的感慨以前也陆陆续续试过CSS3的一些特性,文字投影,多边框等.但都是试试而已,知道有这么回事.今天,见到了一个新玩意,transition,认认真真的试了一下,经过,我懵了,我呆了,我傻了, ...

  6. 图学ES6-6.数值的扩展

  7. 【LeetCode】167. Two Sum II - Input array is sorted

    Difficulty:easy  More:[目录]LeetCode Java实现 Description Given an array of integers that is already sor ...

  8. 018 HDFS中,namenode与datanode的交互

    1.解释 2.启动过程 namenode需要等待给他汇报块的情况,然后namenode会给datanode一个反馈. namenode在启动的时候有一个等待的过程. 3.如果有块损坏 等待报告中,na ...

  9. ubuntu16耳机没声音解决

    装完ubuntu16后又装了英伟达的显卡驱动,安装了网易云音乐后,突然发现电脑没声音,使用了如下方法解决 首先用在终端输入如下命令,下载pulseaudio音量控制软件 sudo apt instal ...

  10. thinkphp中order方法

    order方法属于模型的连贯操作方法之一,用于对操作的结果排序. 用法 $Model->where('status=1')->order('id desc')->limit(5)-& ...