- 2018-08-16【Swift 4.1】 关于Swift4.0以后调用MJExtension无法模型转换问题
码农happy
1、本人使用swift4.1,弄了一晚上才弄好,结果还是一个小问题真是尴尬,要在model中每个属性前面加上@objcimportUIKitclassUserModel:NSObject{@objcvardix=String()}letdic=["dix":"ffffff"]asNSDictionaryletmodel=UserModel.mj_object(withKeyValues:dic)!
- Alloc流程
福伟_Y
对象=[[XXXalloc]init];alloc作用:为对象申请内存空间,内存空间的大小受属性影响;init作用:将XXXclass与内存空间大小进行关联;ps:new函数基本上等同于[[XXXalloc]init],区别在于alloc会用到zone进行空间申请,会把对象分配到相邻的地址,提升性能。new里无法对对象进行initXXX等构造操作;通过对libobjc.A.dylib源码进行分析,
- Docker部署RocketMQ5.2.0集群
egzosn
docker容器运维
部署架构说明:(1)Producer:生产者(2)Consumer:消费者(3)NameServer:RockerMQ的注册中心,多个实例组成集群,但相互独立,没有信息交换。每个Broker都向所有NameServer实例注册。(4)Broker:负责存储消息、转发消息。部署模式RocketMQ作为消息中间件,其主要功能为消息的Publish/Subscribe。而Broker担任的消息转发和存储
- 假期学习-- iOS runtime的简单了解
菜不吱
ios学习cocoa
iOSRunTimeRunTime介绍RunTime简称运行时,顾名思义,就是oc在运行时侯的一些机制,比如最主要的消息机制;对于oc语言来说,它所调用的方法会在运行时才会决定,这就取决于RunTime的消息发送和消息转发机制;RunTime消息机制oc中调用任何方法,本质上都是发送消息,如:Person*p=[[Personalloc]init];[peat];[peat];最终在底层会转换为o
- ios c语言调用oc方法,ios-面试-OC 方法调用的过程原理
weixin_39615419
iosc语言调用oc方法
OC中的所有方法调用,最终都是转换成runtime中的一个C语言消息分发函数:objc_msgSend(消息接收者,方法名,参数。。。)这条消息发送之后,系统会在receiver的类对象的方法列表中找这个方法,如果没找到,再到receiver的父类的方法列表中找,如此直到根类至找到为止,如果还没有找到会报出错误。(缓存:方法第一次被调用之后,方法会被存入一张缓存表,之后如果再被调用时就直接从缓存表
- checkSelectorIsObservable case 验证
狼性刀锋
checkSelectorIsObservablecase验证要触发第三个case需满足以下条件delegatemethod返回值不为空但根据消息转发策略overrideopenfuncresponds(toaSelector:Selector!)->Bool{print("\(aSelector):responds=\(responds)")returnsuper.responds(to:aSe
- iOS之运行时机制(三)
奋拓达
前言Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一个方法的实现等这种特性意味着Objective-C不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。对于Objective-C来说,这个运行时系统就像一个操作系统一样:它让所有的工作可以正
- Runtime 基础
随心_追梦
参考文章:1、Objctive-CRuntime2、梧雨北辰3、jackyshan4、人仙儿a就是想放张图.jpg目录Runtime介绍Runtime消息传递Runtime消息转发Runtime之多继承的实现思路Runtime介绍因为Objc是一门动态语言,所以它总是想办法把一些决定工作从编译连接推迟到运行时。也就是说只有编译器是不够的,还需要一个运行时系统(runtimesystem)来执行编译
- 《编写高质量iOS与OS X代码的52个有效方法》10-13
小如99
第10条:在既有类中使用关联对象存放自定义数据可以给某对象关联许多其他对象,这些对象通过“键”来区分。存储对象值的时候可以致命“存储策略”,用以维护相应的“内存管理语义”。存储策略由名为objc_AssociationPolicy的枚举所定义,如下存储策略.png管理关联对象voidobjc_setAssociatedObject(idobject,constvoid*key,idvalue,ob
- 类的加载
深圳_你要的昵称
前言书接上回dyld&objc的关联,我们知道了系统在objc库的_objc_init函数中注册了关于镜像文件读取、加载和移除的回调函数,然后在dyld链接的过程去触发这些回调,告知objc库去加载类信息等一系列操作。今天我们大致分析下类的加载的具体流程。1_objc_init大致流程先看源码:void_objc_init(void){staticboolinitialized=false;if(
- __weak如何实现对象值自动设置为nil的
Sweet丶
详情请查看:http://blog.csdn.net/hherima/article/details/38661803总结如下:weak的功能:*若使用__weak修饰符的变量引用对象被废弃时,则将nil赋值给该变量*使用附有__weak修饰符的变量,就是使用注册到autoreleasepool的对象ARC对象释放的过程:1.objc_release2.因为引用计数为0所以执行dealloc3._
- 涨姿势了 SpringBoot+Kafka将实战讲解到极致,你悟了吗?
技术布道师
javakafkaspringbootjava分布式spring
目录一、环境准备二、生产者实践普通生产者带回调的生产者自定义分区器kafka事务提交三、消费者实践简单消费指定topic、partition、offset消费批量消费监听异常处理器消息过滤器消息转发定时启动/停止监听器一、环境准备1、在项目中连接kafka因为是外网,首先要开放kafka配置文件中的如下配置(其中IP为公网IP),advertised.listeners=PLAINTEXT://1
- 使用Netty实现 WebSocket至Socket的消息转发服务
Leon-aHandler
websocket服务器网络协议nettyspringboot
业务需求场景:通过网页发送指令至硬件设备,并在连接过程中能够接收来自硬件设备的实时参数信息中转服务器逻辑:服务器内实现了一个websocket服务端和一个socket客户端,设置全局保存的ChannelGroup进行消息的转发。项目框架使用的是Springboot代码地址:https://github.com/Leon-aHandler/Netty-relayDemo
- IM项目:进阶版即时通讯项目---文件存储和消息转发
海绵宝宝de派小星
实战项目项目
文章目录文件传输服务基本功能模块划分流程图实现逻辑代码实现消息转发功能设计模块划分获取转发目标和消息处理代码实现文件传输服务基本功能文件的上传文件的下载模块划分基于gflags进行参数和配置文件的解析基于spdlog进行日志输出基于etcd进行服务注册基于brpc进行RPC服务器远程调用基于文件流操作进行读写的封装流程图实现逻辑单个文件上传获取文件的元数据分配文件的ID以文件ID为文件名打开文件,
- 1.消息转发机制
hie
消息转发机制:当对象调用某个方法时,该方法没有实现,系统会通过消息转发来查找方法的实现。下图为消息转发查找过程:查找顺序优先级:resolveInstanceMethod>forwardingTargetForSelector>forwardInvocation。只有优先级高的方法未能处理或未定义时,系统才会从优先级低的方法开始查找。首先,定义一个Person类,方法run并且.m文件中未实现该方
- 一篇关于ios sdk的新手引导
那年我们十八
1.首先创建一个sdk工程2.然后新建一个类用来管理sdk方法然后在这个类里面导入你想给被人调用的公开类3.在这个类申明一个方法让别人调用在.m里面实现以下这个方法4.然后导出framework5.然后写一个demo导入framework测试一下下面说一下一般会遇到的问题吧1.常见的other设置为-ObjC2.使用模拟器遇到的问题如果是上面这种问题解决方法:使用真机调试,不要用模拟器3.还有一种
- IOS面试题object-c 121-125
️ 邪神
IOS面试题ios面试题objective-c
121.简述Category在编译过后,是在什么时机与原有的类合并到一起的??1.程序启动后,通过编译之后,Runtime会进行初始化,调用_objc_init。2.然后会map_images。3.接下来调用map_images_nolock。4.再然后就是read_images,这个方法会读取所有的类的相关信息。5.最后是调用reMethodizeClass:,这个方法是重新方法化的意思。6.在
- Session底层机制分析
On!y°念伱
java开发语言
浏览器对服务器发起请求后,调用getSession方法,该方法内部发生了一系列的操作首先会解析请求体中(request对象)是否携带了Jsessionid(该ID与Cookie关联)1.如果存在该Jsessionid,则将该Jsessionid当作key去Session的HashMap集合对象中查询Objcet对象(value)1-1如果存在,则直接获取该Objcet对象进行操作1-2如果不存在,
- 《编写高质量iOS与OS X代码的52个有效方法》14-21
小如99
第14条:理解“类对象”的用意方法签名:概念需要弄清楚Class.pngsuper_class指针确立了继承关系,而isa指针描述了实例所属的类。描述OC对象所使用的数据结构定义:typedefstructobjc_object{Classis;}*idClass对象的定义:Class对象结构.png对象比较.png三个分支都走进去了,由此可见类对象是“单例”(singleton),在应用程序范围
- 分类、类扩展与继承
wps_pro
在OC中,扩展一个类的方式有两种,继承和分类。分类(Category)概念分类(Category),是OC中特有的语法,它是表示一个指向分类的结构体的指针。Category是表示一个指向分类的结构体的指针,其定义如下:typedefstructobjc_category*Category;structobjc_category{char*category_nameOBJC2_UNAVAILABLE
- IOS开发进阶学习资料(提升必备)
the_cleaner
ios
最近整理了下IOS学习资料,包含了入门、进阶、性能优化、面试和学习书籍,算是比较全面的,在这里分享给大家,希望对大家有用。先晒出IOS学习路线图,大家照着图谱修炼。学习社区objc中国learnIOSRayWenderlichNSHipsterWeiWang唐巧的博客cocoachina入门系列Casa的PThread多线程课程从零开发一款ios手把手带你构建类今日头条的AppSwift编程从入门
- 最新IOS开发学习资料整理(进阶必备)
henhenha
ios
最近整理了下IOS学习资料,包含了入门、进阶、性能优化、面试和学习书籍,算是比较全面的,在这里分享给大家,希望对大家有用。先晒出IOS学习路线图,大家照着图谱修炼。学习社区objc中国learnIOSRayWenderlichNSHipsterWeiWang唐巧的博客cocoachina入门系列Casa的PThread多线程课程从零开发一款ios手把手带你构建类今日头条的AppSwift编程从入门
- iOS类结构分析
大橘猪猪侠
本文主要来探索一下iOS中类的结构,作为一个iOS开发者,我们有必要去了解关于类的底层知识。下面开始我们的探索。既然要探索类的结构,那么首先需要去苹果官网下载我们所需要的源码,下面我将提供我使用的可编译的objc-781源码。下面通过创建Person,teacher(继承于Person)先来探索一下每个对象的isa。代码并不多,0x0000000ffffffff8ULL是isa_t中的ISA_BI
- iOS底层探索--isa位域
spyn_n
我们知道isa在OC的底层随处可见,非常经典的一个图是isa的走位图,可查看这篇文章:iOS底层探索--OC对象的本质&类的底层结构iOS底层探索--类底层分析这部分的前期回顾目录一、isa二、位域typedefstructobjc_class*Class;typedefstructobjc_object*id;@interfaceObject{Classisa;}@interfaceNSObje
- 2018-01-25
杨赛大兄弟
XCode中添加第三方库报错ParseIssue刚在工程里引用了一个新类库,再次编译的时候弹出一堆编译错误:发现原来是新加载的类库中有c语言编写的文件(xxx.c),错误正是这种混编的情况造成的。下面提供一种解决方法:在PrefixHeader.pch文件中用#ifdef__OBJC__#endif把所有头文件扩起来就可以了,如下图。
- Method Swizzling处理数组越界
程序员都是傻子呀
staticdispatch_once_tonceToken;dispatch_once(&onceToken,^{[objc_getClass("__NSArrayI")swizzleMethod:@selector(objectAtIndex:)withMethod:@selector(cf_objectAtIndex:)];});
- iOS 底层面试题
木扬音
【面试-1】通过Asssociate方法关联的对象,需要在dealloc中释放当对象释放时,系统会自动调用deallocdealloc释放步骤1、C++函数释放:objc_cxxDestruct2、移除关联属性:_object_remove_assocations3、将弱引用自动设置nil:weak_clear_no_lock(&table.weak_table,(id)this)4、引用计数清空
- objc_msgSend 动态查找
Jonnyking
1.objc_class的chache找2.在对象的方法列表里找3.去父类指针指向的对象中去执行1.24.直到根类也没找到就消息转发5.调用resolveInstanceMethod让类添加这个方法的实现6.forwardingTargetForSelector让对象执行这个函数7.forwordInvocation更灵活的处理函数调用8.都没找到doesNotRecognizeSelector
- OC 对象本质
曼谷第一开膛手
一个NSObject对象占用多少内存?对象的isa指针指向哪里?OC的类信息存放在哪里?intmain(intargc,char*argv[]){@autoreleasepool{NSObject*objc=[[NSObjectalloc]init];return0;}}第一个问题就是转化为objc这个指针指向的内存区域有多大。为了搞清这个问题,我们要搞清楚NSObject在内存是怎么布局的,他的
- 不安全的weak变量
Colla
对于存在多线程释放并且并发访问的对象,不建议使用weak修饰或访问。因为weak的底层实现并不完全是线程安全,否则较容易导致over-release而crash。一、问题每次版本升级初期总是有少部分会遇到如下的crash请在这里填写图片描述虽然量很少,但总是有也很是烦人。没办法只能看下到底是怎么回事。二、问题描述很明显,这是一个over-release的问题;挂在objc_release里;业务代
- 解线性方程组
qiuwanchi
package gaodai.matrix;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Sc
- 在mysql内部存储代码
annan211
性能mysql存储过程触发器
在mysql内部存储代码
在mysql内部存储代码,既有优点也有缺点,而且有人倡导有人反对。
先看优点:
1 她在服务器内部执行,离数据最近,另外在服务器上执行还可以节省带宽和网络延迟。
2 这是一种代码重用。可以方便的统一业务规则,保证某些行为的一致性,所以也可以提供一定的安全性。
3 可以简化代码的维护和版本更新。
4 可以帮助提升安全,比如提供更细
- Android使用Asynchronous Http Client完成登录保存cookie的问题
hotsunshine
android
Asynchronous Http Client是android中非常好的异步请求工具
除了异步之外还有很多封装比如json的处理,cookie的处理
引用
Persistent Cookie Storage with PersistentCookieStore
This library also includes a PersistentCookieStore whi
- java面试题
Array_06
java面试
java面试题
第一,谈谈final, finally, finalize的区别。
final-修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能
- 网站加速
oloz
网站加速
前序:本人菜鸟,此文研究总结来源于互联网上的资料,大牛请勿喷!本人虚心学习,多指教.
1、减小网页体积的大小,尽量采用div+css模式,尽量避免复杂的页面结构,能简约就简约。
2、采用Gzip对网页进行压缩;
GZIP最早由Jean-loup Gailly和Mark Adler创建,用于UNⅨ系统的文件压缩。我们在Linux中经常会用到后缀为.gz
- 正确书写单例模式
随意而生
java 设计模式 单例
单例模式算是设计模式中最容易理解,也是最容易手写代码的模式了吧。但是其中的坑却不少,所以也常作为面试题来考。本文主要对几种单例写法的整理,并分析其优缺点。很多都是一些老生常谈的问题,但如果你不知道如何创建一个线程安全的单例,不知道什么是双检锁,那这篇文章可能会帮助到你。
懒汉式,线程不安全
当被问到要实现一个单例模式时,很多人的第一反应是写出如下的代码,包括教科书上也是这样
- 单例模式
香水浓
java
懒汉 调用getInstance方法时实例化
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static synchronized Singleton getInstance() {
if(null == ins
- 安装Apache问题:系统找不到指定的文件 No installed service named "Apache2"
AdyZhang
apachehttp server
安装Apache问题:系统找不到指定的文件 No installed service named "Apache2"
每次到这一步都很小心防它的端口冲突问题,结果,特意留出来的80端口就是不能用,烦。
解决方法确保几处:
1、停止IIS启动
2、把端口80改成其它 (譬如90,800,,,什么数字都好)
3、防火墙(关掉试试)
在运行处输入 cmd 回车,转到apa
- 如何在android 文件选择器中选择多个图片或者视频?
aijuans
android
我的android app有这样的需求,在进行照片和视频上传的时候,需要一次性的从照片/视频库选择多条进行上传
但是android原生态的sdk中,只能一个一个的进行选择和上传。
我想知道是否有其他的android上传库可以解决这个问题,提供一个多选的功能,可以使checkbox之类的,一次选择多个 处理方法
官方的图片选择器(但是不支持所有版本的androi,只支持API Level
- mysql中查询生日提醒的日期相关的sql
baalwolf
mysql
SELECT sysid,user_name,birthday,listid,userhead_50,CONCAT(YEAR(CURDATE()),DATE_FORMAT(birthday,'-%m-%d')),CURDATE(), dayofyear( CONCAT(YEAR(CURDATE()),DATE_FORMAT(birthday,'-%m-%d')))-dayofyear(
- MongoDB索引文件破坏后导致查询错误的问题
BigBird2012
mongodb
问题描述:
MongoDB在非正常情况下关闭时,可能会导致索引文件破坏,造成数据在更新时没有反映到索引上。
解决方案:
使用脚本,重建MongoDB所有表的索引。
var names = db.getCollectionNames();
for( var i in names ){
var name = names[i];
print(name);
- Javascript Promise
bijian1013
JavaScriptPromise
Parse JavaScript SDK现在提供了支持大多数异步方法的兼容jquery的Promises模式,那么这意味着什么呢,读完下文你就了解了。
一.认识Promises
“Promises”代表着在javascript程序里下一个伟大的范式,但是理解他们为什么如此伟大不是件简
- [Zookeeper学习笔记九]Zookeeper源代码分析之Zookeeper构造过程
bit1129
zookeeper
Zookeeper重载了几个构造函数,其中构造者可以提供参数最多,可定制性最多的构造函数是
public ZooKeeper(String connectString, int sessionTimeout, Watcher watcher, long sessionId, byte[] sessionPasswd, boolea
- 【Java命令三】jstack
bit1129
jstack
jstack是用于获得当前运行的Java程序所有的线程的运行情况(thread dump),不同于jmap用于获得memory dump
[hadoop@hadoop sbin]$ jstack
Usage:
jstack [-l] <pid>
(to connect to running process)
jstack -F
- jboss 5.1启停脚本 动静分离部署
ronin47
以前启动jboss,往各种xml配置文件,现只要运行一句脚本即可。start nohup sh /**/run.sh -c servicename -b ip -g clustername -u broatcast jboss.messaging.ServerPeerID=int -Djboss.service.binding.set=p
- UI之如何打磨设计能力?
brotherlamp
UIui教程ui自学ui资料ui视频
在越来越拥挤的初创企业世界里,视觉设计的重要性往往可以与杀手级用户体验比肩。在许多情况下,尤其对于 Web 初创企业而言,这两者都是不可或缺的。前不久我们在《右脑革命:别学编程了,学艺术吧》中也曾发出过重视设计的呼吁。如何才能提高初创企业的设计能力呢?以下是 9 位创始人的体会。
1.找到自己的方式
如果你是设计师,要想提高技能可以去设计博客和展示好设计的网站如D-lists或
- 三色旗算法
bylijinnan
java算法
import java.util.Arrays;
/**
问题:
假设有一条绳子,上面有红、白、蓝三种颜色的旗子,起初绳子上的旗子颜色并没有顺序,
您希望将之分类,并排列为蓝、白、红的顺序,要如何移动次数才会最少,注意您只能在绳
子上进行这个动作,而且一次只能调换两个旗子。
网上的解法大多类似:
在一条绳子上移动,在程式中也就意味只能使用一个阵列,而不使用其它的阵列来
- 警告:No configuration found for the specified action: \'s
chiangfai
configuration
1.index.jsp页面form标签未指定namespace属性。
<!--index.jsp代码-->
<%@taglib prefix="s" uri="/struts-tags"%>
...
<s:form action="submit" method="post"&g
- redis -- hash_max_zipmap_entries设置过大有问题
chenchao051
redishash
使用redis时为了使用hash追求更高的内存使用率,我们一般都用hash结构,并且有时候会把hash_max_zipmap_entries这个值设置的很大,很多资料也推荐设置到1000,默认设置为了512,但是这里有个坑
#define ZIPMAP_BIGLEN 254
#define ZIPMAP_END 255
/* Return th
- select into outfile access deny问题
daizj
mysqltxt导出数据到文件
本文转自:http://hatemysql.com/2010/06/29/select-into-outfile-access-deny%E9%97%AE%E9%A2%98/
为应用建立了rnd的帐号,专门为他们查询线上数据库用的,当然,只有他们上了生产网络以后才能连上数据库,安全方面我们还是很注意的,呵呵。
授权的语句如下:
grant select on armory.* to rn
- phpexcel导出excel表简单入门示例
dcj3sjt126com
PHPExcelphpexcel
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
if (PHP_SAPI == 'cli')
die('This example should only be run from a Web Brows
- 美国电影超短200句
dcj3sjt126com
电影
1. I see. 我明白了。2. I quit! 我不干了!3. Let go! 放手!4. Me too. 我也是。5. My god! 天哪!6. No way! 不行!7. Come on. 来吧(赶快)8. Hold on. 等一等。9. I agree。 我同意。10. Not bad. 还不错。11. Not yet. 还没。12. See you. 再见。13. Shut up!
- Java访问远程服务
dyy_gusi
httpclientwebservicegetpost
随着webService的崛起,我们开始中会越来越多的使用到访问远程webService服务。当然对于不同的webService框架一般都有自己的client包供使用,但是如果使用webService框架自己的client包,那么必然需要在自己的代码中引入它的包,如果同时调运了多个不同框架的webService,那么就需要同时引入多个不同的clien
- Maven的settings.xml配置
geeksun
settings.xml
settings.xml是Maven的配置文件,下面解释一下其中的配置含义:
settings.xml存在于两个地方:
1.安装的地方:$M2_HOME/conf/settings.xml
2.用户的目录:${user.home}/.m2/settings.xml
前者又被叫做全局配置,后者被称为用户配置。如果两者都存在,它们的内容将被合并,并且用户范围的settings.xml优先。
- ubuntu的init与系统服务设置
hongtoushizi
ubuntu
转载自:
http://iysm.net/?p=178 init
Init是位于/sbin/init的一个程序,它是在linux下,在系统启动过程中,初始化所有的设备驱动程序和数据结构等之后,由内核启动的一个用户级程序,并由此init程序进而完成系统的启动过程。
ubuntu与传统的linux略有不同,使用upstart完成系统的启动,但表面上仍维持init程序的形式。
运行
- 跟我学Nginx+Lua开发目录贴
jinnianshilongnian
nginxlua
使用Nginx+Lua开发近一年的时间,学习和实践了一些Nginx+Lua开发的架构,为了让更多人使用Nginx+Lua架构开发,利用春节期间总结了一份基本的学习教程,希望对大家有用。也欢迎谈探讨学习一些经验。
目录
第一章 安装Nginx+Lua开发环境
第二章 Nginx+Lua开发入门
第三章 Redis/SSDB+Twemproxy安装与使用
第四章 L
- php位运算符注意事项
home198979
位运算PHP&
$a = $b = $c = 0;
$a & $b = 1;
$b | $c = 1
问a,b,c最终为多少?
当看到这题时,我犯了一个低级错误,误 以为位运算符会改变变量的值。所以得出结果是1 1 0
但是位运算符是不会改变变量的值的,例如:
$a=1;$b=2;
$a&$b;
这样a,b的值不会有任何改变
- Linux shell数组建立和使用技巧
pda158
linux
1.数组定义 [chengmo@centos5 ~]$ a=(1 2 3 4 5) [chengmo@centos5 ~]$ echo $a 1 一对括号表示是数组,数组元素用“空格”符号分割开。
2.数组读取与赋值 得到长度: [chengmo@centos5 ~]$ echo ${#a[@]} 5 用${#数组名[@或
- hotspot源码(JDK7)
ol_beta
javaHotSpotjvm
源码结构图,方便理解:
├─agent Serviceab
- Oracle基本事务和ForAll执行批量DML练习
vipbooks
oraclesql
基本事务的使用:
从账户一的余额中转100到账户二的余额中去,如果账户二不存在或账户一中的余额不足100则整笔交易回滚
select * from account;
-- 创建一张账户表
create table account(
-- 账户ID
id number(3) not null,
-- 账户名称
nam