mysql 字段变更记录_如何记录数据表信息的变更
1 public partial classModifyRecordManager : BaseManager, IBaseManager2 {3 ///
4 ///构造函数5 ///
6 publicModifyRecordManager()7 {8 if (base.dbHelper == null)9 {10 base.dbHelper =DbHelperFactory.GetHelper(BaseSystemInfo.BusinessDbType, BaseSystemInfo.BusinessDbConnection);11 }12 if (string.IsNullOrEmpty(base.CurrentTableName))13 {14 base.CurrentTableName =ZTO_QUOTE_MODIFYRECORDEntity.TableName;15 }16 base.PrimaryKey = "Id";17 }18
19 ///
20 ///构造函数21 /// 指定表名
22 ///
23 public ModifyRecordManager(stringtableName)24 {25 base.CurrentTableName =tableName;26 }27
28 ///
29 ///构造函数30 ///
31 /// 数据库连接
32 publicModifyRecordManager(IDbHelper dbHelper)33 : this()34 {35 DbHelper =dbHelper;36 }37
38 ///
39 ///构造函数40 ///
41 /// 用户信息
42 publicModifyRecordManager(BaseUserInfo userInfo)43 : this()44 {45 UserInfo =userInfo;46 }47
48 ///
49 ///构造函数50 ///
51 /// 用户信息
52 /// 指定表名
53 public ModifyRecordManager(BaseUserInfo userInfo, stringtableName)54 : this(userInfo)55 {56 base.CurrentTableName =tableName;57 }58
59 ///
60 ///构造函数61 ///
62 /// 数据库连接
63 /// 用户信息
64 publicModifyRecordManager(IDbHelper dbHelper, BaseUserInfo userInfo)65 : this(dbHelper)66 {67 UserInfo =userInfo;68 }69
70 ///
71 ///构造函数72 ///
73 /// 数据库连接
74 /// 用户信息
75 /// 指定表名
76 public ModifyRecordManager(IDbHelper dbHelper, BaseUserInfo userInfo, stringtableName)77 : this(dbHelper, userInfo)78 {79 base.CurrentTableName =tableName;80 }81
82 ///
83 ///添加, 这里可以人工干预,提高程序的性能84 ///
85 /// 实体
86 /// 自增量方式,表主键是否采用自增的策略
87 /// 返回主键,不返回程序允许速度会快,主要是为了主细表批量插入数据优化用的
88 /// 主键
89 public string Add(ZTO_QUOTE_MODIFYRECORDEntity entity, bool identity = true, bool returnId = true)90 {91 this.Identity =identity;92 this.ReturnId =returnId;93 entity.Id = int.Parse(this.AddObject(entity));94 returnentity.Id.ToString();95 }96
97 ///
98 ///更新99 ///
100 /// 实体
101 public intUpdate(ZTO_QUOTE_MODIFYRECORDEntity entity)102 {103 return this.UpdateObject(entity);104 }105
106 ///
107 ///获取实体108 ///
109 /// 主键
110 public ZTO_QUOTE_MODIFYRECORDEntity GetObject(stringid)111 {112 return GetObject(int.Parse(id));113 }114
115 public ZTO_QUOTE_MODIFYRECORDEntity GetObject(intid)116 {117 return BaseEntity.Create(this.GetDataTable(new KeyValuePair(this.PrimaryKey, id)));118 }119
120 ///
121 ///添加实体122 ///
123 /// 实体
124 public stringAddObject(ZTO_QUOTE_MODIFYRECORDEntity entity)125 {126 string key = string.Empty;127 SQLBuilder sqlBuilder = new SQLBuilder(DbHelper, this.Identity, this.ReturnId);128 sqlBuilder.BeginInsert(this.CurrentTableName, this.PrimaryKey);129 if (!this.Identity)130 {131 //这里已经是指定了主键了,所以不需要返回主键了
132 sqlBuilder.ReturnId = false;133 sqlBuilder.SetValue(this.PrimaryKey, entity.Id);134 }135 else
136 {137 if (!this.ReturnId && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType ==CurrentDbType.DB2))138 {139 if (DbHelper.CurrentDbType ==CurrentDbType.Oracle)140 {141 sqlBuilder.SetFormula(this.PrimaryKey, "SEQ_" + this.CurrentTableName.ToUpper() + ".NEXTVAL");142 }143 if (DbHelper.CurrentDbType ==CurrentDbType.DB2)144 {145 sqlBuilder.SetFormula(this.PrimaryKey, "NEXT VALUE FOR SEQ_" + this.CurrentTableName.ToUpper());146 }147 }148 else
149 {150 if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType ==CurrentDbType.DB2))151 {152 BaseSequenceManager sequenceManager = newBaseSequenceManager(DbHelper);153 entity.Id = int.Parse(sequenceManager.Increment(this.CurrentTableName));154 sqlBuilder.SetValue(this.PrimaryKey, entity.Id);155 }156 }157 }158 this.SetObject(sqlBuilder, entity);159 if (UserInfo != null)160 {161 sqlBuilder.SetValue(ZTO_QUOTE_MODIFYRECORDEntity.FieldCreateUserId, UserInfo.Id);162 sqlBuilder.SetValue(ZTO_QUOTE_MODIFYRECORDEntity.FieldCreateBy, UserInfo.RealName);163 }164 sqlBuilder.SetDBNow(ZTO_QUOTE_MODIFYRECORDEntity.FieldCreateOn);165 if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.SqlServer || DbHelper.CurrentDbType ==CurrentDbType.Access))166 {167 key =sqlBuilder.EndInsert().ToString();168 }169 else
170 {171 sqlBuilder.EndInsert();172 }173 if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType ==CurrentDbType.DB2))174 {175 returnentity.Id.ToString();176 }177 returnkey;178 }179
180 ///
181 ///更新实体182 ///
183 /// 实体
184 public intUpdateObject(ZTO_QUOTE_MODIFYRECORDEntity entity)185 {186 SQLBuilder sqlBuilder = newSQLBuilder(DbHelper);187 sqlBuilder.BeginUpdate(this.CurrentTableName);188 this.SetObject(sqlBuilder, entity);189 sqlBuilder.SetWhere(this.PrimaryKey, entity.Id);190 returnsqlBuilder.EndUpdate();191 }192
193 //这个是声明扩展方法
194 partial voidSetObjectExpand(SQLBuilder sqlBuilder, ZTO_QUOTE_MODIFYRECORDEntity entity);195
196 ///
197 ///设置实体198 ///
199 /// 实体
200 private voidSetObject(SQLBuilder sqlBuilder, ZTO_QUOTE_MODIFYRECORDEntity entity)201 {202 SetObjectExpand(sqlBuilder, entity);203 sqlBuilder.SetValue(ZTO_QUOTE_MODIFYRECORDEntity.FieldNEWKEY, entity.NEWKEY);204 sqlBuilder.SetValue(ZTO_QUOTE_MODIFYRECORDEntity.FieldNEWVALUE, entity.NEWVALUE);205 sqlBuilder.SetValue(ZTO_QUOTE_MODIFYRECORDEntity.FieldCOLUMNDESCRIPTION, entity.COLUMNDESCRIPTION);206 sqlBuilder.SetValue(ZTO_QUOTE_MODIFYRECORDEntity.FieldOLDKEY, entity.OLDKEY);207 sqlBuilder.SetValue(ZTO_QUOTE_MODIFYRECORDEntity.FieldOLDVALUE, entity.OLDVALUE);208 sqlBuilder.SetValue(ZTO_QUOTE_MODIFYRECORDEntity.FieldRECORDKEY, entity.RECORDKEY);209 sqlBuilder.SetValue(ZTO_QUOTE_MODIFYRECORDEntity.FieldCOLUMNCODE, entity.COLUMNCODE);210 sqlBuilder.SetValue(ZTO_QUOTE_MODIFYRECORDEntity.FieldTABLEDESCRIPTION, entity.TABLEDESCRIPTION);211 sqlBuilder.SetValue(ZTO_QUOTE_MODIFYRECORDEntity.FieldTABLECODE, entity.TABLECODE);212 }213
214 ///
215 ///删除实体216 ///
217 /// 主键
218 /// 影响行数
219 public int Delete(intid)220 {221 return this.Delete(new KeyValuePair(this.PrimaryKey, id));222 }223 }
mysql 字段变更记录_如何记录数据表信息的变更相关推荐
- 如何记录数据表信息的变更
在操作数据记录时,对重要的数据,我们需要记录每一次的变更,有没有好的方法呢? 在通用权限管理系统中提供了记录数据表信息变更的方法. 一.先看看效果截图 二.再看看修改记录表的表结构 三.对该表访问的业 ...
- (转)【mysql元数据库】使用information_schema.tables查询数据库和数据表信息 ---数据记录大小统计...
转:https://www.cnblogs.com/ssslinppp/p/6178636.html https://segmentfault.com/q/1010000007268994?_ea=1 ...
- mysql 命令执行drop 命令_(笔记)Mysql命令drop table:删除数据表
drop table命令用于删除数据表. drop table命令格式:drop table ; 例如,删除表名为 MyClass 的表: mysql> drop table MyClass; ...
- MySQL学习总结(2) --- 数据表管理(增删改查)、使用DQL查询数据(SELECT)
MySQL学习总结(2) - 数据表管理(增删改查).使用DQL查询数据(SELECT) 1. 数据管理(增删改查) 数据库数据管理方法: a.通过SQLyog等管理工具管理数据库数据 b. 通过DM ...
- MySQL学习第二天—操作数据库\数据表命令
文章目录 一.登录数据库 二.基本数据库操作命令 1. 操作数据库 1.1 创建数据库 1.2 删除数据库 1.3 查看数据库 1.4 使用数据库 1.5 其他操作 2.操作数据表 2.1 创建数据表 ...
- MySQL学习笔记-约束以及修改数据表
MySQL学习笔记-约束以及修改数据表 约束: 按功能划为: NOT NULL , PRIMARY KEY , UNIQUE KEY , DEFAULT , FOREIGN KEY 按数据列的数目划为 ...
- 为什么建议MySQL在2000W条左右记录分表
为什么建议MySQL在2000W条左右记录分表?这个数量问题并不是绝对的,这是一个相对的数量.在回答这个问题前我们应该先了解MySQL底层是用的什么数据结构来进行数据存储的. MySQL底层采用的B+ ...
- 查询数据库表名,数据表信息,MySQL Key值(PRI, UNI, MUL)的含义
数据表名: SELECT TABLE_NAME FROM information_schema.`TABLES` WHERE TABLE_SCHEMA ='v53' AND TABLE_TYPE =' ...
- MYSQL数据库(九)- 修改数据表名称、列名称
目录 一.修改列定义(modify col_name) 二.修改列类型(modify col_name) 三.修改列名称(change col_name) 三.修改表名称(rename table a ...
最新文章
- java和php混合_PHP和Java强强联合 集成开发详解
- Java程序员必备 : Java反编译神器——“GUI” 资源分享
- ebay注册流程_跨境电商平台eBay企业入驻流程
- CVE-2020-1472复现与完整利用
- Leetcode每日一题:101.symmetric-tree(对称二叉树)
- dao获取到mysql存储函数_GreenDao3.0使用
- 公告:CSDN下载频道在线举报功能正式上线
- Gradle编译时,assets文件未打包进apk
- 聚搜-聚合搜索引擎网页模板
- 马云装神弄鬼拜见过被通缉的气功大师王林, 歪门邪道的人还办教育,用淘宝支付宝真的不放心
- Unet(pytorch)——制作自己的数据集(二分类)
- Ubuntu18.04安装Fcitx中文输入法
- kurento项目介绍
- “大数据杀熟”谁之祸?
- CF 371D Vessels 【并查集】
- qlv格式的视频如何转为mp4格式(爬虫小技巧)
- 第二十六章 数论——欧拉函数(详解与证明)
- access数据库应用系统客观题_数据库技术复习—ACCESS习题及答案(汇总)
- 用python画微笑脸表情_一种检测视频中人脸微笑表情的方法与流程
- win10电脑时间怎么显示秒?
热门文章
- Microsoft Visual Studio 2017已停止工作,360杀毒导致VC助手冲突
- Windows10 Microsoft Edge右下角恶意弹窗关闭
- python3 manage.py migrations 项目迁移报错
- P6Spy配置信息说明
- 上海交通大学能源动力(核能与核技术工程)考研上岸前辈备考经验
- vscode+latex(基于texLive发行版_windows)/在线高清可视化latex公式编辑器
- 企业级监控zabbix3.4 安装教程(全网最细!!!)
- Mac用户必备的一款微信拓展功能工具-WeChatExtension
- Java --Frame和Panel的区别
- 滴答顺风车怎么抢90%以上的订单_网约车司机都是什么人?想加入网约车不妨看看过来人怎么说...