【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三层,关于三层的调用,后文再介绍。

相关推荐
陈随易9 小时前
编程语言级别的Skill市场,AI Agent 的未来形态
前端·后端·程序员
IT_陈寒12 小时前
Vite的热更新突然不香了,排查三小时差点砸键盘
前端·人工智能·后端
子兮曰13 小时前
Agency-Agents 深度解析:400+ AI 专家的"梦之队"如何重塑开发工作流
前端·后端·vibecoding
用户83562907805113 小时前
Python 实现 PDF 文件加密与解密方法
后端·python
小满zs13 小时前
Go语言第二章(小无相功)
后端·go
用户83562907805113 小时前
使用 Python 冻结与拆分 Excel 窗格教程
后端·python
karry_k14 小时前
MyBatis批量insert-select踩坑:useGeneratedKeys=true 可能让PostgreSQL返回大量插入结果
java·后端
妙码生花14 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(十九):点选验证码代码逐行目检
前端·后端·go
贰先生14 小时前
Xiuno BBS X版 用户封禁系统
后端
karry_k14 小时前
PostgreSQL 在 MyBatis 中执行正常 SQL 失效:一次 DELETE USING 踩坑记录
java·后端