next

sqlserver2012——游标

核能气质少年 提交于 2020-11-24 03:53:29
游标:一种数据访问机制,允许用户访问单独的数据行而不是对整个行集进行操作。用户可以通过单独处理每一行逐条收集信息并对数据逐行进行操作,这样可以将降低系统开销。 游标主要有以下两部分:   游标结果集:由定义游标的select语句返回的行的集合   游标位置:指向这个结果集中的某一行的指针。 有标的特点:   游标返回一个完整的结果集,但允许程序设计语言只调用集合中的以行   允许定位在结果集的特定行   从结果集的当前位置检索一行或多行   提供脚本,存储过程和触发器中使用的访问结果集中数据的SQL语句 游标的声明 Declare cursor_name [INSENSITIVE] [SCROLL] CURSOOR For select_statement 举例说明 DECLARE STUDENT_CURSOR SCROLL CURSOR FOR select * From 学生信息 For read only 这样就声明了一个只读游标 DECLARE STUDENT_CURSOR SCROLL CURSOR FOR select * From 学生信息 For update 这样就声明了一个更改游标 要更新有标的时候必须释放游标 用 DEALLOCATE STUDENT_CURSOR 游标的操作步骤   1、打开游标 OPEN   2、检索游标FETCH。。。RELATIVE。。

【实用工具】这些你不得不知道的chrome插件,让你事半功倍

99封情书 提交于 2020-11-24 03:37:41
平时chrome插件用多了,发现在工作中有很多插件特别好用,能让你能事半功倍。于是我抽时间整理了一些非常好用的chrome插件分享给大家,其中有些插件是我已经离不开,每天都在用的。希望这篇文章能帮助你找到适合你的插件,提升工作效率。 工作类 FeHelper【强烈推荐】 FeHelper是一个Web前端助手,由中国人开发,集成了非常多很实用的前端工具,比如:字符串编解码、代码美化、JSON格式化查看、二维码生成器、编码规范检测、JS正则表达式等。虽然是前端工具大合集,但是在我们做软件测试或者其他开发同学的工作中也非常有用,比如我经常使用:JSON对比文件(对比两次请求返回的数据信息)、二维码生成工具(生成二维码)、JSON格式化。如下是该工具的一个截图: WX20191111-201217@2x.png Octotree 你是否有这样的体验,在github上浏览某个工程,需要不断的页面后退,或者点击跳转到新的页面,均需要一个页面加载的等待时间,这样体验会比较差。Octotree就是为了解决这个问题而出现的,它能够让你在页面上浏览代码层次结构,就像idea工具一样,非常方便。如下图所示: WX20191111-195902@2x.png One Tab 之所以推荐这个插件,并将它放到工作分类中,是因为考虑到平时大家工作中肯定会打开大量的tab,而tab上的标题将会变的很小,显示不全

Python3单链表简单操作

懵懂的女人 提交于 2020-11-24 03:33:13
单链表是一种链式存取的数据结构,用一组地址任意的 存储单元 存放线性表中的 数据元素 。链表中的数据是以结点来表示的,每个结点的构成:元素( 数据元素 的映象) + 指针 (指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。 class Node(): # 定义头结点 def __init__(self, data): self.data = data # 头指针为空 self.next = None # 头插法 class SNode(): def __init__(self): self.current_node = None def add_node(self, data): node = Node(data) node.next = self.current_node self.current_node = node def append_node(self, data): # 尾插法插入节点 node = Node(data) cur = self.current_node # 遍历链表直到头节点处停止遍历 while cur: if cur.next == None: break cur = cur.next cur.next = node def travel(self): ''' 遍历链表 :return: ''' cur =

【Android】win10操作系统下Android环境配置

半世苍凉 提交于 2020-11-24 03:01:55
Windows命令行调试unity(Android)应用环境变量配置 准备步骤: 先下载好我们需要的Android SDK和JDK。 Android SDK推荐地址:http://tools.android-studio.org/index.php/sdk -安卓中文社区 选择好对应平台的安装包或解压包下载至本地。 JDK推荐地址: http://www.oracle.com/technetwork/java/javase/downloads/index.html -Oracle官方网站 选择好适合自己平台的版本下载至本地。 安装SDK: 推荐傻瓜式安装(next-->next-->next),安装至C盘。(当然其他盘也是可以的)。 安装JDK: 同上。 配置环境变量: 1. 首先右击“我的计算机”或“此电脑”图标,在弹出来的下拉列表中点击“属性(R)”,如下图所示。 2. 进入到“系统”属性面板,点击左侧的“高级系统设置”,如下图所示。 3. 弹出一个“系统属性”窗口,点击右下角的“环境变量(N)...”按钮,如下图所示。 4."系统变量(s)"下面“新建(W)...”按钮,在“新建系统变量”对话框中输入变量名ANDROID_HOME,设置变量值为Android SDK的安装路径,我这里为D:\Personal\android-sdk 5."系统变量(s)"下面“新建(W)...

MySQL事务原理浅析

十年热恋 提交于 2020-11-24 02:58:07
前言 ​ 因为自己对数据的可靠性,可用性方面特别感兴趣,所以在MySQL事务方面看了很多资料,也看了很多博客,所以想到自己也写一篇博客整理整理自己所学内容,尽量用自己的语言解释得通俗易懂。 事务经典场景 ​ 在很多介绍事务的博客都会代入这样一个场景,先简单说说: ​ A给B转账100,A少100,B多100。如果A少100后系统崩溃怎么办?B的钱多不了,这样金钱总数凭空少了100。这里就需要用到事务了。 什么是事务? ​ 事务是恢复和并发控制的基本单位,事务有四个特性(ACID),原子性(Atomicity),一致性(Consistency),隔离性(Isolation),持久性(Durability)。本文主要围绕这四个特性展开介绍。 原子性 ​ 原子性就是不可拆分的特性,要么全部成功然后提交(commit),要么全部失败然后回滚(rollback)。若开启事务,在上述场景就不会出现 A少100 成功,B多100 失败 这种情况。MySQL通过Redo Log重做日志实现了原子性,在将执行SQL语句时,会先写入redo log buffer,再执行SQL语句,若SQL语句执行出错就会根据redo log buffer中的记录来执行回滚操作,由此拥有原子性。 一致性 ​ 一致性指事务将数据库从一种状态转变为下一种一致的状态。比如有一个字段name有唯一索引约束

这 35 个 Java 代码优化细节,你用了吗?

喜你入骨 提交于 2020-11-24 02:29:09
前言 代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。 代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的。 优化代码的目标是: 减小代码体积 提高代码运行的效率 代码优化细节 1、尽量指定类、方法的final修饰符 带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String,整个类都是final的。为类指定final修饰符可以让类不可以被继承,为方法指定final修饰符可以让方法不可以被重写。如果指定了一个类为final,则该类所有的方法都是final的。Java编译器会寻找机会内联所有的final方法,内联对于提升Java运行效率作用重大,具体参见Java运行期优化。此举能够使性能平均提高50% 。 2、尽量重用对象 特别是String对象的使用,出现字符串连接时应该使用StringBuilder/StringBuffer代替

jdk1.8 HashMap底层数据结构:散列表+链表+红黑树(图解+源码)

别说谁变了你拦得住时间么 提交于 2020-11-23 23:49:40
一、前言   本文由jdk1.8源码整理而得,附自制jdk1.8底层数据结构图,并截取部分源码加以说明结构关系。 二、 jdk1.8 HashMap底层数据结构图    三、源码    1.散列表(Hash table,也叫哈希表): /** * 表,第一次使用时初始化(而非实例化集合时进行初始化),并根据需要调整大小。 当分配时,长度总是2的幂。 (在某些操作中,我们还允许长度为零,以允许当前不需要的引导机制。)    */ transient Node<K,V>[] table;    2.链表: /** * Basic hash bin node, used for most entries. (See below for * TreeNode subclass, and in LinkedHashMap for its Entry subclass.) */ static class Node<K,V> implements Map.Entry<K,V> { final int hash; final K key; V value; Node <K,V> next;      …… }    3.红黑 树: /** * Entry for Tree bins. Extends LinkedHashMap.Entry (which in turn * extends Node

Tensorflow训练识别自定义图片

為{幸葍}努か 提交于 2020-11-23 11:33:01
很多正在入门或刚入门TensorFlow机器学习的同学希望能够通过自己指定图片源对模型进行训练,然后识别和分类自己指定的图片。但是,在TensorFlow官方入门教程中,并无明确给出如何把自定义数据输入训练模型的方法。现在,我们就参考官方入门课程《Deep MNIST for Experts》一节的内容(传送门: https://www.tensorflow.org/get_started/mnist/pros ),介绍如何将自定义图片输入到TensorFlow的训练模型。 在《Deep MNISTfor Experts》一节的代码中,程序将TensorFlow自带的mnist图片数据集mnist.train.images作为训练输入,将mnist.test.images作为验证输入。当学习了该节内容后,我们会惊叹卷积神经网络的超高识别率,但对于刚开始学习TensorFlow的同学,内心可能会产生一个问号:如何将mnist数据集替换为自己指定的图片源?譬如,我要将图片源改为自己C盘里面的图片,应该怎么调整代码? 我们先看下该节课程中涉及到mnist图片调用的代码: from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets( ' MNIST_data ' ,

python实现杨辉三角

那年仲夏 提交于 2020-11-23 08:50:36
刚刚学python,原来用c++,Java很轻松实现的杨辉三角,现在用python实现,代码是少了,理解起来却不容易啊。 这里主要用到的Python的生成器。 我们都知道Python有列表解析功能,根据表达式可以自动生成列表,如: # 这样就得到了0-9这几个数的平方 my_list = [x**2 for x in range(10 )] print (my_list) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] print (type(my_list)) # <class 'list'> 但是列表的大小受内存的限制,如果我们能记录产生数据的算法,那么就不用构造完整的列表,只需要边循环边产生数据。 下面就来创建一个简单的生成器: # 创建一个简单的生成器 gen = (x * x for x in range(10 )) print (type(gen)) # <class 'generator'> for item in gen: print (item, end= " " ) # 0 1 4 9 16 25 36 49 64 81 除了用for遍历生成器对象,还可以用next()函数进行遍历 # 创建一个简单的生成器 gen = (x * x for x in range(10 )) print (type(gen)) # <class

C# EPPlus导出EXCEL,并生成Chart表

匆匆过客 提交于 2020-11-23 08:26:42
原文: C# EPPlus导出EXCEL,并生成Chart表 一 在negut添加EPPlus.dll库文件。 之前有写过直接只用Microsoft.Office.Interop.Excel 导出EXCEL,并生成Chart表,非常耗时,所以找了个EPPlus控件。 二 代码部分 System.Data.DataTable dt = new System.Data.DataTable(); dt.Columns.Add("序号", typeof(int)); dt.Columns.Add("数据1", typeof(int)); dt.Columns.Add("数据2", typeof(int)); Random r = new Random(); for (int i = 0; i < 20; i++) { if (i == 6 || i == 16) continue; dt.Rows.Add(i + 1, r.Next(50), r.Next(60)); } ////新建一个 Excel 文件 //string filePath = @"C:\Users\Lenovo\Desktop\" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss") + ".xlsx"; //FileStream fileStream = new