SmartSql 开源项目教程
SmartSql项目地址:https://gitcode.com/gh_mirrors/smart/SmartSql
1. 项目介绍
SmartSql 是一个轻量级的.NET全栈开发数据库访问框架,它基于.NET Core和.NET Framework,旨在简化数据库操作。通过XML、Json或Yaml配置文件,可以灵活管理SQL语句,支持多种数据库(如MySql、Oracle、Sqlite等),并且具有动态SQL、事务处理、缓存等功能。SmartSql设计目标是让开发者专注于业务逻辑,而不需要过多关注数据访问层的实现细节。
2. 项目快速启动
安装依赖
首先,你需要在你的项目中安装SmartSql。如果你正在使用NuGet包管理器,可以通过以下命令安装:
Install-Package SmartSql
或者,如果你使用的是dotnet CLI
:
dotnet add package SmartSql
配置SmartSql
创建一个名为SmartSqlConfig.json
的配置文件,例如:
{
"Host": "localhost",
"Database": "testdb",
"User": "root",
"Password": "password",
"DefaultCommandTimeout": 30,
"Settings": {
"ScanPath": "./SqlMapPath"
}
}
这里假设你的SQL映射文件在SqlMapPath
目录下。
初始化SmartSql
在你的应用程序入口点,初始化SmartSql实例:
using SmartSql;
var config = new SmartSqlConfigBuilder()
.BuildConfiguration("SmartSqlConfig.json");
using (var sql = new SmartSqlDbScope(config))
{
// 接下来的代码将使用初始化好的SmartSql上下文
}
执行SQL
现在你可以执行简单的查询了:
var sqlMapper = sqlBuilderFactory.CreateSqlMapper();
var result = sqlMapper.ExecuteScalar("SelectTestId", cmd => cmd.Param.AddWithValue("@id", 1));
Console.WriteLine($"Result: {result}");
3. 应用案例和最佳实践
动态SQL
利用SmartSql,你可以轻松实现动态SQL,比如根据条件决定是否包含某个子句:
<!-- SqlMap.Sqls.Select -->
<select id="Select" parameterType="TestModel">
SELECT * FROM Test WHERE 1=1
<if test="@Name!=null and @Name.Length>0"> AND Name like concat('%',@Name,'%')</if>
</select>
使用事务
SmartSql提供了事务支持:
using (var dbScope = sqlBuilderFactory.CreateDbScope())
{
try
{
// SQL操作...
dbScope.Commit();
}
catch (Exception ex)
{
dbScope.Rollback();
throw;
}
}
4. 典型生态项目
SmartSql与其他几个开源项目相互配合,构建更完整的开发环境:
- MediatR - 用于处理命令和查询模式,使业务逻辑更加清晰。
- AutoMapper - 提供对象到对象的映射,方便数据模型之间的转换。
- Serilog - 强大的日志库,可方便地收集和记录SmartSql操作的日志。
以上就是关于SmartSql的基本介绍和快速入门指南。更多详细信息,建议查阅项目官方文档和示例代码。祝你开发愉快!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考