JCoder.Db4Net.MySql
3.8.2
.NET 6.0
This package targets .NET 6.0. The package is compatible with this framework or higher.
.NET Standard 2.1
This package targets .NET Standard 2.1. The package is compatible with this framework or higher.
.NET Framework 4.7.2
This package targets .NET Framework 4.7.2. The package is compatible with this framework or higher.
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package JCoder.Db4Net.MySql --version 3.8.2
NuGet\Install-Package JCoder.Db4Net.MySql -Version 3.8.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="JCoder.Db4Net.MySql" Version="3.8.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add JCoder.Db4Net.MySql --version 3.8.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: JCoder.Db4Net.MySql, 3.8.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install JCoder.Db4Net.MySql as a Cake Addin #addin nuget:?package=JCoder.Db4Net.MySql&version=3.8.2 // Install JCoder.Db4Net.MySql as a Cake Tool #tool nuget:?package=JCoder.Db4Net.MySql&version=3.8.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
JCoder.Db4Net.MySql
属性 | |
---|---|
作者(Authors) | Jackie Law |
版权(Copyright) | Copyright © Jackie Law. All rights reserved. |
协议 | MIT |
联系(QQ) | 1378071853 |
联系(Wechat) | JackieLaw1024 |
联系(Email) | JackieLaw-dev@outlook.com |
[TOC]
一.架构说明
JCoder.Db4Net.MySql | |
---|---|
语言 | C# |
协议 | MIT |
.Net框架 | .Net Standard2.1; .Net Framework 4.7.2; .Net 7; .Net 6; |
简述 | Database类库,一个基于JCoder.Db4Net且支持MySql的库。 |
1.1 引用类库
引用类库 | 版本 |
---|---|
JCoder.Db4Net | >=3.0.0 |
MySql.Data | >=8.0.25 |
1.2 相关类库
相关类库 | 说明 |
---|---|
JCoder.Db4Net | 一款为方便使用数据库的操作类库。 |
JCoder.Db4Net.Sqlite | 一个基于JCoder.Db4Net且支持Sqlite的库。 |
JCoder.Db4Net.MySql | 一个基于JCoder.Db4Net且支持Mysql的库。 |
JCoder.Db4Net.SqlServer | 一个基于JCoder.Db4Net且支持SqlServer的库 。 |
JCoder.Mock4Net | 一款简易版的用于模拟数据的功能库。 |
JCoder.Log4Net | 一款用于日志记录的类库。 |
JCoder.Log4Net.Sqlite | 一款使用Sqlite进行日志记录的类库。 |
JCoder.Ioc4Net | 一款简易款的Ioc操作类库。 |
获取方式
- 版本要求:>=3.0.0
- 以版本3.0.0为例
获取方式 | 描述 |
---|---|
Package Manager | Install-Package JCoder.Db4Net.MySql -Version 3.0.0 |
.Net CLI | dotnet add package JCoder.Db4Net.MySql --version 3.0.0 |
PackageReference | <PackageReference Include="JCoder.Db4Net.MySql" Version="3.0.0" /> |
Paket CLI | paket add JCoder.Db4Net.MySql --version 3.0.0 |
Script&Interactive | #r "nuget: JCoder.Db4Net.MySql, 3.0.0" |
Cake | // Install as a Cake Addin<br/>#addin nuget:?package=JCoder.Db4Net.MySql&version=3.0.0<br/><br/>// Install as a Cake Tool<br/>#tool nuget:?package=JCoder.Db4Net.MySql&version=3.0.0 |
使用说明
主要类与接口
名称 | 类型 | 描述 |
---|---|---|
MySqlTexter | 类 | 主要用于Mysql的SQL语句的生成。 |
MySqlBuilder | 类 | 主要用于Mysql数据库结构的处理。 |
MySqler | 类 | 主要用于Mysql的SQL的执行与处理。 |
DbMySql | 类 | 工具类,主要用于Mysql数据库通用的处理。 |
创建实例
MySqlFactoryOperator
需要先在项目里引用或加载MySql官方库MySql.Data.dll。
IDbOperator _dber = new MySqlFactoryOperator()
{
ConnectionString = "server=127.0.0.1;database=test;uid=user;pwd=testpassword;Connect Timeout=18000"
};
MySqler
IDbOperator _dber = new MySqler()
{
ConnectionString = "server=127.0.0.1;database=test;uid=useruser;pwd=testpassword;Connect Timeout=18000"
};
// Create a new instance.
IDbOperator _dber = new MySqler()
{
ConnectionString = "server=127.0.0.1;database=test;uid=useruser;pwd=testpassword;Connect Timeout=18000"
};
// Use the global instance.
IDbOperator _dber = DbHub.GetOperOrNew<MySqler>();
_dber.ConnectionString = "server=127.0.0.1;database=test;uid=useruser;pwd=testpassword;Connect Timeout=18000";
MySqler使用
CanConnect(是否能够连接数据库)
// CanConnect(是否能够连接数据库) if (_dber.CanConnect()) { return; }
CreateParameter(创建相应的参数)
// CreateParameter(创建相应的参数) return _dber.CreateParameter( "ID", 123);
Execute(执行SQL)
// Execute(执行SQL) var _parameters = new List<DbParameter>() { _dber.CreateParameter("ID","ID123"), _dber.CreateParameter("Name","Name123"), _dber.CreateParameter("CreateTime",DateTime.Now), }; var _sql = @"insert table1 (ID,Name,CreateTime) values (@ID,@Name,@CreateTime);"; var _count = _dber.Execute(_sql, _parameters);//直接执行SQL //var _count = _dber.Execute(true,_sql, _parameters);// 使用事务执行SQL return _count >= 1;
Execute(执行多条SQL)
// Execute(执行多条SQL) var _parameters = new List<DbParameter>() { _dber.CreateParameter("Value1","ID123"), _dber.CreateParameter("Value2","Name123"), _dber.CreateParameter("Value3","Name1456"), }; var _sqls = new string[] { @"insert table3 (Values) values (@Value1);", @"insert table3 (Values) values (@Value2);", @"insert table3 (Values) values (@Value3);", } ; var _count = _dber.Execute(_sqls, _parameters);//直接执行SQL //var _count = _dber.Execute(true, _sqls, _parameters);// 使用事务执行SQL return _count >= 1;
ExecuteTransaction(使用事务执行指定的SQL)
// ExecuteTransaction(使用事务执行指定的SQL) public void ExecuteTransaction() { _dber.StartTransaction(); try { for (int i = 0; i < 3; i++) { var _parameters = new List<DbParameter>() { _dber.CreateParameter("ID",i.ToString()), _dber.CreateParameter("Name","Name123"), _dber.CreateParameter("CreateTime",DateTime.Now), }; var _sql = @"insert table1 (ID,Name,CreateTime) values (@ID,@Name,@CreateTime);"; var _isSucceed = _dber.ExecuteTransaction(_sql, _parameters); } } catch (Exception ex) { _dber.RollbackTransaction(); return; } _dber.FinishTransaction(); }
ExecuteTransaction(使用指定的事务执行指定的SQL)
// ExecuteTransaction(使用指定的事务执行指定的SQL) public void ExecuteTransaction() { for (int i = 0; i < 3; i++) { var _key = "Transaction" + i.ToString(); _dber.StartTransaction(_key); var _id = i.ToString() + DateTime.Now.ToLongTimeString(); try { var _parameters = new List<DbParameter>() { _dber.CreateParameter("ID",_id), _dber.CreateParameter("Name","Name123"), _dber.CreateParameter("CreateTime",DateTime.Now), }; var _sql = @"insert table1 (ID,Name,CreateTime) values (@ID,@Name,@CreateTime);"; var _isSucceed = _dber.ExecuteTransaction(_key, _sql, _parameters); } catch (Exception ex) { _dber.RollbackTransaction(_key); return; } if (!_dber.FinishTransaction(_key)) { return; } } }
RollbackTransaction(回滚指定的事务)
// RollbackTransaction(回滚指定的事务) public void RollbackTransaction() { var _key = "Transaction"; _dber.StartTransaction(_key); var _id = nameof(RollbackTransaction); try { var _parameters = new List<DbParameter>() { _dber.CreateParameter("ID",_id), _dber.CreateParameter("Name","Name123"), _dber.CreateParameter("CreateTime",DateTime.Now), }; var _sql = @"insert table1 (ID,Name,CreateTime) values (@ID,@Name,@CreateTime);"; var _isSucceed = _dber.ExecuteTransaction(_key, _sql, _parameters); } catch (Exception ex) { _dber.RollbackTransaction(_key); return; } _dber.RollbackTransaction(_key); }
QueryTable(查询数据,并返回DataTable)
public DataTable QueryTable() { var _parameters = new List<DbParameter>() { _dber.CreateParameter("ID",123), }; var _sql = "select * from table1 where ID=@ID;"; return _dber.QueryTable(_sql, _parameters); }
QueryTables(查询数据,并返回DataSet)
public DataSet QueryTables() { var _parameters = new List<DbParameter>() { _dber.CreateParameter("ID",123), }; var _sql = "select * from table1 where ID=@ID;"; _sql += "select * from table2 where ID=@ID;"; return _dber.QueryTables(_sql, _parameters); }
QueryReader(查询数据,并返回DbDataReader)
public QueryReader QueryReader()
{
var _parameters = new List<DbParameter>()
{
_dber.CreateParameter("ID",123),
};
var _sql = "select * from table1 where ID=@ID;";
return _dber.QueryReader(_sql, _parameters);
}
QueryDictionary (将查询结果的首两列数据转换为Dictionary)
public Dictionary<string, string> QueryDictionary()
{
var _sql = "select Key,Value from table1 ;";
return _dber.QueryDictionary<string, string>(_sql);
}
QueryRowAsDictionary (将查询结果的首行数据转换为Dictionary)
Dictionary<string, string> _dict = _dber.QueryRowAsDictionary("select * from table1 ;");
foreach (var kv in _dict)
{
Console.WriteLine($"[{kv.Key}]{kv.Value}");
}
// 输出 - 有数据时
// [Key001]00327d8c-ddcc-46cc-92d1-9f82dca9374e
// [Column001]阎臭潭
// [Column002]Thithea Tisasheet
// [Column003]2023-02-13 15:44:57.304646
// 输出 - 没有数据时
// [Key001]
// [Column001]
// [Column002]
// [Column003]
QueryValues (将查询结果的首列数据转换为List)
public List<string> QueryNames()
{
var _sql = "select Names from table1 ;";
return _dber.QueryValues<string>(_sql);
}
QueryValue (将查询值转换为long)
public List<long> QueryValue()
{
var _sql = "select count(1) from table1 ;";
return _dber.QueryScalar<long>(_sql);
}
IsExistData (查询是否存在数据)
public bool IsExistData()
{
var _sql = "select 1 from table1 where id=1;";
return _dber.IsExistData(_sql);
}
MySqlTexter使用
生成实例
// 用于生成MySql语句 IDbSqlTexter _sqltexter = new MySqlTexter();
生成数据库相关的SQL语句
// 生成获取当前数据库信息的SQL语句 _sqltexter.GetDatabase(); // 生成获取指定数据库信息的SQL语句 _sqltexter.GetDatabase("database"); // 生成获取数据库信息列表的SQL语句 _sqltexter.GetDatabaseList(); // 生成创建数据库的SQL语句 _sqltexter.CreateDatabase("database"); // 生成删除数据库的SQL语句 _sqltexter.DeleteDatabase("database");
生成数据表(Table)相关的SQL语句
// 生成获取当前数据库的指定数据表的数据列信息的SQL语句 _sqltexter.GetTableColumns("table01"); // 生成获取指定数据库的指定数据表的数据列信息的SQL语句 _sqltexter.GetTableColumns("database","table01"); // 生成获取当前数据库的指定数据表信息的SQL语句SQL语句 _sqltexter.GetTable("table01"); // 生成获取当前数据库的指定数据表信息的SQL语句SQL语句 _sqltexter.GetTable("database","table01"); // 生成获取当前数据库的数据表列表的SQL语句 _sqltexter.GetTableList(); // 生成获取指定数据库的数据表列表的SQL语句 _sqltexter.GetTableList("database"); // 生成删除当前数据库的数据表的SQL语句 _sqltexter.DeleteTable("table01"); // 生成删除指定数据库的数据表的SQL语句 _sqltexter.DeleteTable("database","table01"); // 生成创建数据表的SQL语句 _sqltexter.CreateTable("table01", new List<DbColumn>()); // 生成创建数据表的SQL语句 _sqltexter.CreateTable("database", "table01", new List<DbColumn>());
生成视图(View)相关的SQL语句
// 生成获取当前数据库的指定View的数据列信息的SQL语句 _sqltexter.GetViewColumns("view01"); // 生成获取指定数据库的指定View的数据列信息的SQL语句 _sqltexter.GetViewColumns("database","view01"); // 生成获取当前数据库的指定View信息的SQL语句SQL语句 _sqltexter.GetView("view01"); // 生成获取当前数据库的指定View信息的SQL语句SQL语句 _sqltexter.GetView("database","view01"); // 生成获取当前数据库的View列表的SQL语句 _sqltexter.GetViewList(); // 生成获取指定数据库的View列表的SQL语句 _sqltexter.GetViewList("database"); // 生成删除当前数据库的View的SQL语句 _sqltexter.DeleteView("view01"); // 生成删除指定数据库的View的SQL语句 _sqltexter.DeleteView("database","view01");
生成函数(Function)相关的SQL语句
// 生成获取当前数据库的指定函数信息的SQL语句 _sqltexter.GetFunction("func01"); // 生成获取指定数据库的指定函数信息的SQL语句 _sqltexter.GetFunction("database","func01"); // 生成获取当前数据库的函数列表的SQL语句 _sqltexter.GetFunctionList(); // 生成获取指定数据库的函数列表的SQL语句 _sqltexter.GetFunctionList("database"); // 生成删除当前数据库的Function的SQL语句 _sqltexter.DeleteFunction("func01"); // 生成删除指定数据库指定函数的SQL语句 _sqltexter.DeleteFunction("database","func01");
生成存储过程(Procedure)相关的SQL语句
// 生成获取当前数据库的指定存储过程信息的SQL语句 _sqltexter.GetProcedure("proc01"); // 生成获取指定数据库的指定存储过程信息的SQL语句 _sqltexter.GetProcedure("database","proc01"); // 生成获取当前数据库的存储过程列表的SQL语句 _sqltexter.GetProcedureList(); // 生成获取指定数据库的存储过程列表的SQL语句 _sqltexter.GetProcedureList("database"); // 生成删除当前数据库的Procedure的SQL语句 _sqltexter.DeleteProcedure("proc01"); // 生成删除指定数据库指定存储过程的SQL语句 _sqltexter.DeleteProcedure("database","proc01");
实例使用
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
.NET Framework | net472 is compatible. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETFramework 4.7.2
- JCoder.Db4Net (>= 3.8.2)
- MySql.Data (>= 6.10.7)
-
.NETStandard 2.1
- JCoder.Db4Net (>= 3.8.2)
- MySql.Data (>= 6.10.7)
-
net6.0
- JCoder.Db4Net (>= 3.8.2)
- MySql.Data (>= 8.2.0)
-
net7.0
- JCoder.Db4Net (>= 3.8.2)
- MySql.Data (>= 8.2.0)
-
net8.0
- JCoder.Db4Net (>= 3.8.2)
- MySql.Data (>= 8.2.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
3.13.2 | 32 | 11/7/2024 |
3.13.1 | 29 | 11/7/2024 |
3.12.1 | 71 | 11/3/2024 |
3.11.1 | 65 | 11/1/2024 |
3.9.8 | 126 | 9/17/2024 |
3.9.7 | 95 | 9/8/2024 |
3.9.6 | 93 | 8/30/2024 |
3.9.5 | 70 | 8/30/2024 |
3.9.4 | 90 | 8/30/2024 |
3.9.3 | 94 | 8/30/2024 |
3.9.2 | 93 | 8/30/2024 |
3.9.1 | 79 | 8/30/2024 |
3.8.3 | 124 | 8/13/2024 |
3.8.2 | 102 | 7/24/2024 |
3.8.1 | 79 | 7/18/2024 |
3.7.4 | 71 | 7/17/2024 |
3.7.3 | 133 | 4/5/2024 |
3.6.3 | 107 | 4/4/2024 |
3.5.2 | 235 | 12/9/2023 |
3.5.1 | 154 | 10/5/2023 |
3.4.2 | 148 | 10/2/2023 |
2.26.0 | 303 | 2/13/2023 |
2.21.4 | 329 | 11/8/2022 |
2.20.12 | 372 | 11/4/2022 |
2.19.5 | 404 | 10/14/2022 |
2.18.6 | 407 | 10/13/2022 |
2.13.3 | 431 | 6/5/2022 |
2.12.3 | 434 | 5/25/2022 |
2.11.4 | 442 | 5/13/2022 |
Please contact Jackie by QQ 1378071853 or E-mail JackieLaw-dev@outlook.com;