精华内容
下载资源
问答
  • 怎么增加保存类型
    千次阅读
    2021-01-19 02:37:49

    将日志信息记入数据库时增加了一个时间字段,发现存入数据库时只保留了日期,而没有时分秒信息。

    我这边环境是(SRPINGMVC+Mybatis,mysql版本5.6.28以上),java层使用类型为java.util.Date,数据字段类型为date

    参考了一些网上的说法,基本描述是说:

    date:只有日期,没有时间,2016-09-21;

    time:只有时间,没有日期,23:42:31;

    datetime:日期时间都有,2016-09-21 23:42:31 。

    timestamp:可以在进行Insert或者update的时候自动的为你插入时间,时间格式:2016-09-21 23:42:31

    (参见:http://blog.csdn.net/Fasure_Smile/article/details/52619686)

    应对方案基本如下:

    一、改用java.sql.Timestamp

    二、传日期形式的字符串,在存储过程接收到后在存储过程中使用to_date处理,对于输出的使用to_char处理

    三、传TO_DATE字符串进存储过程

    (参见:http://blog.csdn.net/lifuxiangcaohui/article/details/11529547)

    我这边实测,实际上只需要mysql使用datetime类型即可,java层可以直接使用java.util.Date类型。即实际上原因是MySQL的date类型只足够保存日期,将字段拓展为datetime即可。

    更多相关内容
  • GridControl实现增加保存,删除

    千次阅读 2018-08-28 14:56:44
    GridControl实现增加保存,删除 < 1. 增加代码 //备件增加 private void barLargeButtonItem6_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { try { ...
    GridControl实现增加,保存,删除

    < 1. 增加代码

     //备件增加
            private void barLargeButtonItem6_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
            {
                try
                {
                    if (strPkid != "")
                    {
                        DataRow drowNow = dstgi_repair_assembly_list.TGI_REPAIR_ASSEMBLY_LIST.NewRow();
                        drowNow["REPAIR_ORDER_PKID"] = strPkid;
                        drowNow["PKID"] = NewRandomID();
                        dstgi_repair_assembly_list.TGI_REPAIR_ASSEMBLY_LIST.Rows.Add(drowNow);
                    }
                    else
                    {
                        XtraMsgDialog.ShowInfo("请先选择一个工单!");
                    }
    
                }
                catch (Exception ex)
                {
                    // 信息提示
                    XtraMsgDialog.ShowError("失败" + "\r\n具体原因:" + ex.Message);
                    //记录日志
                    LogHelper.WriteForSysLog(LogHelper.LogLevel.ERROR, ex.GetType().ToString(), "异常信息", ex.Message);
                }
            }

    < 2. 保存代码

    //备件保存
            private void blbItemSaveSpare_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
            {
                try
                {
                    dstgi_repair_assembly_list.EndInit();
                    gvSpare.PostEditor();
                    gvSpare.FocusedRowHandle = -1;
                    DataSet dstMain = dstgi_repair_assembly_list.GetChanges();
                    if (dstMain == null)
                    {
                        XtraMsgDialog.ShowWarning("没有数据变化不需要保存!");
                        return;
                    }
                    if (!LengthValPlan())
                    {
                        return;
                    }
                    DataSet dstDataSet = new DataSet();
                    if (dstMain != null) dstDataSet.Merge(dstMain);
                    if (SaveDataRepair(dstDataSet))
                    {
                        XtraMsgDialog.ShowInfo("保存成功!");
                        dstgi_repair_assembly_list.AcceptChanges();
                    }
                }
                catch (Exception ex)
                {
                    // 信息提示
                    XtraMsgDialog.ShowError("失败" + "\r\n具体原因:" + ex.Message);
                    //记录日志
                    LogHelper.WriteForSysLog(LogHelper.LogLevel.ERROR, ex.GetType().ToString(), "异常信息", ex.Message);
                }
            }
      /// <summary>
            /// 保存数据
            /// </summary>
            /// <param name="dstChanges"></param>
            /// <returns></returns>
            public bool SaveDataRepair(DataSet dstChanges)
            {
                try
                {
                    this.Validate();
                    if (dstChanges.Tables.Contains("TGI_REPAIR_ASSEMBLY_LIST"))
                    {
                        object[] objQuery = { strPkid };
                        DataSet dstResult = DataSetHelper.BytesToDataSet(EquipmentManageAPI.EquipmentManageService.ExecuteDataSetExt("TGI_REPAIR_ASSEMBLY_LIST", "EquipmentManager.GetTwoRepairCountQuery", objQuery));
    
                        foreach (DataRow drow in dstChanges.Tables["TGI_REPAIR_ASSEMBLY_LIST"].Rows)
                        {
                            if (drow.RowState == DataRowState.Deleted) continue;
                            if (drow["ASSEMBLY_NAME"].ToString().Length == 0)
                            {
                                XtraMsgDialog.ShowInfo("备件名称不可为空");
                                return false;
                            }
                            if (drow["AMOUNT"].ToString().Length == 0)
                            {
                                XtraMsgDialog.ShowInfo("数量不可为空");
                                return false;
                            }
                            if (drow["ASSEMBLY_UNIT"].ToString().Length == 0)
                            {
                                XtraMsgDialog.ShowInfo("单位不可为空");
                                return false;
                            }
                            if (drow.GetColumnsInError().Length >= 1) return false;
                        }
                    }
                    if (dstChanges.Tables.Contains("TGI_REPAIR_ASSEMBLY_LIST"))
                    {
                        foreach (DataRow drow in dstChanges.Tables["TGI_REPAIR_ASSEMBLY_LIST"].Rows)
                        {
                            if (drow.RowState == DataRowState.Deleted) continue;
                            if (drow["assembly_name"].ToString().Length == 0 || drow["amount"].ToString().Length == 0 || drow["ASSEMBLY_UNIT"].ToString().Length == 0)
                            {
                                XtraMsgDialog.ShowInfo("红色必填项不可为空");
                                return false;
                            }
                        }
    
                    }
    
                    //将修改内容放到一个非类型化的数据集中,以保证可以序列化、传输
                    byte[] bs = DataSetHelper.DataSetToBytes(dstChanges);
                    string strResult = BaseDataManageAPI.BaseDataManageService.SaveDataSet(bs);
    
                    if (strResult == "true")
                    {
    
                        return true;
                    }
                    else
                    {
                        XtraMsgDialog.ShowInfo("保存失败!");
                        return false;
                    }
                }
                catch (Exception ex)
                {
                    // 信息提示
                    XtraMsgDialog.ShowError("失败" + "\r\n具体原因:" + ex.Message);
                    //记录日志
                    LogHelper.WriteForSysLog(LogHelper.LogLevel.ERROR, ex.GetType().ToString(), "异常信息", ex.Message);
    
                }
                return true;
    
            }

    < 3. 删除代码

     /// <summary>
            /// 备件删除
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void blbItemDeleteSpare_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
            {
                try
                {
                    DataRow drow = gvSpare.GetFocusedDataRow();
                    if (drow == null) return;
                    if (drow.RowState == DataRowState.Added) drow.Delete();
                    else
                    {
                        if (XtraMsgDialog.ShowQuestionYesNo("是否确认删除"))
                        {
                            drow.Delete();
                        }
                    }
                }
                catch (Exception ex)
                {
                    // 信息提示
                    XtraMsgDialog.ShowError("失败" + "\r\n具体原因:" + ex.Message);
                    //记录日志
                    LogHelper.WriteForSysLog(LogHelper.LogLevel.ERROR, ex.GetType().ToString(), "异常信息", ex.Message);
                }
            }

    5.最终实现样式
    对GridControl进行增加,删除,保存等操作

    展开全文
  • 关于 “引用类型保存在堆上,值类型保存在栈上”是不准确的 关于 堆栈 早期的理解是 内存的两块区域。 堆呢 速度快 但是 比较小。二栈呢 速度稍慢,但是空间比较大。 在早期 关于 说道 值类型 和 引用类型的时候...

    关于 “引用类型保存在堆上,值类型保存在栈上”是不准确的

        关于 堆栈 早期的理解是 内存的两块区域。呢 速度快 但是 比较小。呢 速度稍慢,但是空间比较大。

      栈(Stack)

    • 栈是一种只能先进后出的内存结构。
    • 栈只能在一端对数据进行操作,也就是栈顶端进行操作。
    • 栈也是一种内存自我管理的结构,压栈自动分配内存,出栈自动清空所占内存
    • 栈中的内存不能动态请求,只能为大小确定的数据分配内存,灵活性不高,但是栈的执行效率很高
    • 栈的可用空间并不大,所以我们在操作分配到栈上的数据时要注意数据的大小带来的影响

      堆(Heap)

    • 相比栈只能在一端操作,堆中的数据可以随意存取。
    • 能存储大量数据,而且堆能够动态分配存储空间
    • 但堆的结构使得堆的执行效率不如栈高,而且不能自动回收使用过的对象

          在早期 关于 说道 值类型 和 引用类型的时候 经常说 :值类型一般是在 里面,而引用类型则在 里面存放是的引用的地址,而真是的值 是在 里面!。 当时想着想着 又有哪里不对。 应为当类里面包含 值类型的时候 那这个类的实例 又该在哪里呢? 后来随着学习的深入 。发现这样的说法是不完全正确的!

    那么变量的值在内存空间 究竟是如何分配的呢?

    通常来讲 变量的值分配 与其声明该变量的位置有关。 局部变量的值 总是在 栈上的。 实例变量的值则和实例本身一起储存在实例储存的地方。 引用类型实例和静态总是储存在上的。

            之所以说 值类型的实例一般分配在上而非 全部分配在上的原因是由一下几种情况, 值类型也有可能分配在上。

            这些特殊的情况包括数数组的元素、引用类型中的值类型字段、法代器块中的局部变量、闭包情况下匿名函数( Lamda )中的局部变量。这是由于在这几种情况下的值类型实例如果分配在 线程栈上,有可能会出现线程技中的方法己经调用结束,但是还会访问这些值的情况。也就是说如果分配在 线程栈上,有可能会随着被调用方法的返回而被清除掉。因此它们也被分配在了托管堆上,以满足在方法返回之后还能够被访问的要求。所以单纯地说“引用类型保存在托管堆上,值类型保存在线程栈上”是不准确的。将这句话一分为二看待,引用类型的确总是分配在托管堆上, 但是值类型并非总是分配在线程栈上有可能分配在堆

           那么在C#语言中,到底哪些类型可以归为是引用类型,又有哪些类型应该被归为值类型呢?根据ECMA 的C#语言规范CECMA”334 规范)或者微软官方的C#语言规范,任何被称为“类”的类型都是引用类型。并且通常使用以下3 个关键字来声明一个自己定义的引用类型。

    • Class"
    • Interface
    • Delegate
    当然,在C#中也有一些内建的引用类型。
    • Dynamico
    • Objecto
    • string 。

    在C#中,继承自System.ValueType的类型被称为值类型,主要有以下几种(CLR2.0中支持类型有增加):
        * bool
        * byte
        * char
        * decimal
        * double
        * enum
        * float
        * int
        * long
        * sbyte
        * short
        * struct
        * uint
        * ulong
        * ushort

     

    总结:

    值类型和引用类型在栈和堆中的分配

    1.创建引用类型时,runtime会为其分配两个空间,一块空间分配在堆上,存储引用类型本身的数据,另一个块空间分配在栈上,存储对堆上数据的引用,实际上存储的堆上的内存地址,也就是指针。

    2.创建值类型时, runtime会为其分配一个空间,这个空间分配在变量创建的地方,如:

    • 如果值类型是在方法内部创建,则跟随方法入栈,分配到栈上存储。
    • 如果值类型是引用类型的成员变量,则跟随引用类型,存储在堆上。(对象的成员变量)
    展开全文
  • Labview如何快速保存数据到Excel

    千次阅读 2021-01-27 04:13:02
    顾名思义,就是把Labview采集到的数据写入Excel文件并保存,方便我们在Excel中打开或者其他应用打开。这个控件位于文件I/0选项卡下面,如图所示。这个vi有多个输入,接口的具体含义如图这么多的输入并不是全都必须的...

    Labview图形化编程语言对入门用户非常友好,能够快速部署并实现你想要的功能。

    今天给大家介绍一个关于文件I/O接口的vi,名字叫做写入带分隔符的电子表格。

    顾名思义,就是把Labview采集到的数据写入Excel文件并保存,方便我们在Excel中打开或者其他应用打开。

    这个控件位于文件I/0选项卡下面,如图所示。

    d5082bfbee82928d6b0597e2b8238a01.png

    这个vi有多个输入,接口的具体含义如图

    0fda4a53bfe5ffe3ac836b5ff56e09ce.png

    这么多的输入并不是全都必须的,要最快的部署实现你想要的功能,这里我们只需要关注4个输入,分别是格式、文件路径、二维数据或者一维数据。

    一、格式

    这里,格式的默认值是%.3f 意思是取小数点后三位。

    如果输入值是1.01234,则最后只保存小数点后三位,也就是1.012.

    如果我们想要保存小数点后五位,则需要将这个默认值改为%.5f

    也就是中间的数值是多少,就表示保存小数点后多少位。

    二、文件路径

    另外一个就是文件路径,这里建议大家在文件路径这里创建一个输入窗口,每次保存数据前重新命名一下文件名,在数据文件比较多的情况下,能够根据文件名称快速区分数据,不至于数据混乱。

    还有,这里的文件路径是支持中文的,非常人性化。

    63140b4d775035836f577cdb105d1f85.png

    文件路径必须具体到文件的拓展名。这里推荐两种文件拓展名,一个是xls,一个是csv,这两种都能够直接在Excel中打开,并且能够直接被Matlab调用,非常方便。

    三、数据维数

    一维数据跟二维数据怎么区分呢?

    如果数据采集的通道数为1,也就是每次只采集一组数据,则为一维数据。

    如果数据采集的通道为2或2以上,也就是每次采集多组数据,则为二维数据。

    这里我以生成随机数的方式给大家演示一下,采集20个随机数,并以小数点后5位的格式保存。

    a9375aa2bf84c9eae89c47aa9e502c42.png

    可以看到,我们在Excel中找到了保存的随机数,不过是以行向量的形式保存的。

    如果要在Matlab调用,需要注意。Matlab默认是以列向量保存的,需要转置一下。

    责任编辑人:CC

    打开APP阅读更多精彩内容

    点击阅读全文

    展开全文
  • MySQL 字段类型

    千次阅读 2021-01-19 04:50:15
    数值MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数。许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 MySQL 允许我们指定数值字段中的值...
  • Swift之深入解析基于闭包的类型擦除

    万次阅读 2021-10-25 18:20:54
    与许多其它语言相比,使 Swift 更加安全,更不易出错的原因之一是其先进的(并且在某种程度上是不容忍的)类型系统,这是一种语言功能,有时可能会给人留下深刻的印象,使我们的工作效率提高很多,而有时却令人沮丧...
  • Python字段数据保存到excel表格

    千次阅读 2022-02-19 22:22:36
    在日常测试中我们会遇到将获取的数据保存到excel中,例如通过Pthon的request请求获取的数据,那么我们可以通过以下方法进行处理。 数据处理 我们可以将获得的数据以字典的形式进行存储,例如: data1 = {"key1":...
  • MySQL 数据类型

    万次阅读 2021-01-19 06:25:45
    MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数。许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 MySQL 允许我们指定数值字段中的值是否有...
  • 如果想要增加一个维度的话,可以使用下面这个numpy基本操作: img_gray = img_gray [ : , : , None ] 这样的话,得出的维度就是H,W,C,其中C=1。 显示图片 注意加上cv2.waitKey(0)不会有黑屏的情况。...
  • JS数据类型之引用数据类型

    万次阅读 2019-06-28 16:46:51
    1、引用数据类型也就是对象数据类型object,比如:object、array、function、data等; 2、引用类型的值可以改变: let person = {name: 'lisa'} person.name = 'Jane' // 通过修改对象属性值更改对象 console....
  • 想知道电脑截图保存在哪儿找

    千次阅读 2021-07-27 05:40:50
    林渊羡榆回答数:7559|被采纳数:22017-01-16 11:...需要粘贴,打开开始菜单—程序—附件—画图,然后ctrl+v来粘贴然后左右角文件—另存为(就是个人选择保存位置)—重命名(就是图片名字)—保存类型—就是这个图片的...
  • 5.一文搞懂MySQL的数据类型

    千次阅读 2021-09-01 11:50:32
    数据类型是定义列中可以存储什么类型的数据以及该数据实际怎样存储的基本规则数据类型限制存储在数据列列中的数据。
  • Java 基本类型与引用类型

    千次阅读 多人点赞 2019-03-27 20:55:51
    Java 基本类型与引用类型 一、基本数据类型 java 中一共分为 8 种基本数据类型:byte、short、int、long、float、double、char、boolean, 其中 byte、short、int、long 是整型。float、double 是浮点型,char 是...
  • 如何将网页保存保存为PDF格式?

    万次阅读 2019-03-22 23:39:03
    选取文件要保存的路径,输入要保存的文件名和文件类型,注意:文件类型要选"PDF文件格式(*.pdf)",然后点击“保存”即可。 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果...
  • js保存数据到本地

    千次阅读 2020-09-16 11:12:11
    js将数据保存到本地,最常用的方式是localStorage。 localStorage概述 大小限制5M,更大数据需要浏览器的数据库...// 增加元素 localStorage.setItem("key1", "value1"); // 获取元素 console.log(localStorage.
  • LabVIEW中保存数据的方法

    万次阅读 多人点赞 2019-08-24 13:27:31
    LabVIEW中保存数据的方法 ...保存为.txt文件需要写入的是字符串数据类型(即使需要写入数值数据,仍需要通过数值字符串格式转换函数来转换数据类型)。 3. 数据的读写主要用到以下函数:...
  • ElasticSearch--索引与类型

    万次阅读 2020-12-27 14:10:23
    版本变化 其他网址 ElasticSearch 中的索引与类型的前生今世 - 程序印象
  • OpenCV基础操作_图片读取和保存

    万次阅读 2022-03-30 15:16:55
    2 图片保存 1 图片读取 在OpenCV中,加载图片采用imread()函数。 函数详细说明在:Reading and Writing Images and Video — OpenCV 2.4.13.7 documentation Python:cv2.imread(filename[, flags]) 函数...
  • 基本数据类型和引用数据类型的区别 Java中的数据类型分为两大类,基本数据类型和引用数据类型。 一、基本数据类型 基本数据类型只有8种,可按照如下分类 ①整数类型:long、int、short、byte ②浮点类型:float、...
  • 13 Redis 的扩展类型GEO和自定义数据类型前言一、GEO 的底层结构二、GeoHash 的编码方法总结 前言 在日常生活中,我们越来越依赖搜索“附近的餐馆”、在打车软件上叫车,这些都离不开基于位置信息服务(Location-...
  • 详细介绍MySQL中的数据类型

    万次阅读 多人点赞 2022-04-12 21:46:07
    主要介绍了mysql中的数据类型,主要介绍整数类型,浮点类型,日期类型。开发中每个表都会存在主键和更新时间,这时候选择那个数据类型作为主键也是很重要的,如果选择的数据类型太大会浪费空间,如果选择小了会影响...
  • MySQL 数据类型 在 MySQL 中,有三种主要的类型:Text(文本)、Number(数字)和 Date/Time(日期/时间)类型。 Text 类型: 数据类型 描述 CHAR(size) 保存固定长度的字符串(可包含字母、数字以及...
  • MySQL字段类型最全解析

    千次阅读 2021-02-02 08:08:48
    前面文章我们也讲过 int 及 varchar 类型的用法,但一直没有全面讲过字段类型,本篇文章我们将把字段类型一网打尽,讲一讲常用字段类型的用法。常用的字段类型大致可以分为数值类型、字符串类型、日期时间类型三大类...
  • mysql数据库-数据类型与约束的知识点小结-Z3

    千次阅读 多人点赞 2020-10-30 00:56:01
    使用INT类型保存数字1占用的字节数为4 一个数据表中不可以定义多个主键。 一个数据表中可以定义多个非空字段。 非空约束指的是字段的值不能为空。 TEXT类型存储的最大字节数为65535。 ENUM类型的数据只能从枚举列表...
  • mybatis存储数组类型数据设置教程

    千次阅读 2021-09-10 17:25:01
    数据库字段类型设置为 varchar 实体类增加autoResultMap = true 注解 @TableName(value = "gis_feature_clazz",autoResultMap = true) 字段设置String数组,增加typeHandler = FastjsonTypeHandler.class 注解...
  • 一次性保存多条数据(批量保存)比较简单方便的做法就是使用json格式,具体看我的这篇文章,批量保存数据(json版),该篇文章详细的介绍了使用json来做批量保存!有图有代码有步骤! 但是我本篇文章并没有使用json,我...
  • js数据类型:基本数据类型和引用数据类型(文章最下面会介绍各类型的基础以及注意事项) 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象 当我们把变量赋值给一个变量时,解析器首先要确认...
  • java基本类型与引用类型

    万次阅读 多人点赞 2018-01-04 17:30:32
    java基本类型与引用类型 目录 java基本类型与引用类型 目录 一基本数据类型 二引用类型 三基本类型与引用类型的区别 默认值 内存分配 自动装箱自动拆箱 自动装箱拆箱带来的问题 程序的性能 空指针异常 ...
  • 【Qt】数据类型和有用的数据操作类

    千次阅读 2018-11-22 14:38:29
    除了C++提供的基本数据类型之外,Qt还提供了了对开发者而言非常有用的多种数据类型。Qt提供的数据类型分为基本数据类型和类形态的数据类型。   基本数据类型 Qt支持多个平台,创建的应用程序需要在多种平台上都...
  • pytorch 模型加载与保存

    千次阅读 2019-04-07 14:25:19
    保存和与加载模型,有三个核心函数需要熟悉: torch.save: 保存一个序列化的对象至硬盘,。该函数使用了Python的pickle包用于序列化。模型、张亮和各种对象的字典都可以使用该函数保存; torch.load:使用pickle的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 814,132
精华内容 325,652
热门标签
关键字:

怎么增加保存类型