Cocon90.Db调用方法
Cocon90.DB 使用说明
开源库:https://github.com/Cocon90/Cocon90.Db
Sqlite位置:https://www.nuget.org/packages/Cocon90.Db.Sqlite
Mysql位置:https://www.nuget.org/packages/Cocon90.Db.Mysql
SqlServer位置:https://www.nuget.org/packages/Cocon90.Db.SqlServer
一、简介
Cocon90.Db是由Cocon90.Db.Common为核心的类库与其它数据库操作库组合而成,以方便调用为主要目的,支持ORM操作,增、删、改、查、事务、批量执行、创建表、插入或保存记录 等等,并提供多种数据库支持。当前已支持Mysql、Sqlite、SqlServer。
Cocon90.Db is a core class library which is composed of Cocon90.Db.Common and other database operations, which is convenient to call for the main purpose, and provides a variety of database support. Currently supports Mysql, Sqlite, SqlServer.
二、运行环境
环境 值 NetFramework4.0+ Required VisualStudio 2015+ Required
三、使用方法
(1)新建一件空的项目,取名Cocon90.Db.Demo
。
(2)添加对库Cocon90.Db.Common.dll
的引用,或者执行Install-Package Cocon90.Db.Common
。
(3)接下来,如果要操作SqlServer数据库则引入Cocon90.Db.SqlServer
,如果要操作Sqlite数据库,则引入Cocon90.Db.Sqlite
,如果要操作Mysql,则需要引入Cocon90.Db.Mysql
库。
DataBase Require Library MySql Cocon90.Db.Common,Cocon90.Db.Mysql Sqlite Cocon90.Db.Common,Cocon90.Db.Sqlite SqlServer Cocon90.Db.Common,Cocon90.Db.SqlServer
(4)新建Program类,加入Main函数,比如我们要操作Sqlite数据库加入下列代码:
static void Main(string[] args){ var dh = Cocon90.Db.Common.Db.GetDataHelper("Cocon90.Db.Sqlite.dll", "Cocon90.Db.Sqlite.DbDriver", "D:\\mysqlite.db;");// or you can use app.config by this code: var dh = Cocon90.Db.Common.Db.GetDataHelper();}
如果在要读取配置文件中的app.config中的连接语句,则需要在App.config中进行如下配置:
<configuration><connectionStrings><!--<add name="ConnectionString" providerName="Cocon90.Db.Mysql.dll|Cocon90.Db.Mysql.DbDriver" connectionString="Server=127.0.0.1;Port=3306;Database=world;Uid=root;Pwd=123456;"/>--><!--<add name="ConnectionString" providerName="Cocon90.Db.SqlServer.dll|Cocon90.Db.SqlServer.DbDriver" connectionString="Server=127.0.0.1;Database=world;Uid=sa;Pwd=123456;"/>--><add name="ConnectionString" providerName="Cocon90.Db.Sqlite.dll|Cocon90.Db.Sqlite.DbDriver" connectionString="Data Source=D:\Application\DbTools\sqliteSpy\SQLiteSpy.db3;"/></connectionStrings></configuration>
然后即可进行数据库的常规操作:
var tab = dh.GetTable("select * from Student"); dh.ExecNoQuery("..."); dh.GetString("..."); dh.GetBoolean("..."); dh.GetInt("..."); dh.GetListString("..."); dh.GetPagedResult("..."); dh.CreateOrUpdateTable(typeof(Model.Student));
下面是常用的一些测试:
class Program {static void Main(string[] args){//var dh = Cocon90.Db.Common.Db.GetDataHelper("Cocon90.Db.Sqlite.dll", "Cocon90.Db.Sqlite.DbDriver", "D:\\Application\\DbTools\\sqliteSpy\\SQLiteSpy.db3;");
var dh = Cocon90.Db.Common.Db.GetDataHelper();
var createSql = dh.GetCreateTableSql<Model.CountryLanguageModel>(); var updateTabSql = dh.GetUpdateTableSql(typeof(Model.CountryLanguageModel)); var effRow = dh.CreateOrUpdateTable<Model.CountryLanguageModel>();
var needInserts = new List<Model.CountryLanguageModel>(); Random rand = new Random();for (int i = 0; i < 500; i++) { needInserts.Add(new Model.CountryLanguageModel() { Percent = (decimal)(rand.NextDouble() * 10), Date = DateTime.Now.AddDays(-1 * i), Guid = Guid.NewGuid(), IsOfficial = rand.Next(0, 2) > 0, Code = i, Language = "Lang_" + i }); } var succRows = dh.Save(needInserts.ToArray()); dh.GetTable("SELECT * FROM countrylanguage"); var lst = dh.GetList<Model.CountryLanguageModel>("SELECT * FROM countrylanguage"); Console.WriteLine(lst.Count); var oneModel = dh.GetOne<Model.CountryLanguageModel>("select * from countrylanguage"); var oneModel2 = dh.GetOneByPrimaryKey<Model.CountryLanguageModel>(1, "Lang_1");//var successRows = dh.Insert(new Model.CountryLanguage() { Percent = 1.555m, IsOfficial = false, Code = 2, Language = "Lang" },// new Model.CountryLanguage() { Percent = 1.66m, IsOfficial = true, Code = 3, Language = "Lang" }); var updateSql = dh.GetUpdateSqlByPrimaryKey(new Model.CountryLanguageModel() { Percent = 9.9m }, true, "1=1 AND 2=2", 3, "Lang"); var updateSql2 = dh.GetUpdateSql(new Model.CountryLanguageModel { Code = 3, Percent = 3.3m }, false, null); var updateSql3 = dh.GetUpdateSqlByWhere(new Model.CountryLanguageModel { Code = 3, Percent = 3.3m }, true, "Language='Lang'", new Common.Data.Params("@Name", "song")); var updateRow3 = dh.UpdateByByWhere(new Model.CountryLanguageModel { Percent = 3.3m }, true, "Language='Lang'"); var updateRow = dh.UpdateByPrimaryKey(new Model.CountryLanguageModel { Percent = 4.5m }, true, null, 3, "Lang"); var deleteSql = dh.GetDeleteSqlByPrimaryKey<Model.CountryLanguageModel>("1=1", 3, "Lang"); var deleteSql1 = dh.GetDeleteSqlByPrimaryKey<Model.CountryLanguageModel>(null, 3, "Lang_111"); var deleteSql2 = dh.GetDeleteSqlByWhere<Model.CountryLanguageModel>("Percentage=@Perc", new Common.Data.Params("Perc", 100)); var deleteSql3 = dh.GetDeleteSql(new Model.CountryLanguageModel { Code = 3, Percent = 3.3m }, "1=@myParam", new Common.Data.Params("myParam", 1)); var deleteSql4 = dh.GetDeleteSql<Model.CountryLanguageModel>(null, "1=@myParam", new Common.Data.Params("myParam", 1)); var successRow = dh.Delete(new Model.CountryLanguageModel { Code = 3, Percent = 4.5m });
var saveSql = dh.GetSaveSql(new Model.CountryLanguageModel() { Percent = 1.555m, IsOfficial = false, Code = 2, Language = "Lang" },new Model.CountryLanguageModel() { Percent = 1.66m, IsOfficial = true, Code = 3, Language = "Lang" }); var saveRows = dh.Save(new Model.CountryLanguageModel() { Percent = 1.555m, IsOfficial = false, Code = 2, Language = "Lang" },new Model.CountryLanguageModel() { Percent = 1.66m, IsOfficial = true, Code = 3, Language = "Lang" }); var executeNoQuery = dh.ExecNoQuery("update countrylanguage set Percentage=4.4 where Percentage=@Percentage", new Model.CountryLanguageModel { Percent = 1.6m }); var pageSql = dh.Driver.GetPagedSql("select * from countrylanguage", "CountryCode", true, 1, 10); var pageResult = dh.GetPagedResult<Model.CountryLanguageModel>("select * from countrylanguage", "countrycode", true, 1, 10);
} }
其中测试实体类:
public class Student { [Cocon90.Db.Common.Attribute.Column(PrimaryKey = true)]public Guid? Id { get; set; }public string Name { get; set; }public string Addrss { get; set; }public DateTime? Birthday { get; set; } }
[Table(TableName = "CountryLanguage")]public class CountryLanguageTab { [Column(PrimaryKey = true, ColumnName = "CountryCode")]public int? Code { get; set; } [Column(PrimaryKey = true, CreateDDL = "varchar(20)")]public string Language { get; set; }public bool? IsOfficial { get; set; } [Column(ColumnName = "Percentage", PrimaryKey = false)]public decimal? Percent { get; set; }public DateTime? Date { get; set; }public Guid? Guid { get; set; } }
[Table(TableName = "CountryLanguage")]public class CountryLanguageModel : CountryLanguageTab { [Ignore]public string CodeAndLang { get; set; } }
需要注意的是,实体的设计时,所有类型都必须可以为NULL值(如果是结构体类型,请采用可空类型)。
Cocon90.Db调用方法相关推荐
- php 嵌套while循环,PHP/SQL在嵌套while循环中替代db调用
我的第一篇文章,尽可能地做到尽可能详尽,如果我弄错了某些东西,请提前道歉.我是PHP/SQL的新手,请耐心等待.我发现了几个有关循环内循环的类似问题,但我不确定这些解决方案适用于我的情况.PHP/SQ ...
- [转载]:C#两种不同的存储过程调用方法
两种不同的存储过程调用方法 为了突出新方法的优点,首先介绍一下在.NET中调用存储过程的"官方"方法.另外,本文的所有示例程序均工作于SqlServer数据库上,其它情况类似,以后 ...
- MUSDB18-HQ音乐分轨训练集和MUSDB调用方法
MUSDB18-HQ音乐分轨训练集和MUSDB调用方法 MUSDB18和MUSDB18-HQ简单介绍 MUSDB 组成 解析器 Musdb库API介绍 用法举例 设置musdb 遍历MUSDB18曲目 ...
- 2:什么是反射与反射的应用及调用方法(by-朝夕)
什么是反射与反射的应用及调用方法 前言 为什么学习反射 1.反射创建对象 2.反射调用方法 3.反射调用带参数构造方法 4.反射调用方法 5.反射调用泛型类+泛型方法 6.反射的性能问题 7.反射在框 ...
- Spring中利用applicationContext.xml文件实例化对象和调用方法
Spring中实例化对象和调用方法入门 1.jar包和xml的准备 已上传至百度云盘,链接: https://pan.baidu.com/s/1CY0xQq3GLK06iX7tVLnp3Q 提取码: ...
- php帝国系统调出图片内空,帝国CMS图集字段的大图,小图,说明的调用方法
本文实例讲述了帝国CMS图集字段的大图,小图,说明的调用方法.分享给大家供大家参考.具体方法如下: 复制代码代码如下: $arr = array(); $arr = $navinfor['morepi ...
- dede列表分页php,dede列表页分页英文调用方法
使用于英文模板的dede分页代码,可以让分页默认中文变成英文的方式. 修改arc.listview.class.php 在include/arc.listview.class.php 调用方法 {de ...
- Xcode中Objc动态调用方法同时避免警告的几个办法
我们在Xcode中使用objc写代码的时候往往会碰到动态调用方法的时候. 如果是静态调用这很常见,不会有任何问题: [self performSelector:@selector(method)]; ...
- @Transactional-同一个类中方法自调,调用方法事物失效
问题分析 一个类中的方法调用另一个事物传播性为创建事物的方法,调用的方法事物失效? SpringAOP 代理的Service对象调用了其方法,这个方法再去调用这个Service中的其他方法是没有使用A ...
最新文章
- 牛客练习赛84:牛客推荐系统开发之标签重复度(点分治+动态开点权值线段树)
- 通过System.Management获取操作系统信息
- 案例开发分析 || ​​​​​​​Scheduler组件
- mysql myisampack_每天进步一点达——MySQL——myisampack
- 爆赞!Jetpack-MVVM-高频提问和解答,满满干货指导
- shiro扩展获得用户登录类型并提供cookie的方式记住用户密码
- 计算机的配置以及简单的操作
- iOS开发----UI部分----iPhone各类屏幕的分辨率
- java指定jre_java 运行应用程序,指定jre版本
- Java多线程机制(一)
- 致初入职场的兄弟姐妹
- 多变量微积分(4)——多重积分之三重积分
- android 蓝牙读取数据格式,解析Android蓝牙数据包
- 神经网络算法是什么意思,人工神经网络英文缩写
- 安装fitz报错_Kylo单机安装详解
- P2P风控措施和风控流程
- u盘虚拟启动cd linux,[CDLinux]制作U盘CDLinux系统启动盘
- Apache反向代理设置
- redis学习之redis的发布和订阅
- 内核线程ksoftirqd
热门文章
- Python redis 批量模糊删除keys
- 250g硬盘linux如何分区合适,500G的硬盘,怎么分区比较合理?
- 达梦数据库迁移oracle数据乱码,oracle迁移到达梦数据库之存储过程中char类型的不同处理...
- 匹配左括号或者右括号js_九章算法 | 蚂蚁金服面试题:有效的括号字符串
- undo the local changes
- xcode 自己常用到的快捷键
- Matlab绘图设置总结
- 利用深度迁移学习进行基于图像的植物病害识别
- jdk 安装cmd运行java_windows下安装jdk,cmd下编译运行java程序一点心得
- php 压缩html css,PHP实现动态压缩js与css文件的方法