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 字段变更记录_如何记录数据表信息的变更相关推荐

  1. 如何记录数据表信息的变更

    在操作数据记录时,对重要的数据,我们需要记录每一次的变更,有没有好的方法呢? 在通用权限管理系统中提供了记录数据表信息变更的方法. 一.先看看效果截图 二.再看看修改记录表的表结构 三.对该表访问的业 ...

  2. (转)【mysql元数据库】使用information_schema.tables查询数据库和数据表信息 ---数据记录大小统计...

    转:https://www.cnblogs.com/ssslinppp/p/6178636.html https://segmentfault.com/q/1010000007268994?_ea=1 ...

  3. mysql 命令执行drop 命令_(笔记)Mysql命令drop table:删除数据表

    drop table命令用于删除数据表. drop table命令格式:drop table ; 例如,删除表名为 MyClass 的表: mysql> drop table MyClass; ...

  4. MySQL学习总结(2) --- 数据表管理(增删改查)、使用DQL查询数据(SELECT)

    MySQL学习总结(2) - 数据表管理(增删改查).使用DQL查询数据(SELECT) 1. 数据管理(增删改查) 数据库数据管理方法: a.通过SQLyog等管理工具管理数据库数据 b. 通过DM ...

  5. MySQL学习第二天—操作数据库\数据表命令

    文章目录 一.登录数据库 二.基本数据库操作命令 1. 操作数据库 1.1 创建数据库 1.2 删除数据库 1.3 查看数据库 1.4 使用数据库 1.5 其他操作 2.操作数据表 2.1 创建数据表 ...

  6. MySQL学习笔记-约束以及修改数据表

    MySQL学习笔记-约束以及修改数据表 约束: 按功能划为: NOT NULL , PRIMARY KEY , UNIQUE KEY , DEFAULT , FOREIGN KEY 按数据列的数目划为 ...

  7. 为什么建议MySQL在2000W条左右记录分表

    为什么建议MySQL在2000W条左右记录分表?这个数量问题并不是绝对的,这是一个相对的数量.在回答这个问题前我们应该先了解MySQL底层是用的什么数据结构来进行数据存储的. MySQL底层采用的B+ ...

  8. 查询数据库表名,数据表信息,MySQL Key值(PRI, UNI, MUL)的含义

    数据表名: SELECT TABLE_NAME FROM information_schema.`TABLES` WHERE TABLE_SCHEMA ='v53' AND TABLE_TYPE =' ...

  9. MYSQL数据库(九)- 修改数据表名称、列名称

    目录 一.修改列定义(modify col_name) 二.修改列类型(modify col_name) 三.修改列名称(change col_name) 三.修改表名称(rename table a ...

最新文章

  1. java和php混合_PHP和Java强强联合 集成开发详解
  2. Java程序员必备 : Java反编译神器——“GUI” 资源分享
  3. ebay注册流程_跨境电商平台eBay企业入驻流程
  4. CVE-2020-1472复现与完整利用
  5. Leetcode每日一题:101.symmetric-tree(对称二叉树)
  6. dao获取到mysql存储函数_GreenDao3.0使用
  7. 公告:CSDN下载频道在线举报功能正式上线
  8. Gradle编译时,assets文件未打包进apk
  9. 聚搜-聚合搜索引擎网页模板
  10. 马云装神弄鬼拜见过被通缉的气功大师王林, 歪门邪道的人还办教育,用淘宝支付宝真的不放心
  11. Unet(pytorch)——制作自己的数据集(二分类)
  12. Ubuntu18.04安装Fcitx中文输入法
  13. kurento项目介绍
  14. “大数据杀熟”谁之祸?
  15. CF 371D Vessels 【并查集】
  16. qlv格式的视频如何转为mp4格式(爬虫小技巧)
  17. 第二十六章 数论——欧拉函数(详解与证明)
  18. access数据库应用系统客观题_数据库技术复习—ACCESS习题及答案(汇总)
  19. 用python画微笑脸表情_一种检测视频中人脸微笑表情的方法与流程
  20. win10电脑时间怎么显示秒?

热门文章

  1. Microsoft Visual Studio 2017已停止工作,360杀毒导致VC助手冲突
  2. Windows10 Microsoft Edge右下角恶意弹窗关闭
  3. python3 manage.py migrations 项目迁移报错
  4. P6Spy配置信息说明
  5. 上海交通大学能源动力(核能与核技术工程)考研上岸前辈备考经验
  6. vscode+latex(基于texLive发行版_windows)/在线高清可视化latex公式编辑器
  7. 企业级监控zabbix3.4 安装教程(全网最细!!!)
  8. Mac用户必备的一款微信拓展功能工具-WeChatExtension
  9. Java --Frame和Panel的区别
  10. 滴答顺风车怎么抢90%以上的订单_网约车司机都是什么人?想加入网约车不妨看看过来人怎么说...