ISmartSqlMapper 常用(部分)接口概述
函数
说明
Execute
IDbCommand.ExecuteNonQuery,执行返回受影响行数
ExecuteScalar
IDbCommand.ExecuteScalar,执行并返回查询返回的ReultSet中第一行的第一列
Query
执行返回实体列表
QuerySingle
执行返回单个实体
GetDataTable
执行返回DataTable
GetDataSet
执行返回DataSet
BeginTransaction
开启事务
CommitTransaction
提交事务
RollbackTransaction
回滚事务
<Statement Id =" Insert" >
INSERT INTO T_User
(UserName
,Password
,Status
,LastLoginTime
,CreationTime)
VALUES
(?UserName
,?Password
,?Status
,?LastLoginTime
,?CreationTime)
;Select Last_Insert_Id();
</Statement >
ISmartSqlMapper SqlMapper = MapperContainer. Instance. GetSqlMapper ( ) ;
long userId = _smartSqlMapper. ExecuteScalar < long > ( new RequestContext
{
Scope = " User" ,
SqlId = " Insert" ,
Request = new User
{
UserName = request. UserName,
Pwd = request. Pwd,
Status = Entitiy. UserStatus. Ok,
CreationTime = DateTime. Now,
}
} ) ;
SqlMapper. Execute ( new RequestContext
{
Scope = " User" ,
SqlId = " Insert" ,
Request = new User
{
UserName = request. UserName,
Pwd = request. Pwd,
Status = Entitiy. UserStatus. Ok,
CreationTime = DateTime. Now,
}
} ) ;
<Statement Id =" Delete" >
Delete FROM T_User
Where Id=?Id
</Statement >
SqlMapper. Execute ( new RequestContext
{
Scope = " User" ,
SqlId = " Delete" ,
Request = new { Id = 3 }
} ) ;
<Statement Id =" Update" >
UPDATE T_User
<Set >
<IsProperty Prepend =" ," Property =" UserName" >
UserName = ?UserName
</IsProperty >
<IsProperty Prepend =" ," Property =" Password" >
Password = ?Password
</IsProperty >
<IsProperty Prepend =" ," Property =" Status" >
Status = ?Status
</IsProperty >
<IsProperty Prepend =" ," Property =" LastLoginTime" >
LastLoginTime = ?LastLoginTime
</IsProperty >
<IsProperty Prepend =" ," Property =" CreationTime" >
CreationTime = ?CreationTime
</IsProperty >
</Set >
Where Id=?Id
</Statement >
SqlMapper. Execute ( new RequestContext
{
Scope = " User" ,
SqlId = " Update" ,
Request = new User
{
Id = 1 ,
UserName = request. UserName,
Pwd = request. Pwd,
Status = Entitiy. UserStatus. Ok,
CreationTime = DateTime. Now,
}
} ) ;
SqlMapper. Execute ( new RequestContext
{
Scope = " User" ,
SqlId = " Update" ,
Request = new { Id= 1 , Pwd = " SmartSql" }
} ) ;
<Statement Id =" Query" >
SELECT T.* From T_User T
<Where >
<IsNotEmpty Prepend =" And" Property =" EqUserName" >
T.UserName=$EqUserName
</IsNotEmpty >
<IsNotEmpty Prepend =" And" Property =" UserName" >
T.UserName Like Concat('%',$UserName,'%')
</IsNotEmpty >
</Where >
<Switch Prepend =" Order By" Property =" OrderBy" >
<Default >
T.Id Desc
</Default >
</Switch >
<IsNotEmpty Prepend =" Limit" Property =" Taken" >?Taken</IsNotEmpty >
</Statement >
var list = SqlMapper. Query < User > ( new RequestContext
{
Scope = " User" ,
SqlId = " Query" ,
Request = new
{
Taken = 10
}
} ) ;
<Statement Id =" GetEntity" >
Select T.* From T_User T
<Where >
<IsNotEmpty Prepend =" And" Property =" Id" >
T.Id=?Id
</IsNotEmpty >
</Where >
Limit 1
</Statement >
var user = SqlMapper. QuerySingle < User > ( new RequestContext
{
Scope = " User" ,
SqlId = " GetEntity" ,
Request = new { Id = 1 }
} ) ;
try
{
SqlMapper. BeginTransaction ( ) ;
//BizCode();
SqlMapper. CommitTransaction ( ) ;
}
catch ( Exception ex )
{
SqlMapper. RollbackTransaction ( ) ;
throw ex;
}
DbParameterCollection dbParameterCollection = new DbParameterCollection( ) ;
dbParameterCollection. Add ( new DbParameter
{
Name = " Total" ,
DbType = System. Data. DbType. Int32,
Direction = System. Data. ParameterDirection. Output
} ) ;
RequestContext context = new RequestContext
{
CommandType = System. Data. CommandType. StoredProcedure,
RealSql = " SP_QueryByPage" ,
Request = dbParameterCollection
} ;
var list = SqlMapper. Query < User > ( context) ;
var total = dbParameterCollection. GetValue < int > ( " Total" ) ;