Dapper是什麼? Dapper是一款.Net平臺簡單(Simple)的對象映射庫,並且Dapper擁有着“微型ORM之王”的稱號。 就速度而言與手寫ADO.NET SqlDateReader相同。 ORM是Object Relational Mapper的縮寫,代表着數據庫與編程語言之間的映射。 簡單來說就是使用Entity Framework、NHibernate 來處理大數據訪問及關係映射,未免有點殺雞用牛刀,那麼Dapper會是不錯的選擇。 1、Dapper基本用法 通過NuGet安裝:Dapper包,如果要進行mysql連接還需要安裝Mysql.Data包 2、數據庫連接配置 <connectionStrings> <add name="MysqlServer" connectionString="Database=用數據庫名稱;Data Source=IP;Port=端口; User Id=用戶名;Password=密碼;Charset=utf8mb4;TreatTinyAsBoolean=false;" /> //Mysql <add name="LinqConnection" connectionString="Data Source=IP;Initial Catalog=數據庫名稱; User ID=用戶名;Password=密碼" providerName="System.Data.SqlClient"/> //sql </connectionStrings> 3、dapper 數據庫連接方法 Mysql連接方法: public class DapperService { public static MySqlConnection MySqlConnection() { string mysqlConnectionStr = ConfigurationManager.ConnectionStrings["MysqlServer"].ToString(); var connection = new MySqlConnection(mysqlConnectionStr); connection.Open(); return connection; } } mssql連接方法: public class DapperService { public static SqlConnection MySqlConnection() { string mysqlConnectionStr =ConfigurationManager.ConnectionStrings["LinqConnection"].ToString(); var connection = new SqlConnection(mysqlConnectionStr); connection.Open(); return connection; } } 4、新增方法(單體、批量) 單體: public ActionResult GetDapper(CarModel carModel) { try { using (IDbConnection conn = DapperService.MySqlConnection()) { int result = conn.Execute("insert into UserInfo(UserTel,UserName,UserPwd) values (@UserTel,@UserName,@UserPwd)", carModel); } return Json("success"); } catch(Exception e) { return Json("failed"); } } 批量: public ActionResult GetDapper(List<CarModel> carModel) { try { using (IDbConnection conn = DapperService.MySqlConnection()) { int result = conn.Execute("insert into UserInfo(UserTel,UserName,UserPwd) values(@UserTel,@UserName,@UserPwd)", carModel); } return Json("success"); } catch(Exception e) { return Json("failed"); } } 5、刪除方法(單體、批量) 單體: public static int Delete(CarModel carModel) { using (IDbConnection conn = DapperService.MySqlConnection()) { return conn.Execute("delete from UserInfo where id=@ID", carModel); } } 批量: public static int Delete(List<CarModel> carModel) { using (IDbConnection conn = DapperService.MySqlConnection()) { return conn.Execute("delete from UserInfo where id=@ID", carModel); } } 6、更新方法(單體、批量) 單體: public static int Update(CarModel carModel) { using (IDbConnection conn = DapperService.MySqlConnection()) { return conn.Execute("update UserInfo set name=@name where id=@ID", carModel); } } 批量: public static int Update(List<CarModel> carModel) { using (IDbConnection conn = DapperService.MySqlConnection()) { return conn.Execute("update UserInfo set name=@name where id=@ID", carModel); } } 7、查詢 無參查詢 public static List<CarModel> Query() { using (IDbConnection conn = DapperService.MySqlConnection()) { return conn.Query<CarModel>("select * from UserInfo ").ToList(); } } 有參查詢 public static Person Query(CarModel carModel) { using (IDbConnection conn = DapperService.MySqlConnection()) { return conn.Query<CarModel>("select * from UserInfo where id=@ID",carModel).SingleOrDefault(); } } 8、Dapper的複雜操作 In操作 public static List<CarModel> QueryIn() { using (IDbConnection conn = DapperService.MySqlConnection()) { var sql = "select * from UserInfo where id in @ids"; return conn.Query<CarModel>(sql, new { ids = new int[2] { 1, 2 }, }).ToList(); } } public static List<CarModel> QueryIn(int[] ids) { using (IDbConnection conn = DapperService.MySqlConnection()) { var sql = "select * from UserInfo where id in @ids"; return conn.Query<CarModel>(sql, new { ids }).ToList(); } } 9、多語句操作 public ActionResult QueryMultiple() { try { using (IDbConnection conn = DapperService.MySqlConnection()) { var sql= "select * from Person; select * from UserInfo"; var multiReader = conn.QueryMultiple(sql); var personList = multiReader.Read<Person>(); var bookList = multiReader.Read<CarModel>(); multiReader.Dispose(); } return Json("success"); } catch(Exception e) { return Json("failed"); } }
Dapper是什麼?
Dapper是一款.Net平臺簡單(Simple)的對象映射庫,並且Dapper擁有着“微型ORM之王”的稱號。
就速度而言與手寫ADO.NET SqlDateReader相同。
ORM是Object Relational Mapper的縮寫,代表着數據庫與編程語言之間的映射。
簡單來說就是使用Entity Framework、NHibernate 來處理大數據訪問及關係映射,未免有點殺雞用牛刀,那麼Dapper會是不錯的選擇。
1、Dapper基本用法
通過NuGet安裝:Dapper包,如果要進行mysql連接還需要安裝Mysql.Data包
2、數據庫連接配置
-
<connectionStrings>
-
<add name="MysqlServer" connectionString="Database=用數據庫名稱;Data Source=IP;Port=端口; User Id=用戶名;Password=密碼;Charset=utf8mb4;TreatTinyAsBoolean=false;" /> //Mysql
-
-
<add name="LinqConnection" connectionString="Data Source=IP;Initial Catalog=數據庫名稱; User ID=用戶名;Password=密碼" providerName="System.Data.SqlClient"/> //sql
-
</connectionStrings>
3、dapper 數據庫連接方法
Mysql連接方法:
-
public class DapperService
-
{
-
-
public static MySqlConnection MySqlConnection()
-
{
-
string mysqlConnectionStr = ConfigurationManager.ConnectionStrings["MysqlServer"].ToString();
-
var connection = new MySqlConnection(mysqlConnectionStr); connection.Open();
-
return connection;
-
}
-
}
mssql連接方法:
-
public class DapperService {
-
-
public static SqlConnection MySqlConnection()
-
{
-
-
string mysqlConnectionStr =ConfigurationManager.ConnectionStrings["LinqConnection"].ToString();
-
var connection = new SqlConnection(mysqlConnectionStr);
-
connection.Open();
-
return connection;
-
}
-
}
4、新增方法(單體、批量)
單體:
-
public ActionResult GetDapper(CarModel carModel)
-
{
-
try
-
{
-
using (IDbConnection conn = DapperService.MySqlConnection())
-
{
-
int result = conn.Execute("insert into UserInfo(UserTel,UserName,UserPwd) values (@UserTel,@UserName,@UserPwd)", carModel);
-
}
-
return Json("success");
-
}
-
catch(Exception e)
-
{
-
return Json("failed");
-
}
-
}
批量:
-
public ActionResult GetDapper(List<CarModel> carModel)
-
{
-
try
-
{
-
using (IDbConnection conn = DapperService.MySqlConnection())
-
{
-
int result = conn.Execute("insert into UserInfo(UserTel,UserName,UserPwd) values(@UserTel,@UserName,@UserPwd)", carModel);
-
}
-
return Json("success");
-
}
-
catch(Exception e)
-
{
-
return Json("failed");
-
}
-
}
5、刪除方法(單體、批量)
單體:
-
public static int Delete(CarModel carModel)
-
{
-
using (IDbConnection conn = DapperService.MySqlConnection())
-
{
-
return conn.Execute("delete from UserInfo where id=@ID", carModel);
-
}
-
}
批量:
-
public static int Delete(List<CarModel> carModel)
-
{
-
using (IDbConnection conn = DapperService.MySqlConnection())
-
{
-
return conn.Execute("delete from UserInfo where id=@ID", carModel);
-
}
-
}
6、更新方法(單體、批量)
單體:
-
public static int Update(CarModel carModel)
-
{
-
using (IDbConnection conn = DapperService.MySqlConnection())
-
{
-
return conn.Execute("update UserInfo set name=@name where id=@ID", carModel);
-
}
-
}
批量:
-
public static int Update(List<CarModel> carModel)
-
{
-
using (IDbConnection conn = DapperService.MySqlConnection())
-
{
-
return conn.Execute("update UserInfo set name=@name where id=@ID", carModel);
-
}
-
}
7、查詢
無參查詢
-
public static List<CarModel> Query()
-
{
-
using (IDbConnection conn = DapperService.MySqlConnection())
-
{
-
return conn.Query<CarModel>("select * from UserInfo ").ToList();
-
}
-
}
有參查詢
-
public static Person Query(CarModel carModel)
-
{
-
using (IDbConnection conn = DapperService.MySqlConnection())
-
{
-
return conn.Query<CarModel>("select * from UserInfo where
-
id=@ID",carModel).SingleOrDefault();
-
}
-
}
8、Dapper的複雜操作
In操作
-
public static List<CarModel> QueryIn()
-
{
-
using (IDbConnection conn = DapperService.MySqlConnection())
-
{
-
var sql = "select * from UserInfo where id in @ids";
-
return conn.Query<CarModel>(sql, new { ids = new int[2] { 1, 2 }, }).ToList();
-
}
-
}
-
-
public static List<CarModel> QueryIn(int[] ids)
-
{
-
using (IDbConnection conn = DapperService.MySqlConnection())
-
{
-
var sql = "select * from UserInfo where id in @ids";
-
return conn.Query<CarModel>(sql, new { ids }).ToList();
-
}
-
}
9、多語句操作
-
public ActionResult QueryMultiple()
-
{
-
try
-
{
-
using (IDbConnection conn = DapperService.MySqlConnection())
-
{
-
var sql= "select * from Person; select * from UserInfo";
-
var multiReader = conn.QueryMultiple(sql);
-
var personList = multiReader.Read<Person>();
-
var bookList = multiReader.Read<CarModel>(); multiReader.Dispose();
-
}
-
return Json("success");
-
}
-
catch(Exception e)
-
{
-
return Json("failed");
-
}
-
}