【ASP.NET MVC】使用动软(一)(9)

一、解决的问题

前文为解决数据库操作设计的 TestMysql类,仅简单地封装了一个Query函数,代码如下:

复制代码
public class TestMysql
    {
        public static string SqlserverConnectStr = "server=127.0.0.1;charset=utf8;user id=root;persistsecurityinfo=True;database=test;Password=hynu504.";

        public static DataSet Query(string SQLString)
        {
            using (MySqlConnection connection = new MySqlConnection(SqlserverConnectStr))
            {
                DataSet ds = new DataSet();
                try
                {
                    connection.Open();
                    MySqlDataAdapter command = new MySqlDataAdapter(SQLString, connection);
                    command.Fill(ds, "ds");
                }
                catch (MySql.Data.MySqlClient.MySqlException ex)
                {
                    throw new Exception(ex.Message);
                }
                return ds;
            }
        }
    }

很显然,一个函数去解决所有数据库中所有表的描述、操作,肯定是远远不够,即使完成系统功能也会使代码非常复杂。因此需要封装更多的功能。

二、ORM

ORM 是 Object Relational Mapping 的缩写。意思是对象关系映射,是对象和关系型数据库之间的数据交互问题的解决方案的一种规范。

简而言之:把数据库中的表、视图等,用类来描述(数据表示),然后在定义的数据基础根据业务逻辑(就是系统需要啦)封装出一个个对类进行操作的功能。------以此实现对数据库的操作。

第一步当然是数据描述,首先了解一下JAVA中所谓POJO的概念:

"Plain Old Java Object""简单java对象"。POJO的内在含义是指那些没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的java对象。

这与所谓的实体类等概念是比较类似的,可以理解为就是描述数据------不考虑行为、不考虑派生、多态等等!

其实也符合编程解决问题的思想: 以数据为中心,再考虑行为------有了篮球的定义再去设计投篮、传球、运球等操作!

于是就有了所谓的解决问题的层次问题:

实体层(Model 或者 POJO 或者Entity或者Bean 比较近似的概念):往下对数据表进行描述,往上提供给数据访问层操作的对象;

数据访问层(DAL 或者 DAO等等):往下操作的对象为实体类,往上实现用户所需的业务逻辑,本层关心的数据库CURD等操作的具体实现;

业务逻辑层(BLL 或者Server等等):往下对DAL层的操作进行调用,往上提供用户逻辑接口;

以上个人见解,大体意思类似于TCP/IP等网络模型各层功能的划分:各层实现对上一层的支撑和功能实现,对其他层是 "透明" 的;

三、动软

动软是可以根据数据库表自动生成对应的 实体、数据访问和业务逻辑层的工具(也包括WEB,一般不用),当然也包括了所需要的DLL和LIB(不同数据库有不同的DLL)。启动界面:

第一步,新建数据库连接:

第二步,选择对应的数据库,以MYSQL为例,点击下一步,填写数据库的连接信息:

第三步,测试连接成功后,点确定,提示需要关闭动软。关闭后重新启动界面:

第四步,新建项目,选择简单三层结构即可

第五步,点击下一步,选择数据库和数据表,然后点击开始生成:

其中命名空间等默认即可,修改后比较麻烦。

生成后会自动弹出生成的目录:

1、BLL:业务逻辑

2、DAL:数据访问

3、Model 实体

4、DBUitity 工具类

5、LIB 对应所需的DLL

将以上五个目录拷贝到工程所在的目录:如前文的TestWeb

最后将四个工程在VS中添加到解决方案:右键解决方案-》添加-》现有项目

添加过程中提示升级,点确认即可:效果如下:

其中LIB不需要添加(也无法添加),它提供了所需要的数据库操作DLL。

以上完成动软自动生成简单的ORM三层,关于三层的调用,后文再介绍。

相关推荐
VX:Fegn08952 小时前
计算机毕业设计|基于ssm + vue超市管理系统(源码+数据库+文档)
前端·数据库·vue.js·spring boot·后端·课程设计
Java天梯之路6 小时前
Spring Boot 钩子全集实战(七):BeanFactoryPostProcessor详解
java·spring boot·后端
wr2005147 小时前
第二次作业,渗透
java·后端·spring
短剑重铸之日7 小时前
《SpringCloud实用版》生产部署:Docker + Kubernetes + GraalVM 原生镜像 完整方案
后端·spring cloud·docker·kubernetes·graalvm
爬山算法7 小时前
Hibernate(67)如何在云环境中使用Hibernate?
java·后端·hibernate
女王大人万岁8 小时前
Go标准库 io与os库详解
服务器·开发语言·后端·golang
露天赏雪8 小时前
Java 高并发编程实战:从线程池到分布式锁,解决生产环境并发问题
java·开发语言·spring boot·分布式·后端·mysql
云草桑9 小时前
.net AI开发04 第八章 引入RAG知识库与文档管理核心能力及事件总线
数据库·人工智能·microsoft·c#·asp.net·.net·rag
短剑重铸之日9 小时前
《SpringCloud实用版》 Seata 分布式事务实战:AT / TCC / Saga /XA
后端·spring·spring cloud·seata·分布式事务
FAFU_kyp9 小时前
RISC0_ZERO项目在macOs上生成链上证明避坑
开发语言·后端·学习·macos·rust