引言:DDD的困惑 最近,我看到园子里面有位朋友的一篇博客 <领域驱动设计系列(一):为何要领域驱动设计? >文章中有下面一段话,对DDD使用产生的疑问: •没有正确的使用ORM, 导致数据加载过多,导致系统性能很差. •为了解决性能问题,就不加载一些导航属性,但是却把DB Entity返回上层,这样对象的一些属性为空,上层使用这个数据时根本不知道什么时间这个属性是有值的,这个是很丑陋的是不是? 博主说的第一个问题,是因为使用ORM的人把实体类的全部属性的数据查询出来了,相当于执行了 sele…
当实体类中entity/DTO/VO等类中,有枚举值,应该怎么输出? 问题: orderStatus 和 payStatus都是枚举类,并且枚举的个数达地10来个,我们不可能在模板页面(jsp/ftl/html)等页面进行多大10多项的if判断,去一个一个的判断值,假如以后随着业务的增多,枚举个数越来越多,改怎么办?   /**订单*/ @Data //get/set //将值是null的数据剔除 @JsonInclude(JsonInclude.Include.NON_NULL) public…
分别转化单个类和集合两种方法. /// <summary> /// DataSet转换为实体类 /// </summary> /// <typeparam name="T">实体类</typeparam> /// <param name="p_DataSet">DataSet</param> /// <param name="p_TableIndex">待转换数据…
1.什么是实体类 简单地说就是描述一个业务实体的“类”,业务实体直观一点理解就是整个就是整个软件系统业务所涉及的对象. eg:MySchool系统中的班级,学生,年级等都是业务实体,“雷电”游戏中的飞机,子弹都可以看作业务实体 实体类是分层构造中传递数据的重要工具,与DataSet相比,实体类是强类型的,面向对象的,易于控制,实体类使得数据访问层之外的层次的开发不必再了解数据库的架构,实现了这些层和数据库的解耦. 2.数据访问层将实体类的实例解析,或者将从数据库中检索到的关系数据转换成实体对象.…
XML文件与实体类的互相转换 一.将XML文件反序列化为实体类对象 1. 通常程序的配置信息都保存在程序或者网站的专门的配置文件中(App.config/web.config).但是现在为了演示XML序列化和反序列化,将配置信息保存在一个XML文件(config.xml)中,通过反序列化将配置信息读取出来保存到一个单独的类(Config.cs)中.这样如果需要用到配置信息,没必要每次都读写XML文件,只需要调用Config这个类就可以获取对应节点的信息. config.xml: <?xml ve…
前提准备: 搭建一个springboot项目,详情请参见其它博客:点击前往 1 引入相关依赖 web.mysql.jpa.lombok <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&…
我们使用EF Core的实体类向SQL Server数据库表中插入数据后,如果数据库表中有自增列或默认值列,那么EF Core的实体对象也会返回插入到数据库表中的默认值. 下面我们通过例子来展示,EF Core是怎么获取数据库的默认值的.首先我们建立一个.NET Core控制台项目,然后引入EF Core所需的NuGet包. 获取自增列值 我们在SQL Server数据库中建立一个表Person,该表有一个自增列ID为主键: CREATE TABLE [dbo].[Person]( ,) NOT…
在项目开发中,数据库中的字段名不一定和实体类的类名完全相同(当然大小写忽略),那么就可以在sql映射文件中解决此问题 一.创建需要的数据库和表 编写sql脚本,在navicat for mysql中执行后生成表 CREATE TABLE orders( order_id INT PRIMARY KEY AUTO_INCREMENT, order_no ), order_price FLOAT ); ); ); ); 二.定义实体类 package me.gacl.domain; /** * Or…
开发过程中经常需要根据数据表编写对应的实体类,下面是使用sql语句快速将数据表转换成对应实体类的代码,使用时只需要将第一行'TableName'引号里面的字母换成具体的表名称就行了: declare @TableName sysname = 'TableName' declare @Result varchar(max) = 'public class ' + @TableName + ' {' select @Result = @Result + ' public ' + ColumnType…
基本介绍 Halo 项目中定义了一些实体类,用于存储博客中的关键数据,如用户信息.文章信息等.在深入学习 Halo 的设计理念与实现过程之前,不妨先学习一下一个完整的博客系统都由哪些元素组成. 实体类 Halo 中的除 BaseEntity 外的每一个实体类都对应着一个数据表,以 User 类为例,每一个 User 对象都对应 users 表中的一条记录,每一个对象属性的值也等于数据表中对应字段的值. User 类定义如下: @Data // Lombok 注解, 自动生成 get().set(…