MySQL通过实例化对象参数查询实例讲解
短信预约 -IT技能 免费直播动态提醒
本篇文章给大家带来的内容是关于MySQL如何通过实例化对象参数查询数据 ?(源代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
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("查询数据库失败,{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;
}
}
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
MySQL通过实例化对象参数查询实例讲解
下载Word文档到电脑,方便收藏和打印~
下载Word文档
猜你喜欢
2024-04-02
2024-04-02
通过Class类获取对象(实例讲解)
通过Class对象获取对象的方式是通过class.newInstance()方式获取,通过调用默认构造参数实例化一个对象。/** * Created by hunt on 2017/6/27. * 测试的实体类 * @Data 编译后会自动
2023-05-31
实例讲解MySQL 慢查询
简介
开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。
一、配置慢查询
1、参数说明slow_query_log : 慢查询开启状态(默认关闭)slow_q
2022-05-25
2024-04-02
2024-04-02
2024-04-02
MySQL实例讲解子查询的使用
目录子查询-嵌套查询原始查询方法自连接子查询子查询分类单行子查询子查询的编写思路HAVING中的子查询CASE中的子查询子查询中的空值问题多行子查询多行比较操作符相关子查询EXISTS与NOT EXISTS 关键字子查询-嵌套查询子查询是
2023-03-02
2024-04-02
MySQL参数调优实例探究讲解
目录一、mysql 参数调优1、一些生产常用查询命令2、分析慢查询3、分析连接数4、缓冲区调优 Key_buffer_size5、临时表调优 Created_tmp_tables6、分析 Open Table 使用情况7、查看 MySQL进
2022-11-28
通过实例解析MySql CURRENT_TIMESTAMP函数
在创建时间字段的时候
DEFAULT CURRENT_TIMESTAMP表示当插入数据的时候,该字段默认值为当前时间
ON UPDATE CURRENT_TIMESTAMP表示每次更新这条数据的时候,该字段都会更新成当前时间
这两个操作是m
2022-05-17
MySQL存储过程的查看与删除实例讲解
目录一、查看存储过程1.SHOW STATUS语句查看存储过程2.使用SHOW CREATE语句查看存储过程的定义3、从information_schema.Routine表中查看存储过程的信息二、存储过程的删除附:存储过程修改总结一、查看
2023-03-09
2024-04-02
MySQL通过DQL实现对数据库数据的基本查询
本篇文章详细讲解了MySQL使用DQL查询数据库数据的基本方法。它涵盖了SELECT语句、WHERE子句、ORDERBY子句、LIMIT子句、DISTINCT关键字、HAVING子句、子查询和连接等概念。文中提供了示例代码,帮助读者理解这些概念并编写有效的查询语句。本文旨在帮助读者熟练使用DQL来检索、过滤和排序数据库中的数据。
2024-04-02
MySQL通过DQL实现对数据库数据的条件查询
通过使用DQL,MySQL可进行条件查询,筛选满足特定条件的数据。条件查询使用WHERE子句,包含使用比较运算符、逻辑运算符和函数的表达式。通过优化措施,如使用索引和限制返回列数,可以提高条件查询性能。其他技巧包括使用LIMIT和ORDERBY来控制返回的行数和顺序,以及使用GROUPBY和HAVING对结果进行分组和筛选。
2024-04-02
MySQL范围查询优化的场景实例详解
目录思考题范围查询-基础场景一: a = 1 and b = 2 and c = 3场景二: a > 1 and b = 2场景三:a > 1 and b = 2 and c > 3编程客栈场景四: a > 1 ORDER BY b场景五:
2022-06-13
2024-04-02
2024-04-02
java对象实例化过程中的多态特性怎么理解
本篇内容主要讲解“java对象实例化过程中的多态特性怎么理解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java对象实例化过程中的多态特性怎么理解”吧!java 对象实例化过程中的多态特性执行
2023-06-21
2024-04-02