T4:使用 T4 消除程序和配置文件中重复的字符串信息
背景
我们经常在配置文件中配置各种: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 消除程序和配置文件中重复的字符串信息的更多相关文章
- 在spring boot中使用jasypt对配置文件中的敏感字符串加密
在spring boot的配置文件application.property(application.yml)文件中常常配置一些密码类的字符,如果用明文则很容易被盗用,可以使用jasypt在配置密码的地 ...
- .NET如何从配置文件中获取连接字符串
一.设置配置文件 <configuration> <!--在configuration下创建一个connectionStrings--> <connectionStrin ...
- java消除整型数组中重复的元素,排序后输出新数组
法一: import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(S ...
- JAVA案例练习: 去除ArrayList中重复的字符串(字符串内容相同),去除重复的对象
package com.yqw.list; import java.util.ArrayList;import java.util.Iterator; public class Demo_ArrayL ...
- C#中正则表达式解析字符串信息
正则表达式提取0~9数字 private static string RegexPickupNumber(string str) { string pattern = @"[^0-9]+&q ...
- Prism 学习:从配置文件中加载 Module
之前我们已经了解过,如何从指定的目录中来加载 Module(原文),现在我们来看,如何从应用程序的配置文件中来加载 Module.以这种方式来加载 Module 的优点包括:1. 被加载的 Modul ...
- 关于IBatisNet的配置文件中数据库连接字符串加密处理
我们通常在IBatisNet配置文件 properties.config 加入数据库连接字符串.数据库连接字符串直接放在里面,没有被加密,很不安全.如果我们把 properties.config 文件 ...
- Java关于Properties用法(二)——替换配置文件中的参数
上一章讲了配置文件的基本用法,虽然上一章已经可以解决一些需求,但还不些不足之处.假如,配置文件里面的字符串有一部分需要经常变动,另外一些不需要,上一章的方法就不方便了,所以这章主要讲如何在配置文件中使 ...
- 获取EnterpriseLibrary企业库配置文件中ConnectionStrings(原创)
在使用企业类库时想取出单独企业配置文件中的连接字符串遍历,并放到自己的数据库处理类中,在查找了很久的资料后都没有找到,于是自己探索着写了一个,共享给大家以做参考: ConfigurationSourc ...
随机推荐
- 集合类List、Set、Map的区别、联系和遍历方式
说集合之前,先说说数组和集合: 1.数组长度是固定的,当超过容量后会在内存中重新创建一个原来数组1.5倍长度的新数组,再把元素存进去:数组既可以存储基本数据类型,又可以存储引用数据类型. 2.集合长度 ...
- C#, CLR, and .NET Framework versions
- APP性能测试开始之旅
你是不是也跟我一样在工作中存在着同样的问题,APP版本在上线后不断的会有市场人员或者用户反馈页面加载慢,进入页面loading很久(实际我们设置的加载超时是15秒,15秒内加载出内容则显示,15秒外未 ...
- 网站目录下多出的 core 文件
1.core 文件简介 在一个程序崩溃时,一般会在指定目录下生成一个core文件.core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的.也就是说这种文件是程序意外中断时候生成的 deb ...
- 【算法】后缀自动机(SAM) 初探
[自动机] 有限状态自动机的功能是识别字符串,自动机A能识别字符串S,就记为$A(S)$=true,否则$A(S)$=false. 自动机由$alpha$(字符集),$state$(状态集合),$in ...
- 【LOJ】#2098. 「CQOI2015」多项式
题解 令x = x - t代换一下会发现 \(\sum_{i = 0}^{n}a_i (x + t)^i = \sum_{i = 0}^{n} b_{i} x^{i}\) 剩下的就需要写高精度爆算了- ...
- oracle中listagg()和wmsys.wm_concat()基本用法
一.LISTAGG() 简介 介绍:其函数在Oracle 11g 版本中推出,对分组后的数据按照一定的排序进行字符串连接. 其中,“[,]”表示字符串连接的分隔符,如果选择使用[over (parti ...
- android 设置为系统应用
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 将一个应用apk放到手机的 /系统/应用 这个目录下, 就会是 系统应用.
- 利用cve-2017-11882的一次渗透测试
利用工具:https://github.com/Ridter/CVE-2017-11882/ 影响版本: office 2003 office 2007 office 2010 office 2013 ...
- BZOJ 3400: [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队 动态规划
3400: [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=34 ...