zoukankan      html  css  js  c++  java
  • C#200个基础工具类,史上最全快收藏下载

    场景

    包含工具类部分如下:

    CSV文件转换;DataTable转实体;Excel操作类;FTP操作类;Html操作类;IP辅助类;JSON操作;JS操作;URL的操作类;XML操作类;处理多媒体的公共类;弹出消息类;二维码操作类;汉字转拼音;加密解密;科学计数,数学;类型转换;配置文件操作类;上传下载;时间操作类;视频帮助类;数据展示控件绑定数据类;条形码帮助类;图片操作类;文件操作类;序列化;压缩解压缩;邮件;字符串。

     

    实现

    部分代码展示

    Excel导出类

    using System;
    using System.Web;
    using System.Web.UI;
    using System.IO;
    using System.Web.UI.WebControls;
    
    namespace Common.Utility
    {
        public class ExportExcel
        {
    
            protected void ExportData(string strContent, string FileName)
            {
    
                FileName = FileName + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString();
    
                HttpContext.Current.Response.Clear();
                HttpContext.Current.Response.Charset = "gb2312";
                HttpContext.Current.Response.ContentType = "application/ms-excel";
                HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
                //this.Page.EnableViewState = false; 
                // 添加头信息,为"文件下载/另存为"对话框指定默认文件名 
                HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + FileName + ".xls");
                // 把文件流发送到客户端 
                HttpContext.Current.Response.Write("<html><head><meta http-equiv=Content-Type content="text/html; charset=utf-8">");
                HttpContext.Current.Response.Write(strContent);
                HttpContext.Current.Response.Write("</body></html>");
                // 停止页面的执行 
                //Response.End();
            }
    
            /// <summary>
            /// 导出Excel
            /// </summary>
            /// <param name="obj"></param>
            public void ExportData(GridView obj)
            {
                try
                {
                    string style = "";
                    if (obj.Rows.Count > 0)
                    {
                        style = @"<style> .text { mso-number-format:@; } </style> ";
                    }
                    else
                    {
                        style = "no data.";
                    }
    
                    HttpContext.Current.Response.ClearContent();
                    DateTime dt = DateTime.Now;
                    string filename = dt.Year.ToString() + dt.Month.ToString() + dt.Day.ToString() + dt.Hour.ToString() + dt.Minute.ToString() + dt.Second.ToString();
                    HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=ExportData" + filename + ".xls");
                    HttpContext.Current.Response.ContentType = "application/ms-excel";
                    HttpContext.Current.Response.Charset = "GB2312";
                    HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
                    StringWriter sw = new StringWriter();
                    HtmlTextWriter htw = new HtmlTextWriter(sw);
                    obj.RenderControl(htw);
                    HttpContext.Current.Response.Write(style);
                    HttpContext.Current.Response.Write(sw.ToString());
                    HttpContext.Current.Response.End();
                }
                catch
                {
                }
            }
    
        }
    }
    
     
    
    /*实际应用的例子
     if (list.Count > 0)
                    {
     *                  //1.实例化
                        xftwl.Infrastructure.ExportExcel ex = new Infrastructure.ExportExcel();
    
     *                  //2.指定数据源
                        GridView gv = new GridView();
                        gv.DataSource = list;
                        gv.DataBind();
    
                        //3.设置导出的excel某列格式
                        if(gv.Rows.Count>0)                     
                        {
                            for (int j = 0; j < gv.Rows.Count; j++)
                            {
                                //把每行第二列格式设为文本格式
                                gv.Rows[j].Cells[1].Attributes.Add("style", "mso-number-format:'\@'");
                                //每行第三列格式:两位小数
                                gv.Rows[j].Cells[2].Attributes.Add("style", "mso-number-format:'0\.00'");
                            }
                        }                  
    
                        ex.ExportData(gv);
                    }
     
     
     */

    Json操作

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data;
    using System.Reflection;
    using System.Collections;
    using System.Data.Common;
    using Newtonsoft.Json;
    using System.IO;
    
    namespace Common.Utility
    {
        //JSON转换类
        public class ConvertJson
        {
            #region 私有方法
            /// <summary>
            /// 过滤特殊字符
            /// </summary>
            private static string String2Json(String s)
            {
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < s.Length; i++)
                {
                    char c = s.ToCharArray()[i];
                    switch (c)
                    {
                        case '"':
                            sb.Append("\""); break;
                        case '\':
                            sb.Append("\\"); break;
                        case '/':
                            sb.Append("\/"); break;
                        case '':
                            sb.Append("\b"); break;
                        case 'f':
                            sb.Append("\f"); break;
                        case '
    ':
                            sb.Append("\n"); break;
                        case '
    ':
                            sb.Append("\r"); break;
                        case '	':
                            sb.Append("\t"); break;
                        default:
                            sb.Append(c); break;
                    }
                }
                return sb.ToString();
            }
    
            /// <summary>
            /// 格式化字符型、日期型、布尔型
            /// </summary>
            private static string StringFormat(string str, Type type)
            {
                if (type == typeof(string))
                {
                    str = String2Json(str);
                    str = """ + str + """;
                }
                else if (type == typeof(DateTime))
                {
                    str = """ + str + """;
                }
                else if (type == typeof(bool))
                {
                    str = str.ToLower();
                }
                else if (type != typeof(string) && string.IsNullOrEmpty(str))
                {
                    str = """ + str + """;
                }
                return str;
            }
            #endregion
    
            #region List转换成Json
            /// <summary>
            /// List转换成Json
            /// </summary>
            public static string ListToJson<T>(IList<T> list)
            {
                object obj = list[0];
                return ListToJson<T>(list, obj.GetType().Name);
            }
    
            /// <summary>
            /// List转换成Json 
            /// </summary>
            public static string ListToJson<T>(IList<T> list, string jsonName)
            {
                StringBuilder Json = new StringBuilder();
                if (string.IsNullOrEmpty(jsonName)) jsonName = list[0].GetType().Name;
                Json.Append("{"" + jsonName + "":[");
                if (list.Count > 0)
                {
                    for (int i = 0; i < list.Count; i++)
                    {
                        T obj = Activator.CreateInstance<T>();
                        PropertyInfo[] pi = obj.GetType().GetProperties();
                        Json.Append("{");
                        for (int j = 0; j < pi.Length; j++)
                        {
                            Type type = pi[j].GetValue(list[i], null).GetType();
                            Json.Append(""" + pi[j].Name.ToString() + "":" + StringFormat(pi[j].GetValue(list[i], null).ToString(), type));
    
                            if (j < pi.Length - 1)
                            {
                                Json.Append(",");
                            }
                        }
                        Json.Append("}");
                        if (i < list.Count - 1)
                        {
                            Json.Append(",");
                        }
                    }
                }
                Json.Append("]}");
                return Json.ToString();
            }
            #endregion
    
            #region 对象转换为Json
            /// <summary> 
            /// 对象转换为Json 
            /// </summary> 
            /// <param name="jsonObject">对象</param> 
            /// <returns>Json字符串</returns> 
            public static string ToJson(object jsonObject)
            {
                string jsonString = "{";
                PropertyInfo[] propertyInfo = jsonObject.GetType().GetProperties();
                for (int i = 0; i < propertyInfo.Length; i++)
                {
                    object objectValue = propertyInfo[i].GetGetMethod().Invoke(jsonObject, null);
                    string value = string.Empty;
                    if (objectValue is DateTime || objectValue is Guid || objectValue is TimeSpan)
                    {
                        value = "'" + objectValue.ToString() + "'";
                    }
                    else if (objectValue is string)
                    {
                        value = "'" + ToJson(objectValue.ToString()) + "'";
                    }
                    else if (objectValue is IEnumerable)
                    {
                        value = ToJson((IEnumerable)objectValue);
                    }
                    else
                    {
                        value = ToJson(objectValue.ToString());
                    }
                    jsonString += """ + ToJson(propertyInfo[i].Name) + "":" + value + ",";
                }
                jsonString.Remove(jsonString.Length - 1, jsonString.Length);
                return jsonString + "}";
            }
            #endregion
    
            #region 对象集合转换Json
            /// <summary> 
            /// 对象集合转换Json 
            /// </summary> 
            /// <param name="array">集合对象</param> 
            /// <returns>Json字符串</returns> 
            public static string ToJson(IEnumerable array)
            {
                string jsonString = "[";
                foreach (object item in array)
                {
                    jsonString += ToJson(item) + ",";
                }
                jsonString.Remove(jsonString.Length - 1, jsonString.Length);
                return jsonString + "]";
            }
            #endregion
    
            #region 普通集合转换Json
            /// <summary> 
            /// 普通集合转换Json 
            /// </summary> 
            /// <param name="array">集合对象</param> 
            /// <returns>Json字符串</returns> 
            public static string ToArrayString(IEnumerable array)
            {
                string jsonString = "[";
                foreach (object item in array)
                {
                    jsonString = ToJson(item.ToString()) + ",";
                }
                jsonString.Remove(jsonString.Length - 1, jsonString.Length);
                return jsonString + "]";
            }
            #endregion
    
            #region  DataSet转换为Json
            /// <summary> 
            /// DataSet转换为Json 
            /// </summary> 
            /// <param name="dataSet">DataSet对象</param> 
            /// <returns>Json字符串</returns> 
            public static string ToJson(DataSet dataSet)
            {
                string jsonString = "{";
                foreach (DataTable table in dataSet.Tables)
                {
                    jsonString += """ + table.TableName + "":" + ToJson(table) + ",";
                }
                jsonString = jsonString.TrimEnd(',');
                return jsonString + "}";
            }
            #endregion
    
            #region Datatable转换为Json
            /// <summary> 
            /// Datatable转换为Json 
            /// </summary> 
            /// <param name="table">Datatable对象</param> 
            /// <returns>Json字符串</returns> 
            public static string ToJson(DataTable dt)
            {
                StringBuilder jsonString = new StringBuilder();
                jsonString.Append("[");
                DataRowCollection drc = dt.Rows;
                for (int i = 0; i < drc.Count; i++)
                {
                    jsonString.Append("{");
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        string strKey = dt.Columns[j].ColumnName;
                        string strValue = drc[i][j].ToString();
                        Type type = dt.Columns[j].DataType;
                        jsonString.Append(""" + strKey + "":");
                        strValue = StringFormat(strValue, type);
                        if (j < dt.Columns.Count - 1)
                        {
                            jsonString.Append(strValue + ",");
                        }
                        else
                        {
                            jsonString.Append(strValue);
                        }
                    }
                    jsonString.Append("},");
                }
                jsonString.Remove(jsonString.Length - 1, 1);
                jsonString.Append("]");
                return jsonString.ToString();
            }
    
            /// <summary>
            /// DataTable转换为Json 
            /// </summary>
            public static string ToJson(DataTable dt, string jsonName)
            {
                StringBuilder Json = new StringBuilder();
                if (string.IsNullOrEmpty(jsonName)) jsonName = dt.TableName;
                Json.Append("{"" + jsonName + "":[");
                if (dt.Rows.Count > 0)
                {
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        Json.Append("{");
                        for (int j = 0; j < dt.Columns.Count; j++)
                        {
                            Type type = dt.Rows[i][j].GetType();
                            Json.Append(""" + dt.Columns[j].ColumnName.ToString() + "":" + StringFormat(dt.Rows[i][j].ToString(), type));
                            if (j < dt.Columns.Count - 1)
                            {
                                Json.Append(",");
                            }
                        }
                        Json.Append("}");
                        if (i < dt.Rows.Count - 1)
                        {
                            Json.Append(",");
                        }
                    }
                }
                Json.Append("]}");
                return Json.ToString();
            }
            #endregion
    
            #region DataReader转换为Json
            /// <summary> 
            /// DataReader转换为Json 
            /// </summary> 
            /// <param name="dataReader">DataReader对象</param> 
            /// <returns>Json字符串</returns> 
            public static string ToJson(DbDataReader dataReader)
            {
                StringBuilder jsonString = new StringBuilder();
                jsonString.Append("[");
                while (dataReader.Read())
                {
                    jsonString.Append("{");
                    for (int i = 0; i < dataReader.FieldCount; i++)
                    {
                        Type type = dataReader.GetFieldType(i);
                        string strKey = dataReader.GetName(i);
                        string strValue = dataReader[i].ToString();
                        jsonString.Append(""" + strKey + "":");
                        strValue = StringFormat(strValue, type);
                        if (i < dataReader.FieldCount - 1)
                        {
                            jsonString.Append(strValue + ",");
                        }
                        else
                        {
                            jsonString.Append(strValue);
                        }
                    }
                    jsonString.Append("},");
                }
                dataReader.Close();
                jsonString.Remove(jsonString.Length - 1, 1);
                jsonString.Append("]");
                return jsonString.ToString();
            }
            #endregion
    
    
            #region Datatable转换为Json 2
    
            /// <summary>
            /// Datatable转换为Json 2
            /// </summary>
            /// <param name="dt"></param>
            /// <returns></returns>
            public static List<Dictionary<string, object>> DataTableToDictionary(DataTable dt)
            {
                List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
                foreach (DataRow dr in dt.Rows)
                {
                    Dictionary<string, object> result = new Dictionary<string, object>();
                    foreach (DataColumn dc in dt.Columns)
                    {
                        result.Add(dc.ColumnName, dr[dc].ToString());
                    }
                    list.Add(result);
                }
                return list;
            }
            #endregion
    
    
            #region SerializeObject
    
            /// <summary>
            /// SerializeObject
            /// </summary>
            /// <param name="o"></param>
            /// <returns></returns>
            public static string SerializeObject(object o)
            {
                string json = JsonConvert.SerializeObject(o);
                return json;
            }
            #endregion
    
    
            #region 解析JSON字符串生成对象实体
    
            /// <summary>
            /// 解析JSON字符串生成对象实体
            /// </summary>
            /// <typeparam name="T">对象类型</typeparam>
            /// <param name="json">json字符串(eg.{"ID":"112","Name":"石子儿"})</param>
            /// <returns>对象实体</returns>
            public static T DeserializeJsonToObject<T>(string json) where T : class
            {
                JsonSerializer serializer = new JsonSerializer();
                StringReader sr = new StringReader(json);
                object o = serializer.Deserialize(new JsonTextReader(sr), typeof(T));
                T t = o as T;
                return t;
            }
    
            #endregion
    
            #region 解析JSON数组生成对象实体集合
    
            /// <summary>
            /// 解析JSON数组生成对象实体集合
            /// </summary>
            /// <typeparam name="T">对象类型</typeparam>
            /// <param name="json">json数组字符串(eg.[{"ID":"112","Name":"石子儿"}])</param>
            /// <returns>对象实体集合</returns>
            public static List<T> DeserializeJsonToList<T>(string json) where T : class
            {
                JsonSerializer serializer = new JsonSerializer();
                StringReader sr = new StringReader(json);
                object o = serializer.Deserialize(new JsonTextReader(sr), typeof(List<T>));
                List<T> list = o as List<T>;
                return list;
            }
    
            #endregion
    
            #region 反序列化JSON到给定的匿名对象
    
            /// <summary>
            /// 反序列化JSON到给定的匿名对象.
            /// </summary>
            /// <typeparam name="T">匿名对象类型</typeparam>
            /// <param name="json">json字符串</param>
            /// <param name="anonymousTypeObject">匿名对象</param>
            /// <returns>匿名对象</returns>
            public static T DeserializeAnonymousType<T>(string json, T anonymousTypeObject)
            {
                T t = JsonConvert.DeserializeAnonymousType(json, anonymousTypeObject);
                return t;
            }
    
            #endregion
        }
    }

    XML操作类

    using System.Xml;
    using System.Data;
    
    namespace Common.Utility
    {
        /// <summary>
        /// Xml的操作公共类
        /// </summary>    
        public class XmlHelper
        {
            #region 字段定义
            /// <summary>
            /// XML文件的物理路径
            /// </summary>
            private string _filePath = string.Empty;
            /// <summary>
            /// Xml文档
            /// </summary>
            private XmlDocument _xml;
            /// <summary>
            /// XML的根节点
            /// </summary>
            private XmlElement _element;
            #endregion
    
            #region 构造方法
            /// <summary>
            /// 实例化XmlHelper对象
            /// </summary>
            /// <param name="xmlFilePath">Xml文件的相对路径</param>
            public XmlHelper(string xmlFilePath)
            {
                //获取XML文件的绝对路径
                _filePath = System.Web.HttpContext.Current.Server.MapPath(xmlFilePath); 
            }
            #endregion
    
            #region 创建XML的根节点
            /// <summary>
            /// 创建XML的根节点
            /// </summary>
            private void CreateXMLElement()
            {
    
                //创建一个XML对象
                _xml = new XmlDocument();
    
                if (DirFile.IsExistFile(_filePath))
                {
                    //加载XML文件
                    _xml.Load(this._filePath);
                }
    
                //为XML的根节点赋值
                _element = _xml.DocumentElement;
            }
            #endregion
    
            #region 获取指定XPath表达式的节点对象
            /// <summary>
            /// 获取指定XPath表达式的节点对象
            /// </summary>        
            /// <param name="xPath">XPath表达式,
            /// 范例1: @"Skill/First/SkillItem", 等效于 @"//Skill/First/SkillItem"
            /// 范例2: @"Table[USERNAME='a']" , []表示筛选,USERNAME是Table下的一个子节点.
            /// 范例3: @"ApplyPost/Item[@itemName='岗位编号']",@itemName是Item节点的属性.
            /// </param>
            public XmlNode GetNode(string xPath)
            {
                //创建XML的根节点
                CreateXMLElement();
    
                //返回XPath节点
                return _element.SelectSingleNode(xPath);
            }
            #endregion
    
            #region 获取指定XPath表达式节点的值
            /// <summary>
            /// 获取指定XPath表达式节点的值
            /// </summary>
            /// <param name="xPath">XPath表达式,
            /// 范例1: @"Skill/First/SkillItem", 等效于 @"//Skill/First/SkillItem"
            /// 范例2: @"Table[USERNAME='a']" , []表示筛选,USERNAME是Table下的一个子节点.
            /// 范例3: @"ApplyPost/Item[@itemName='岗位编号']",@itemName是Item节点的属性.
            /// </param>
            public string GetValue(string xPath)
            {
                //创建XML的根节点
                CreateXMLElement();
    
                //返回XPath节点的值
                return _element.SelectSingleNode(xPath).InnerText;
            }
            #endregion
    
            #region 获取指定XPath表达式节点的属性值
            /// <summary>
            /// 获取指定XPath表达式节点的属性值
            /// </summary>
            /// <param name="xPath">XPath表达式,
            /// 范例1: @"Skill/First/SkillItem", 等效于 @"//Skill/First/SkillItem"
            /// 范例2: @"Table[USERNAME='a']" , []表示筛选,USERNAME是Table下的一个子节点.
            /// 范例3: @"ApplyPost/Item[@itemName='岗位编号']",@itemName是Item节点的属性.
            /// </param>
            /// <param name="attributeName">属性名</param>
            public string GetAttributeValue(string xPath, string attributeName)
            {
                //创建XML的根节点
                CreateXMLElement();
    
                //返回XPath节点的属性值
                return _element.SelectSingleNode(xPath).Attributes[attributeName].Value;
            }
            #endregion
    
            #region 新增节点
            /// <summary>
            /// 1. 功能:新增节点。
            /// 2. 使用条件:将任意节点插入到当前Xml文件中。
            /// </summary>        
            /// <param name="xmlNode">要插入的Xml节点</param>
            public void AppendNode(XmlNode xmlNode)
            {
                //创建XML的根节点
                CreateXMLElement();
    
                //导入节点
                XmlNode node = _xml.ImportNode(xmlNode, true);
    
                //将节点插入到根节点下
                _element.AppendChild(node);
            }
    
            /// <summary>
            /// 1. 功能:新增节点。
            /// 2. 使用条件:将DataSet中的第一条记录插入Xml文件中。
            /// </summary>        
            /// <param name="ds">DataSet的实例,该DataSet中应该只有一条记录</param>
            public void AppendNode(DataSet ds)
            {
                //创建XmlDataDocument对象
                XmlDataDocument xmlDataDocument = new XmlDataDocument(ds);
    
                //导入节点
                XmlNode node = xmlDataDocument.DocumentElement.FirstChild;
    
                //将节点插入到根节点下
                AppendNode(node);
            }
            #endregion
    
            #region 删除节点
            /// <summary>
            /// 删除指定XPath表达式的节点
            /// </summary>        
            /// <param name="xPath">XPath表达式,
            /// 范例1: @"Skill/First/SkillItem", 等效于 @"//Skill/First/SkillItem"
            /// 范例2: @"Table[USERNAME='a']" , []表示筛选,USERNAME是Table下的一个子节点.
            /// 范例3: @"ApplyPost/Item[@itemName='岗位编号']",@itemName是Item节点的属性.
            /// </param>
            public void RemoveNode(string xPath)
            {
                //创建XML的根节点
                CreateXMLElement();
    
                //获取要删除的节点
                XmlNode node = _xml.SelectSingleNode(xPath);
    
                //删除节点
                _element.RemoveChild(node);
            }
            #endregion //删除节点
    
            #region 保存XML文件
            /// <summary>
            /// 保存XML文件
            /// </summary>        
            public void Save()
            {
                //创建XML的根节点
                CreateXMLElement();
    
                //保存XML文件
                _xml.Save(this._filePath);
            }
            #endregion //保存XML文件
    
            #region 静态方法
    
            #region 创建根节点对象
            /// <summary>
            /// 创建根节点对象
            /// </summary>
            /// <param name="xmlFilePath">Xml文件的相对路径</param>        
            private static XmlElement CreateRootElement(string xmlFilePath)
            {
                //定义变量,表示XML文件的绝对路径
                string filePath = "";
    
                //获取XML文件的绝对路径
                filePath = System.Web.HttpContext.Current.Server.MapPath(xmlFilePath);
    
                //创建XmlDocument对象
                XmlDocument xmlDocument = new XmlDocument();
                //加载XML文件
                xmlDocument.Load(filePath);
    
                //返回根节点
                return xmlDocument.DocumentElement;
            }
            #endregion
    
            #region 获取指定XPath表达式节点的值
            /// <summary>
            /// 获取指定XPath表达式节点的值
            /// </summary>
            /// <param name="xmlFilePath">Xml文件的相对路径</param>
            /// <param name="xPath">XPath表达式,
            /// 范例1: @"Skill/First/SkillItem", 等效于 @"//Skill/First/SkillItem"
            /// 范例2: @"Table[USERNAME='a']" , []表示筛选,USERNAME是Table下的一个子节点.
            /// 范例3: @"ApplyPost/Item[@itemName='岗位编号']",@itemName是Item节点的属性.
            /// </param>
            public static string GetValue(string xmlFilePath, string xPath)
            {
                //创建根对象
                XmlElement rootElement = CreateRootElement(xmlFilePath);
    
                //返回XPath节点的值
                return rootElement.SelectSingleNode(xPath).InnerText;
            }
            #endregion
    
            #region 获取指定XPath表达式节点的属性值
            /// <summary>
            /// 获取指定XPath表达式节点的属性值
            /// </summary>
            /// <param name="xmlFilePath">Xml文件的相对路径</param>
            /// <param name="xPath">XPath表达式,
            /// 范例1: @"Skill/First/SkillItem", 等效于 @"//Skill/First/SkillItem"
            /// 范例2: @"Table[USERNAME='a']" , []表示筛选,USERNAME是Table下的一个子节点.
            /// 范例3: @"ApplyPost/Item[@itemName='岗位编号']",@itemName是Item节点的属性.
            /// </param>
            /// <param name="attributeName">属性名</param>
            public static string GetAttributeValue(string xmlFilePath, string xPath, string attributeName)
            {
                //创建根对象
                XmlElement rootElement = CreateRootElement(xmlFilePath);
    
                //返回XPath节点的属性值
                return rootElement.SelectSingleNode(xPath).Attributes[attributeName].Value;
            }
            #endregion
    
            #endregion
    
             
        }
    }

    获取

    在我的公众号“霸道的程序猿”

    发送“200工具类”

  • 相关阅读:
    springboot入门系列(一):简单搭建springboot项目
    springboot入门系列(二):SpringBoot整合Swagger
    springboot入门系列(三):SpringBoot教程之RabbitMQ示例
    springboot入门系列(四):SpringBoot和Mybatis配置多数据源连接多个数据库
    Linux下安装RabbitMQ
    Mybatis原理之数据源和连接池
    springboot入门系列(五):SpringBoot连接多RabbitMQ源
    jsp中<c:foreach>分页标签的序号问题
    Java中删除一个文件夹下的所有文件(包括子目录内的文件)
    接口的幂等性
  • 原文地址:https://www.cnblogs.com/badaoliumangqizhi/p/12457047.html
Copyright © 2011-2022 走看看