MySQL通過實例化對象參數(shù)查詢實例講解
更新時間:2018年10月16日 14:38:07 投稿:laozhang
在本篇文章里我們給大家分享了關于MySQL如何通過實例化對象參數(shù)查詢數(shù)據(jù)的相關知識點內(nèi)容,有需要的朋友們可以測試參考下。
本篇文章給大家?guī)淼膬?nèi)容是關于MySQL如何通過實例化對象參數(shù)查詢數(shù)據(jù) ?(源代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
public static string QueryByEntity<T>(T t) where T : new() { string resultstr = string.Empty; MySqlDataReader reader = null; try { Type type = typeof(T); PropertyInfo[] properties = type.GetProperties(); string select = string.Format("Select * from {0} {1}", type.Name, "{0}"); string where = string.Empty; foreach (PropertyInfo property in properties) { var value = t.GetPropertyValue<T>(property); if (value != null && !value.Equals(property.GetDefaultValue())) { if (string.IsNullOrEmpty(where)) { where = string.Format(" where {0}='{1}' ", property.Name, value); } else { where = string.Format(" {0} and {1} = '{2}' ", where, property.Name, value); } } } select = string.Format(select, where); MySqlConnection connection = OpenConnection(); if (connection == null) return resultstr; MySqlCommand _sqlCom = new MySqlCommand(select, connection); reader = _sqlCom.ExecuteReader(); List<T> tList = new List<T>(); while (reader.Read()) { T t1 = new T(); foreach (PropertyInfo property in properties) { if (!string.IsNullOrEmpty(reader[property.Name].ToString())) { property.SetMethod.Invoke(t1, new object[] { reader[property.Name] }); } } tList.Add(t1); } resultstr = JsonConvert.SerializeObject(tList); } catch (Exception ex) { Logging.Error(string.Format("查詢數(shù)據(jù)庫失敗,{0}", ex.Message)); } finally { if (reader != null) { reader.Close(); reader.Dispose(); } } return resultstr; }internal static class ObjectExtend { public static object GetPropertyValue<T>(this object obj, PropertyInfo property) { Type type = typeof(T); PropertyInfo propertyInfo = type.GetProperty(property.Name); if (propertyInfo != null) { return propertyInfo.GetMethod.Invoke(obj, null); } return null; } public static object GetDefaultValue(this PropertyInfo property) { return property.PropertyType.IsValueType ? Activator.CreateInstance(property.PropertyType) : null; } }
通過實例化參數(shù),對屬性賦值,將對象作為參數(shù)傳入,反射獲取對象名稱,列名,列值。要求對象名與表名一致,屬性與列名一致,感謝大家對腳本之家的支持。
您可能感興趣的文章:
- 淺談pymysql查詢語句中帶有in時傳遞參數(shù)的問題
- 使用Limit參數(shù)優(yōu)化MySQL查詢的方法
- MySQL8.0內(nèi)存相關參數(shù)總結
- python mysql中in參數(shù)化說明
- Python MySQLdb 執(zhí)行sql語句時的參數(shù)傳遞方式
- Python MySQL 日期時間格式化作為參數(shù)的操作
- MYSQL配置參數(shù)優(yōu)化詳解
- MySQL性能全面優(yōu)化方法參考,從CPU,文件系統(tǒng)選擇到mysql.cnf參數(shù)優(yōu)化
- MySQL 5.6下table_open_cache參數(shù)優(yōu)化合理配置詳解
- MySQL 參數(shù)相關概念及查詢更改方法
相關文章
CentOS Linux更改MySQL數(shù)據(jù)庫目錄位置具體操作
由于MySQL的數(shù)據(jù)庫太大,默認安裝的/var盤已經(jīng)再也無法容納新增加的數(shù)據(jù),沒有辦法,只能想辦法轉(zhuǎn)移數(shù)據(jù)的目錄,本文整理了一些MySQL從/var/lib/mysql目錄下面轉(zhuǎn)移到/home/mysql_data/mysql目錄的具體操作,感興趣的你可不要走開啊2013-01-01CentOS6.5下RPM方式安裝mysql5.6.33的詳細教程
本文給大家詳細介紹CentOS6.5下RPM方式安裝mysql5.6.33的教程,本文分步驟給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友一起看看吧2016-10-10MySQL表操作插入數(shù)據(jù)insert語句學習(小白入門篇)
這篇文章主要為大家介紹了MySQL表操作插入數(shù)據(jù)insert語句學習小白入門篇,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05iOS開發(fā)runloop運行循環(huán)機制學習
這篇文章主要為大家介紹了iOS開發(fā)runloop運行循環(huán)的機制學習,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-07-07