|
主题设置

卡片式面板通常用于非白色背景色的主体内

ADO 连接 MySQL

ADO.NET(ActiveX Data Objects .NET)是 Microsoft 在 .NET 框架中提供的一组数据访问服务,用于在应用程序中进行数据库操作。它提供了一种灵活且高效的方式来访问和操作数据源,支持连接到多种数据源(如数据库、XML 文档等)并执行数据操作。

ADO.NET 主要组成

连接管理

  • ADO.NET 提供了 Connection 类型来管理与数据源的连接。开发人员可以使用 SqlConnectionOleDbConnectionOracleConnection 等具体的连接对象来连接到不同的数据源。

命令执行

  • 通过 Command 对象(如 SqlCommandOleDbCommandOracleCommand),可以执行 SQL 查询或存储过程,并处理返回的结果。

数据读取

  • 使用 DataReader 类型可以按行读取查询结果集。DataReader 提供了高性能的只读、前向遍历的数据访问方式,适合处理大量数据。

数据集和数据适配器

  • ADO.NET 提供了 DataSetDataTable 类型,这些类型允许以内存中的表格形式存储和操作数据。DataAdapter 类型负责填充 DataSet,并将 DataSet 的变化保存回数据库。

事务管理

  • ADO.NET 支持事务处理,可以通过 Transaction 对象实现事务的开始、提交或回滚,确保数据库操作的原子性和一致性。

XML 数据处理

  • ADO.NET 支持将 XML 数据存储到数据库中,或者从数据库中检索 XML 数据。XmlReaderXmlWriter 类型用于高效地处理 XML 数据。

集成和扩展性

  • ADO.NET 设计灵活,支持多种数据源和提供程序。它可以与现有的数据访问技术(如 OLE DB、ODBC)无缝集成,并支持自定义的数据提供程序。

创建 MySQL 工具类

先安装 MySQL.Data 包,在项目上 右键——管理NuGet程序包,打开 NuGet 包管理器。

在 “浏览” 中搜索 MySQL,在搜索结果中点击 MySQL.Data 进行安装。

安装完成后在项目下创建 Utility 文件夹,用于存放数据库操作类。

在 Utility 文件夹中创建 MySqlUtil.cs 工具类

写入 MySqlUtil.cs 工具类的内容:MySqlUtil.cs 下载

创建用户表

在 MySQL 数据库中,创建 Users 表。

create table users(
	id int primary key auto_increment comment 'id',
	code varchar(36) comment '用户代码',
	name varchar(55) comment '用户姓名',
	age int comment '年龄',
	pwd varchar(55) comment '密码',
	if_active char(1) comment '是否有效',
	if_delete char(1) comment '是否删除',
	update_time datetime comment '更新时间',
	create_time datetime comment '记录时间'
) comment = '用户表';

创建实体类

在 Models 文件夹中创建实体类 Users(没有 Models 文件夹则先创建)

创建 Daos 层

在项目下创建 Daos 文件夹

创建 UsersDao.cs 类

在 UsersDao.cs 类中写入操作数据库的方法:UsersDao.cs 下载

创建 Services 层

在项目下创建 Services 文件夹

创建 UsersService.cs 类

在 UsersService 中写入 调用 UsersDao 的方法:UsersService.cs 下载

创建 UserController

创建返回类

先在 Models 文件夹中创建 API 接口的信息返回类 BackMsg.cs

创建异常类

再在 Models 文件夹中创建自定义异常类 CustomException.cs,用于抛出自定义的异常信息,并在 Controller 中进行 Catch。

写入 CustomException.cs 异常类的内容:CustomException.cs 下载

创建用户控制器

接下来在 Controllers 文件夹下 右键——添加——Web API控制器类,创建 UserController.cs

在 UserController 中写入用户相关的 API 接口,采用 POST 的调用方式:UsersController.cs 下载

调用 API

启动项目成功

创建用户

通过 Postman 调用创建用户的 API,返回成功

查看数据库中是否成功创建

更新用户

更新用户年龄为 30,返回成功

查看数据库中是否更新成功

删除用户

调用 API 进行删除(逻辑删除)

查看数据库中是否删除成功

获取用户

调用 API 进行查询

返回 JSON 格式设置

API 接口返回 JSON 时,用的是 JsonConvert.SerializeObject(),默认返回的时间格式是:2024-06-02T22:58:06

这不是我们需要的时间格式,所以对返回的时间格式进行设置,设置 JSON 中时间格式的方法有 2 个:

  • 在 Controller 中对每个 API 接口返回的 JSON 单独设置(比较繁琐):
    // 设置日期格式
    var settings = new JsonSerializerSettings
    {
    	DateFormatString = "yyyy-MM-dd HH:mm:ss"
    };
    
    // 序列化对象并设置日期格式
    string json = JsonConvert.SerializeObject(obj, settings);
  • 在 Global.asax 中做统一设置(推荐)
    protected void Application_Start()
    {
    	AreaRegistration.RegisterAllAreas();
    	GlobalConfiguration.Configure(WebApiConfig.Register);
    	FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
    	RouteConfig.RegisterRoutes(RouteTable.Routes);
    	BundleConfig.RegisterBundles(BundleTable.Bundles);
    
    	// 统一对 JsonConvert.SerializeObject() 返回的日期格式进行设置
    	// 因为 JsonConvert.SerializeObject() 默认返回的日期格式是 2024-06-02T22:58:06,所以要设置一下
    	JsonConvert.DefaultSettings = () => new JsonSerializerSettings
    	{
    		DateFormatString = "yyyy-MM-dd HH:mm:ss"
    	};
    }

设置完时间格式后,重新调用获取用户的 API,观察到时间格式已经变成了 2024-06-02 22:58:06 的格式。

下载项目

以上步骤中创建的项目可下载:Web API 项目下载