(写给像我一样刚离开校园进入公司的小菜鸟)在领域架构下,如何实现简单的展示页面以及增删改查(第一步)

第一次到公司,现在进行的项目已经开始了有一段时间了,底层架构早已搭建好,经过一段时间熟悉,现在为自己记录一下

大致结构如此图所示,我们需要完成的任务只需要涉及三个类库Domain,Model,Web

流程如下:

    1.Model:

       1.1 Entities文件=>>新建实体模型

    2.Domain:

       2.0 Domain类库下有个模型工厂文件件ModelCreateFactory在里面添加实体模型与数据模型转换的TSETZAaaaModelFactory.cs

代码如下

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5
  6 using MARS.Model.Entities;
  7 using MARS.Model.OracleModel;
  8 namespace MARS.Domain.ModelCreateFactory
  9 {
 10     public static class TSETZAaaaModelFactory
 11     {
 12         /// <summary>
 13         /// 将实体模型转换成数据模型
 14         /// </summary>
 15         /// <param name="m">数据模型</param>
 16         /// <returns></returns>
 17         public static TSETZAaaaInfo ToEntityInfo(TSETZAaaa m)
 18         {
 19             if (m == null)
 20             {
 21                 return null;
 22             }
 23             else
 24             {
 25                 return new TSETZAaaaInfo()
 26                 {
 27                     Id = m.ID,
 28                     DaId = m.DAID,
 29                     Zah = m.ZAH,
 30                     Xm = m.XM,
 31                     Gzd = m.GZD,
 32                     Csrq = m.CSRQ,
 33                     Xb = m.XB,
 34                     Mz = m.MZ,
 35                     Sfzh = m.SFZH,
 36                     Fjdz = m.FJDZ,
 37                     Xzz = m.XZZ,
 38                     Mqxm = m.MQXM,
 39                     Fqxm = m.FQXM,
 40                     Mqsfz = m.MQSFZ,
 41                     Mqsfzh = m.MQSFZH,
 42                     Mqmz = m.MQMZ,
 43                     Fqmz = m.FQMZ,
 44                     Jwh = m.JWH,
 45                     Zrr = m.ZRR,
 46                     Lxdh = m.LXDH,
 47                     Szxx = m.SZXX,
 48                     Jdr = m.JDR,
 49                     Djrq = m.DJRQ,
 50                     Djdw = m.DJDW,
 51                     Dazt = m.DAZT
 52
 53                 };
 54             }
 55         }
 56         /// <summary>
 57         /// 多条数据的转换(将实体模型转换成数据模型)
 58         /// </summary>
 59         /// <param name="mList"></param>
 60         /// <returns></returns>
 61         public static List<TSETZAaaaInfo> ToEntityInfoList(List<TSETZAaaa> mList)
 62         {
 63             if (mList.Count<1)
 64             {
 65                 return null;
 66             }
 67             else
 68             {
 69                 var mm = from m in mList
 70                          select new TSETZAaaaInfo
 71                          {
 72                              Id = m.ID,
 73                              DaId = m.DAID,
 74                              Zah = m.ZAH,
 75                              Xm = m.XM,
 76                              Gzd = m.GZD,
 77                              Csrq = m.CSRQ,
 78                              Xb = m.XB,
 79                              Mz = m.MZ,
 80                              Sfzh = m.SFZH,
 81                              Fjdz = m.FJDZ,
 82                              Xzz = m.XZZ,
 83                              Mqxm = m.MQXM,
 84                              Fqxm = m.FQXM,
 85                              Mqsfz = m.MQSFZ,
 86                              Mqsfzh = m.MQSFZH,
 87                              Mqmz = m.MQMZ,
 88                              Fqmz = m.FQMZ,
 89                              Jwh = m.JWH,
 90                              Zrr = m.ZRR,
 91                              Lxdh = m.LXDH,
 92                              Szxx = m.SZXX,
 93                              Jdr = m.JDR,
 94                              Djrq = m.DJRQ,
 95                              Djdw = m.DJDW,
 96                              Dazt = m.DAZT
 97
 98                          };
 99                 return mm.ToList();
100             }
101
102         }
103         /// <summary>
104         /// 将数据模型转换成实体模型
105         /// </summary>
106         /// <param name="m"></param>
107         /// <returns></returns>
108         public static TSETZAaaa ToEntityModel(TSETZAaaaInfo m)
109         {
110             if (m==null)
111             {
112                 return null;
113             }
114             else
115             {
116                 return new TSETZAaaa()
117                 {
118                     ID = m.Id,
119                     DAID = m.DaId,
120                     ZAH = m.Zah,
121                     XM = m.Xm,
122                     GZD = m.Gzd,
123                     CSRQ = m.Csrq,
124                     XB = m.Xb,
125                     MZ = m.Mz,
126                     SFZH = m.Sfzh,
127                     FJDZ = m.Fjdz,
128                     XZZ = m.Xzz,
129                     MQXM = m.Mqxm,
130                     FQXM = m.Fqxm,
131                     MQSFZH = m.Mqsfzh,
132                     MQSFZ = m.Mqsfz,
133                     MQMZ = m.Mqmz,
134                     FQMZ = m.Fqmz,
135                     JWH = m.Jwh,
136                     ZRR = m.Zrr,
137                     LXDH = m.Lxdh,
138                     SZXX = m.Szxx,
139                     JDR = m.Jdr,
140                     DJRQ = m.Djrq,
141                     DJDW = m.Djdw,
142                     DAZT = m.Dazt
143
144                 };
145             }
146         }
147         /// <summary>
148         /// 多条转换(将数据模型转换成实体模型)
149         /// </summary>
150         /// <param name="mList"></param>
151         /// <returns></returns>
152         public static List<TSETZAaaa> ToEntityInfoList(List<TSETZAaaaInfo> mList)
153         {
154             if (mList.Count<1)
155             {
156                 return null;
157             }
158             else
159             {
160                 var mm = from m in mList
161                          select new TSETZAaaa
162                          {
163                              ID = m.Id,
164                              DAID = m.DaId,
165                              ZAH = m.Zah,
166                              XM = m.Xm,
167                              GZD = m.Gzd,
168                              CSRQ = m.Csrq,
169                              XB = m.Xb,
170                              MZ = m.Mz,
171                              SFZH = m.Sfzh,
172                              FJDZ = m.Fjdz,
173                              XZZ = m.Xzz,
174                              MQXM = m.Mqxm,
175                              FQXM = m.Fqxm,
176                              MQSFZH = m.Mqsfzh,
177                              MQSFZ = m.Mqsfz,
178                              MQMZ = m.Mqmz,
179                              FQMZ = m.Fqmz,
180                              JWH = m.Jwh,
181                              ZRR = m.Zrr,
182                              LXDH = m.Lxdh,
183                              SZXX = m.Szxx,
184                              JDR = m.Jdr,
185                              DJRQ = m.Djrq,
186                              DJDW = m.Djdw,
187                              DAZT = m.Dazt
188
189                          };
190                 return mm.ToList();
191             }
192
193         }
194
195
196
197
198     }
199 }

       2.1 Interface文件=>>新建接口(IService文件夹 && IRepository文件夹)

       2.2 Interface文件/IRepository文件/IDbSession.cs=>>注册IRepository文件下所新建的IRepository接口

       2.3 Implement文件/Repository文件/ClassReposito文件新建(Repository数据访问类)

       2.4 Implement文件/RepositoryFactory.cs简单工厂实现低耦合,数据库访问层的统一入口

       2.5 Implement文件/Repository文件/DbSession.cs=>>实现接口,注册返回方法

       2.6 Implement文件夹/Service文件新建(Service业务逻辑类)

    3.Web:

       3.1 在Global.cs里面配置业务逻辑层的关系(具体实现的目的大概是我所描述的,但是菜鸟不知道详细的意思,求解答)  

       3.2 新建控制器=>> 在控制器添加依赖注入

    

这里开始展示代码  

    1.1 首先在Model类库Entities文件下根据OracleModel数据模型里面的“TSETZAaaa.cs”表创建一个“TSETZAaaaInfo.cs”

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using System.Runtime.Serialization;
  6 /*-------------------------------------------------------
  7 // Copyright (C) 2014
  8 //
  9 // 文件名:TSETZAaaaInfo.cs
 10 // 功能描述:dcy  领域层数据库实体
 11 //
 12 //
 13 // 创建标识:  -- 2014-01-13 10:55:30
 14 //
 15 // 添加标识:
 16 //
 17 // 添加标识:
 18 //
 19 //------------------------------------------------------*/
 20
 21 namespace MARS.Model.Entities
 22 {
 23     public class TSETZAaaaInfo
 24     {
 25         /// <summary>
 26         /// ID
 27         /// </summary>
 28         [DataMember]
 29         public string Id
 30         {
 31             get;
 32             set;
 33         }
 34         [DataMember]
 35         public string DaId
 36         {
 37             get;
 38             set;
 39         }
 40         [DataMember]
 41         public string Zah
 42         {
 43             get;
 44             set;
 45         }
 46         [DataMember]
 47         public string Xm
 48         {
 49             get;
 50             set;
 51         }
 52         [DataMember]
 53         public string Gzd
 54         {
 55             get;
 56             set;
 57         }
 58         [DataMember]
 59         public DateTime? Csrq
 60         {
 61             get;
 62             set;
 63         }
 64         [DataMember]
 65         public string Xb
 66         {
 67             get;
 68             set;
 69         }
 70         [DataMember]
 71         public string Mz
 72         {
 73             get;
 74             set;
 75         }
 76         [DataMember]
 77         public string Sfzh
 78         {
 79             get;
 80             set;
 81         }
 82         [DataMember]
 83         public string Fjdz
 84         {
 85             get;
 86             set;
 87         }
 88         [DataMember]
 89         public string Xzz
 90         {
 91             get;
 92             set;
 93         }
 94         [DataMember]
 95         public string Mqxm
 96         {
 97             get;
 98             set;
 99         }
100         [DataMember]
101         public string Fqxm
102         {
103             get;
104             set;
105         }
106         [DataMember]
107         public string Mqsfzh
108         {
109             get;
110             set;
111         }
112         [DataMember]
113         public string Mqsfz
114         {
115             get;
116             set;
117         }
118         [DataMember]
119         public string Mqmz
120         {
121             get;
122             set;
123         }
124         [DataMember]
125         public string Fqmz
126         {
127             get;
128             set;
129         }
130         [DataMember]
131         public string Jwh
132         {
133             get;
134             set;
135         }
136         [DataMember]
137         public string Zrr
138         {
139             get;
140             set;
141         }
142         [DataMember]
143         public string Lxdh
144         {
145             get;
146             set;
147         }
148         [DataMember]
149         public string Szxx
150         {
151             get;
152             set;
153         }
154         [DataMember]
155         public string Jdr
156         {
157             get;
158             set;
159         }
160         [DataMember]
161         public DateTime? Djrq
162         {
163             get;
164             set;
165         }
166         [DataMember]
167         public string Djdw
168         {
169             get;
170             set;
171         }
172         [DataMember]
173         public string Dazt
174         {
175             get;
176             set;
177         }
178     }
179 }

    2.1 Interface文件下有两个文件夹分别放IRepository以及IService的接口

      先来IRepository文件下的接口命名为ITSETZAaaaRepository.cs

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using MARS.Model.OracleModel;
 6
 7 /*-------------------------------------------------------
 8 // Copyright (C) 2014//
 9 // 文件名:ITSETZAaaaRepository.cs
10 // 功能描述:
11 //
12 //
13 // 创建标识: dcy -- 2015-01-13 11:22:11
14 //
15 // 添加标识:
16 //
17 // 添加标识:
18 //
19 //------------------------------------------------------*/
20 namespace MARS.Domain.Interface
21 {
22     public partial interface ITSETZAaaaRepository:IBaseRepository<TSETZAaaa>
23     {
24     }
25 }

      在接着写IService文件下的接口命名为ITSETZAaaaService.cs

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5
 6 using MARS.Model.OracleModel;
 7 using System.Threading.Tasks;
 8 using MARS.Model.Entities;
 9
10 /*-------------------------------------------------------
11 // Copyright (C) 2014
12 //
13 // 文件名:ITSETZAaaaService.cs
14 // 功能描述:
15 //
16 //
17 // 创建标识: -- 2015-01-13 10:49:50
18 //
19 // 添加标识:
20 //
21 // 添加标识:
22 //`
23 //------------------------------------------------------*/
24 namespace MARS.Domain.Interface
25 {
26     public interface ITSETZAaaaService:IBaseService<TSETZAaaa>
27     {
28         /// <summary>
29         /// 新增
30         /// </summary>
31         /// <param name="m"></param>
32         /// <returns></returns>
33         TSETZAaaaInfo Add(TSETZAaaaInfo a);
34         /// <summary>
35         /// 根据Id删除
36         /// </summary>
37         /// <param name="id"></param>
38         /// <returns></returns>
39         bool Delete(string id);
40         /// <summary>
41         /// 修改
42         /// </summary>
43         /// <param name="a"></param>
44         /// <returns></returns>
45         bool Updata(TSETZAaaaInfo a);
46         /// <summary>
47         /// 根据Id查询实体
48         /// </summary>
49         /// <param name="id"></param>
50         /// <returns></returns>
51         TSETZAaaaInfo GetById(string id);
52         /// <summary>
53         /// 获取所有数据
54         /// </summary>
55         /// <param name="pagesize"></param>
56         /// <param name="pageindex"></param>
57         /// <param name="total"></param>
58         /// <returns></returns>
59         List<TSETZAaaaInfo> LoadData();
60     }
61 }

    2.2 注册 Interface文件下的IRepository文件下的IDbSession.cs

加入这个接口方法

1 ITSETZAaaaRepository TSETZAaaaRepository { get; }

    2.3 Implement文件下先在Repository文件下的ClassReposito文件新建(Repository数据访问类)命名为TSETZAaaaRepository.cs

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5
 6 using MARS.Model.OracleModel;
 7 using MARS.Model.Entities;
 8 using MARS.Domain.Interface;
 9 namespace MARS.Domain.Implement
10 {
11    public partial class TSETZAaaaRepository:BaseRepository<TSETZAaaa>,ITSETZAaaaRepository
12     {
13     }
14 }

    2.4 Implement文件下的RepositoryFactory.cs添加一个方法

1 public static ITSETZAaaaRepository TSETZAaaaRepository
2         {
3             get
4             {
5                 return new TSETZAaaaRepository();
6             }
7
8         }

    2.5 实现注册接口 Implement文件下的Repository文件下的DbSession.cs实现前面2.2IDbSession的接口方法

1 public ITSETZAaaaRepository TSETZAaaaRepository
2         {
3             get
4             {
5                 return new TSETZAaaaRepository();
6
7             }
8         }

    2.6 Implement文件夹下的Service文件新建(Service业务逻辑类)命名为TSETZAaaaService.cs

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5
  6 using MARS.Domain.Interface;
  7 using MARS.Model;
  8 using MARS.Model.Entities;
  9 using MARS.Model.OracleModel;
 10 using MARS.Model.Enum;
 11 using MARS.Domain.ModelCreateFactory;
 12 /*-------------------------------------------------------
 13 // Copyright (C) 2014
 14 //
 15 // 文件名:TSETZAaaaServiec.cs
 16 // 功能描述:
 17 //
 18 //
 19 // 创建标识:  -- 2015-01-13 11:35:11
 20 //
 21 // 添加标识:
 22 //
 23 // 添加标识:
 24 //
 25 //------------------------------------------------------*/
 26 namespace MARS.Domain.Implement
 27 {
 28     public class TSETZAaaaServiec:BaseService<TSETZAaaa>,ITSETZAaaaService
 29     {
 30         //----------------------------------------
 31         public override void SetCurrentRepository()
 32         {
 33             CurrentRepository = _dbSession.TSETZAaaaRepository;
 34         }
 35
 36
 37         //----------------------------------------
 38         /// <summary>
 39         /// 新增
 40         /// </summary>
 41         /// <param name="a"></param>
 42         /// <returns></returns>
 43         public TSETZAaaaInfo Add(TSETZAaaaInfo a)
 44         {
 45           var b =CurrentRepository.AddEntities(TSETZAaaaModelFactory.ToEntityModel(a));
 46           if (b != null && _dbSession.SaveChanges() > 0)
 47           {
 48               _dbSession.SaveChanges();
 49               return (TSETZAaaaModelFactory.ToEntityInfo(b));
 50
 51           }
 52           return null;
 53
 54         }
 55         /// <summary>
 56         /// 删除
 57         /// </summary>
 58         /// <param name="id"></param>
 59         /// <returns></returns>
 60         public bool Delete(string id)
 61         {
 62             TSETZAaaa m=new TSETZAaaa();
 63             m.ID=id;
 64             var d = _dbSession.TSETZAaaaRepository.Delete(c => c.ID == m.ID,m);
 65             if (d)
 66             {
 67                 _dbSession.SaveChanges();
 68                 return true;
 69             }
 70             else
 71             {
 72                 return false;
 73             }
 74         }
 75
 76         /// <summary>
 77         /// 修改
 78         /// </summary>
 79         /// <param name="a"></param>
 80         /// <returns></returns>
 81         public bool Updata(TSETZAaaaInfo a)
 82         {
 83             var u = _dbSession.TSETZAaaaRepository.Update(c => c.ID == a.Id, TSETZAaaaModelFactory.ToEntityModel(a));
 84             if (u!=null)
 85             {
 86                 _dbSession.SaveChanges();
 87                 return true;
 88             }
 89             else
 90             {
 91                 return false;
 92             }
 93         }
 94         /// <summary>
 95         /// 根据id获取数据模型
 96         /// </summary>
 97         /// <param name="id"></param>
 98         /// <returns></returns>
 99         public TSETZAaaaInfo GetById(string id)
100         {
101             return TSETZAaaaModelFactory.ToEntityInfo(_dbSession.TSETZAaaaRepository.LoadEntities(c => c.ID == id).FirstOrDefault());
102         }
103
104         /// <summary>
105         /// 加载所有数据
106         /// </summary>
107         /// <returns></returns>
108         public List<TSETZAaaaInfo> LoadData()
109         {
110             var data = TSETZAaaaModelFactory.ToEntityInfoList(_dbSession.TSETZAaaaRepository.GetAll().ToList());
111             if (data!=null)
112             {
113                 return data;
114             }
115             else
116             {
117                 return null;
118             }
119         }
120     }
121 }

    3.1 Global.cs建立容器

 1 #region 依赖注入
 2             var builder = new ContainerBuilder();
 3             SetupResolveRules(builder);
 4             builder.RegisterControllers(Assembly.GetExecutingAssembly());
 5             var container = builder.Build();
 6             DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
 7 #endregion
 8
 9  private void SetupResolveRules(ContainerBuilder builder)
10         {
11
12             builder.RegisterType<TSETZAaaaServiec>().As<ITSETZAaaaService>();
13
14         }

    3.2 新建控制器添加依赖注入 代码如下:

1  #region 依赖注入
2         private readonly ITSETZAaaaService _ITSETZAaaaService;
3
4         public TSETZAaaaController(ITSETZAaaaService ITSETZAaaaService)
5         {
6             _ITSETZAaaaService = ITSETZAaaaService;
7         }
8
9 #endregion

好了  第一部分就这样结束,后面我还会上传配合EasyUi完成的页面展示以及增删改查 文章问题很多啊,希望大家发现能留言便于我及时更正 谢谢

时间: 2024-09-30 11:19:12

(写给像我一样刚离开校园进入公司的小菜鸟)在领域架构下,如何实现简单的展示页面以及增删改查(第一步)的相关文章

啊啊啊啊啊啊啊今天就写,炒鸡简单 数据库Sqlite的创建,库的增删改查

啦啦啦啦啦啦啦 写这个不用多长时间,我直接写代码注释都是些语句,Sql语句和Api来操作数据库 ,语句的参数我会注释 SQLite数据库创建数据库需要使用的api:SQLiteOpenHelper必须定义一个构造方法: //arg1:数据库文件的名字 //arg2:游标工厂 //arg3:数据库版本 public MyOpenHelper(Context context, String name, CursorFactory factory, int version){ }//数据库被创建时会调

idea使用mybatis写增删改查

idea应用mybatis写增删改查 entity层 private Integer id;private String userCode;private String userName;private String userPassword;private Integer gender;private Date birthday;private String phone;private String address;private Integer userRole;private Intege

回味手写三层-增删改查

整体效果图 切入正题 首先要有一个model,没有对象操作怎么行 + 然后要有一个SqlHelper(不然操作数据库要累死了) 然后写 数据访问层(DAL): 在写 业务逻辑层(BLL): 然后要写一个list页面显示数据,不然怎么增删改呢?(好像是废话!) 前台: 后台: 然后先写增加 吧!要不然一会辛辛苦苦写的数据 都删完了! 这里完全可以把 增加 写到 list页面的,太懒了,回头改下 前台: 后台: 该写删除了 一个一般处理程序搞定! 最后就是修改了,这个才是有点意思的 前台: 后台:

受老师邀请给学院国创队伍培训php,以一个实战新闻cms增删改查demo为例,写的文档讲义供大家参考

PHP实战基础——以一个新闻cms的增删改查为例 一.        环境配置 二.        数据库创建 三.        增删改查demo 连接数据库 <?php $link=mysql_connect("localhost","root","root"); mysql_select_db("demo",$link); mysql_query("set names utf8"); ?>

6.15ajax写数据库的增删改查

<!--<!DOCTYPE html>--> <html lang="zh"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Com

数据库Dao层编增删改查写,数据库事务,数据库升级

数据库事务 有两个特点 1.安全性 情景:正常的转账行为,这个时候如果出现停电等异常,已经扣钱但是没有加钱:这个时候就可用数据库事务解决问题 2.高效性: 使用数据库事务添加享受同数量的数据,对比耗时少: 原理:没开始事务的是打开数据库,插入数据,关闭数据库: 开启事务的是数据存到内存,然后一次写入到数据库: 数据库升级 升级的时候版本号必须要大于等于2:而且要大于上一版本: 1 package com.example.databasedemo; 2 3 import android.conte

Springboot+JPA+Thymeleaf 校园博客完整小网站

本文所属[知识林]:http://www.zslin.com/web/article/detail/35 此项目是一个比较简易的校园博客.麻雀虽小五脏俱全,虽然是比较简易的但是涉及的知识点还是比较全面的. 此项目涵盖了[知识林]中Springboot和Thymeleaf中所有知识点的内容. 主要功能有: 系统管理 系统初始化 菜单管理 角色管理 用户管理 系统配置管理 用户注册 邮件验证码实现 用户登陆 找回密码 博文分类管理 添加分类 修改分类 博文管理 添加博文 修改博文 博文评论(未实现)

当程序员说“这代码写的可真烂”,他们的意思是“这烂代码不是我写的”。而当他们说这段代码有些“小问题”时,很可能这代码是他们自己写的

英文原文:What Programmers Say vs. What They Mean 你是否听到过同事说“这段代码不言自明”?你的同事的这句话的实际意思是这段代码不需要写注释. 你也许注意到了,很多时候,程序员所说的话的字面意思和其真实的意思是完全不同的.不用惊异,下面你将很快知道这些暧昧的短语和其深层次的意思都是什么. 最近 Imgur 上出现了一张图片,里面列举的程序员的一些专业术语和其含义,它能很好的帮助你理解这些话的真实意思.这里是对其中的精华进行的总结. 典型的程序员之间的对话 当

写个关于使用cocostudio Armature实现动画自由切换的小demo

这是一个关于使用cocostudio实现动画自由切换的小demo auto sprite =Sprite::create("background.png"); sprite->setAnchorPoint(Point(0,0)); this->addChild(sprite); ArmatureDataManager::getInstance()->addArmatureFileInfo("catArmature/catArmature.ExportJson