read

Spring——事务的特性、隔离机制(转)

妖精的绣舞 提交于 2019-11-27 03:39:12
Spring——事务的特性、隔离机制(转) 一、事务 1.事务在项目开发中非常重要,涉及到数据一致性问题,不容马虎 2.事务的四大特性: 原子性:   原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。 一致性:   一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。   如:拿转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,事务结束后两个用户的钱相加起来应该还得是5000,这就是事务的一致性。 隔离性:   隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。 即要达到这么一种效果:对于任意两个并发的事务T1和T2,在事务T1看来,T2要么在T1开始之前就已经结束,要么在T1结束之后才开始,这样每个事务都感觉不到有其他事务在并发地执行。 持久性 :   持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。   例如:我们在使用JDBC操作数据库时,在提交事务方法后,提示用户事务操作完成

下载ORACLE中BLOB内容到客户端

我的未来我决定 提交于 2019-11-27 03:36:12
private void downLoad(string id) { string fileName = Page.Request.PhysicalApplicationPath + "SystemManage\\SysFile\\" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".zip"; OracleConnection conn = null; string connString = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"].ToString(); using (conn = new OracleConnection(connString)) { try { conn.Open(); OracleCommand cmd = conn.CreateCommand(); // 利用事务处理(必须) OracleTransaction transaction = cmd.Connection.BeginTransaction(); cmd.Transaction = transaction; // 根据查询语句获取对应的上传文件的BLOB信息 string sql = "select 上传文件 from 文件上传表 where

javaIO——概述

心已入冬 提交于 2019-11-27 03:33:07
  以前看java书,都将IO作为一个大的章节甚至模块来编写,可见IO在java语言中的重要性。   java的流按功能和处理的目标数据不同可以分为字节流和字符流。字符流处理的基本数据单元是字符;字节流处理的基本数据单元是字节。类关系结构图如下:            图片转自: https://blog.csdn.net/weixin_44411569/article/details/88788085      IO本身就是输入输出的意思,从上图可以看出,无论字符还是字节流,都是分为输入和输出两大块。   并且不管是输入还是输出流、字符流还是字节流,都实现了接口 java.io.Closeable ,该接口只有一个 close 方法。官方文档是这样说的:A {@code Closeable} is a source or destination of data that can be closed.The close method is invoked to release resources that the object is holding (such as open files).意思是说: 一个Closeable对象是一个可以关闭的数据源或者数据目标地,可以通过调用close方法来释放该对象所占用的资源(比如打开的文件) 。显然,所谓数据源就是对应输入流

shell脚本作业

你离开我真会死。 提交于 2019-11-27 02:21:58
1、判断/etc/inittab文件是否大于100行,如果大于,则显示”/etc/inittab is a big file.”否者显示”/etc/inittab is a small file.” #!/bin/bash a=`awk '{print NR}' /etc/inittab|tail -n1` if [$a>100];then echo "文件为大文件" else echo "文件不足100行" fi 2、给定一个用户,来判断这个用户是什么用户,如果是管理员用户,则显示“该用户为管理员”,否则显示“该用户为普通用户” #!/bin/bash read -p "输入用户:" username echo $username a=`id -u $username` echo "$a" if [ $a -lt 500 ]; then echo "该用户是管理员用户" else echo "该用户为普通用户" fi 3、判断某个文件是否存在 #/bin/bash read -p "输入一个文件:" file ex=`ls $file` if [ $ex == "ls: cannot access e: No such file or directory" ] then echo "无此文件" else echo "有此文件" fi 4

Shell学习笔记 - Shell变量

喜夏-厌秋 提交于 2019-11-26 22:32:52
一、变量的命名 变量名必须以字母或下划线开头,由字母、数字、或下划线组成,变量名的长度不能超过255个字符。 二、变量的分类 1. 用户自定义变量 2. 环境变量 3. 位置参数变量 4. 预定义变量 三、用户自定义变量 用户自定义变量是“局部变量”,只能在当前的Shell中生效 1. 定义变量 变量名=变量值 示例: 注意:等号前后不能有空格,否则会出现以下错误提示: 2. 变量调用 $变量名 或 ${变量名} 示例: 3. 变量叠加 示例: 或: 4. 删除变量 unset 变量名 示例: 5. 查看变量 1) env:查看所有的环境变量 2) set:查看所有的变量(包括用户自定义变量) 四、环境变量 环境变量是“全局变量”,在当前Shell和这个Shell的所有子Shell中生效 1. 设置环境变量 export 变量名=变量值 或 变量名=变量值 export 变量名 示例: 注意:设置环境变量时,建议使用大写,避免与用户自定义变量或系统命令(都是小写的)冲突。 2. 删除环境变量,环境变量调用,查看环境变量 用户自定义变量的使用方式相同 3. 设置PS1环境变量 PS1环境变量会影响用户提示符信息,示例如下: 五、位置变量 1. $n n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要用大括号包含,如${10}。 示例: #!/bin/bash

bzoj3545/bzoj3551 [ONTAK2010]Peaks/Peaks加强版

喜你入骨 提交于 2019-11-26 20:34:24
传送门: bzoj bzoj wdnmd为什么加强版不是权限题原题却是啊 3545: [ONTAK2010]Peaks Time Limit: 10 Sec Memory Limit: 128 MB [ Submit ][ Status ][ Discuss ] Description 在Bytemountains有N座山峰,每座山峰有他的高度h_i。有些山峰之间有双向道路相连,共M条路径,每条路径有一个困难值,这个值越大表示越难走,现在有Q组询问,每组询问询问从点v开始只经过困难值小于等于x的路径所能到达的山峰中第k高的山峰,如果无解输出-1。 Input 第一行三个数N,M,Q。 第二行N个数,第i个数为h_i 接下来M行,每行3个数a b c,表示从a到b有一条困难值为c的双向路径。 接下来Q行,每行三个数v x k,表示一组询问。 Output 对于每组询问,输出一个整数表示答案。 Sample Input 10 11 4 1 2 3 4 5 6 7 8 9 10 1 4 4 2 5 3 9 8 2 7 8 10 7 1 4 6 7 1 6 4 8 2 1 5 10 8 10 3 4 7 3 4 6 1 5 2 1 5 6 1 5 8 8 9 2 Sample Output 6 1 -1 8 HINT 【数据范围】 N<=10^5, M,Q<=5*10^5,h_i,c,x<

【python 文件操作】python 文件操作

隐身守侯 提交于 2019-11-26 19:41:57
计算机由软件、系统、硬件组成。 python或其他语言编写的应用程序如果想要把数据永久保存下来,需要把数据写到硬盘上面,这就涉及到应用程序操作硬件,众所周知,程序无法直接操作硬件,这就用到了操作系统。系统 把复杂的硬件操作封装成简单的接口/应用程序使用,其中文件就是操作系统供给程序操作硬盘的虚拟概念,用户或应用程序操作文件,可以将数据永久保存下来 文件的操作步骤:   1、打开文件,并返回一个语句柄并赋值一个变量   2、通过返回的语句柄操作文件   3、关闭文件 # 打开文件,得到语句柄赋值给一个变量 f = open("test.txt", 'w', encoding = "utf-8") #对文件操作 f.write("11111") #关闭文件 f.close() #1、应用系统向操作系统发起一个open(。。。。) #2、操作系统打开该文件,并返回一个语句柄 #3、应用程序把语句柄赋值给一个变量 #打开一个文件包含两个资源:一个是操作系统级打开文件,另一个为应用程序变量,操作完一个文件后需要把与该文件这两部分资源全部回收, 第一种方法:f.close() 第二种方法:del f f.close(),一定要在del f 之前,否则系统打开的文件没有关闭,白白占用资源。python有垃圾自动回收机制,无需考虑del f 最好的方法可以使用with open(‘test.txt

深入浅出ES6教程『async函数』

北战南征 提交于 2019-11-26 17:10:21
大家好,本人名叫苏日俪格,大家叫我 (格格) 就好,在上一章节中我们学到了Symbol & generator的用法,下面我们一起来继续学习async函数: async [ə'zɪŋk]:这个单词看起来很怪异,它的原型是asynchrony,意为异步,一般单词按理说都能把音准读个大概,这个就... 与其同时呢,也有的人看了这个词想到了放在script标签里的异步脚本,但是此async非彼async,这个async是ES2017出来的,也是用来处理异步的,和ES6中的promise类似,nodeJs里面有一个典型的异步操作,下面用三种异步处理方式来读取文件readFile(): 1、promise来读取文件 1 // promise.js 2 const fs = require("fs"); 3 const read = function(fileName){ 4 return new Promise((resolve,reject)=>{ 5 fs.readFile(fileName,(err,data)=>{ 6 if (err) { 7 reject(err); 8 } else{ 9 resolve(data); 10 } 11 }); 12 }); 13 }; 14 read('1.txt').then(res=>{ 15 console.log(res.toString

python文件高级操作

扶醉桌前 提交于 2019-11-26 14:27:33
python文件高级操作和注意事项等等 文件过大保护 由于read是一次性读取文件所有的内容,如果文件100G,内存就会吃不消,所以推荐使用read(size)一次读取指定字节或者readline()每次读取一行等操作重复读,避免这种情况 同时读写操作 (不推荐爱使用) r+t: 可读、可写 w+t: 可写、可读 a+t: 可追加、可读 文件指针 首先硬盘上从来没有修改一说,硬盘上只有覆盖,即新内容覆盖新内容。 1.seek(offset,whence): offset代表文件指针的偏移量,偏移量的单位是字节个数 0相当于文件头开始;1相当于当前文件所在位置;2相当于文件末尾 文件内容123456789 with open("prize2.txt","r",encoding="GBK")as file: file.seek(4,0) print(file.read()) file.seek(2,0) print(file.read()) file.seek(0,2) print(file.read()) 56789 3456789 最后一次由于指针指到了最后,所以读取内容为空 2.tell(): 每次统计都是从文件开头到当前指针所在位置 with open("prize2.txt","r",encoding="GBK")as file: file.seek(4,0) print