- centos和ubuntu安装mysql教程
ForTodayzzZ
mysqlcentosubuntulinux
1,安装包准备cd/usr/local/mkdirmysqlcdmysql将压缩包复制进mysql文件夹下tar-xvfmysql-8.0.21-linux-glibc2.12-x86_64.tar.xzmvmysql-8.0.21-linux-glibc2.12-x86_64mysql8cd/usr/local/mysqlmkdirdata2,创建用户组以及用户密码(如果提示已存在则说明之前已创
- 安卓使用usb连接外设
wangDer_me
java
源码地址https://gitee.com/xzw421771880/android_usbAndroid_USB介绍安卓通过usb连接硬件设备软件架构AndroidStudio4.1.2使用说明权限在main添加判断是否支持usb.host(比如chromeOS系统的电脑可以正常运行apk,apk可以用蓝牙但是不支持usb.host)booleanret=getPackageManager().
- 解压/压缩initrd.img
李天琦
linux
红帽(RedHat)从EnterpriseServer6.2开始,启动镜像文件initrd.img开始改用xz工具进行压缩1.xz工具简介#manxz-z,--compressforcecompression-d,--decompress,--uncompress-t,--testtestcompressedfileintegrity-l,--listlistinformationabout.xz
- Java-生成二维码带多行文字-支持自动换行-支持tab缩进效果-支持高度自适应
江节胜-胜行全栈AI
Javajava
最新版本更新https://code.jiangjiesheng.cn/article/3521.样式1:2.1效果图:忽略红色,最外层的红色只是方便展示当前图片的宽高2.2代码packagecn.jiangjiesheng.utils;importcom.google.zxing.BarcodeFormat;importcom.google.zxing.EncodeHintType;import
- C# log4net 日志输出超详细
letisgo5
学习C#生涯c#asp.netlog4net
思路:1.安装插件:安装log4net2.使用配置:添加log4net配置信息3.输出日志文件格式:添加日志配置4.AssemblyInfo.cs中配置第一步:安装log4net第二步:在app.config添加log4net配置新增log4net.config配置文件,内容如下,与Program.cs同一目录即可。第三步:添加日志配置在文件Program.cs应用程序主入口加入:LogUtils
- OFDRW 核心功能开发文档
蓝田~
java开发语言设计模式抽象工厂模式
ofdrw库是一个用于操作OFD(OpenFixed-layoutDocument)格式文件的强大工具。本指南将详细介绍如何使用ofdrw库进行常见操作,如生成OFD文件、转换格式、设置文本和图片等。环境准备Maven依赖org.ofdrwofdrw-full2.3.5创建基础OFD文档protectedvoidgenerateOfd(StringfilePath){if(StringUtils.
- 安装docker
chuhx
docker容器运维
有两种方式安装docker,分别是在线安装和离线安装,如果服务器可以连接外网,推荐使用在线安装方式。1、在线安装此处以centos系统为例:yuminstall-yyum-utilsyum-config-manager--add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyuminstall-ydocker
- 将返回的json数据存储为json文件
小凳子在线
json
背景:想下载行政区域数据,网站:unpkg.com/province-city-china@8.5.8/dist/data.json返回json数据(代码由通义生成,此处仅作为记录)工具类://src/utils/downloadData.jsexportasyncfunctiondownloadData(url,filename){try{constresponse=awaitfetch(url
- LeetCode 热门100题-矩阵置零
Rverdoser
算法
在LeetCode的热门100题中,有一道题目是“矩阵置零”(MatrixZeroes),题目编号为135。该题要求给定一个mxn的矩阵,如果一个元素为0,则将其所在行和列中所有元素都设为0。你需要实现一个高效的算法来完成这个任务。解题思路为了解决这个问题,我们可以采用以下策略:标记法:遍历矩阵,对于每个为0的元素,我们标记其所在行和列的第一个元素(通常是左上角元素)。再次遍历矩阵,如果某个元素所
- springboot接入emqx的mqtt
renkai721
JAVAspringbootmqttemqx
需求背景物联网设备需要通过mqtt协议传输,这里记录一下,注意,这篇文章不能接入阿里云的mqtt,本人已经试过,会报错。开发教程1、EMQX安装部署--1安装必要的依赖sudoyuminstall-yyum-utilsdevice-mapper-persistent-datalvm2--2设置repo库sudoyum-config-manager--add-repohttps://repos.em
- vue vxe-table 实现财务记账凭证
vue.js
使用vxe-table实现财务记账凭证非常简单,实现在线实时编辑的记账凭证、自动合计金额等官网:https://vxetable.cn/新增保存财务主管:小徐记账:张三出纳:李四审核:老六import{ref,reactive,nextTick}from'vue'import{VxeUI}from'vxe-table'importXEUtilsfrom'xe-utils'constgridRef=
- 微信小程序中封装wx.request请求
陈龙龙的陈龙龙
微信小程序微信小程序小程序
1.在根目录下新建request/utils文件夹,并新建request.js/index.js文件代码如下(示例)://当页面有多个请求时,定义一个变量lettimes=0exportdefaultconstrequest=(params)=>{letbaseUrl="url地址";//有请求时自增一次times++;//请求数据时显示加载框wx.showLoading({title:'加载中'
- 基于 Rust 与 GBT32960 规范的编解码层
编码浪子
Rust学习rustjava开发语言
根据架构设计,实现编解码层的代码设计Cargo.toml加入二进制序列化支持#序列化支持...bincode="1.3"#添加二进制序列化支持bytes-utils="0.1"#添加字节处理工具开始编码错误处理(error.rs):定义了编解码过程中可能遇到的错误类型,使用枚举定义usethiserror::Error;#[derive(Error,Debug)]pubenumCodecError
- 图像识别技术与应用课后总结(14)
一元钱面包
人工智能
训练模型加载预处理数据集:可以借助PyTorch的数据处理工具,如torch.utils和torchvision等定义损失函数:既可以自定义,也能使用PyTorch内置的,像回归任务常用nn.MSELoss(),分类任务常用nn.BCELoss()定义优化方法:PyTorch的优化方法封装在torch.optim中,基于基类optim.Optimizer,能实现自定义优化步骤。常用的优化算法如梯度
- axios在vue3中的封装处理
每天都在努力学习的刘同学
jsajax
Axios封装处理本节目标:基于axios封装一个请求模块,调用接口时使用1)安装axiosnpmiaxios2)新建src/utils/request.js模块//封装全局request请求的方法importaxiosfrom'axios'//vueximportstorefrom'@/store'//导入路由实例importrouterfrom'@/router'//baseURL超时时间配置
- 商城项目秒杀业务秒杀业务完善和网关配置路由转发----商城项目
旧约Alatus
电商项目#Spring-Cloud框架#Spring-Boot框架springboot分布式springspringcloud后端mybatis微服务
packagecom.alatus.mall.seckill.app;importcom.alatus.common.utils.R;importcom.alatus.mall.seckill.service.SecKillService;importcom.alatus.mall.seckill.to.SecKillSkuRedisTo;importorg.springframework.bea
- Docker网络配置
滴滴滴~~~~~滴
docker
当我们安装docker后,它会自动创建3个网络,我们也可以通过dockernetwork命令来查看注意:这3个网络是被docker内建的。当我们运行一个容器需要制定的网络的时候,就可以通过--network参数来指定我们的容器连接到某一个被指定的网络1,bridge网络:默认连接docker0这个网桥(brctl命令在centos中可以使用,yuminstallbridge-utils来安装)启动
- 微服务即时通信系统---(七)文件管理子服务
YangZ123123
微服务即时通信系统微服务架构
目录功能设计模块划分业务接口/功能示意图服务实现流程服务代码实现封装文件操作模块(utils.hpp)获取唯一标识ID文件读操作文件写操作编写proto文件文件元信息文件管理proto单文件上传多文件上传单文件下载多文件下载RPC调用服务端创建子类(FileManageServiceImpl)完成RPC服务调用函数重写SingleFileUp(单文件上传)MultiFileUp(多文件上传)Sin
- vue+elementUI完成登陆所需的eclipse后台代码
涵ヂ
eclipse后台代码前言创建eclipse项目导入jar包新建四个Package包util包entity包dao包action包xml的配置前言为完成vue+elementUI登陆,所以创建一个eclipse项目创建eclipse项目导入jar包先创建一个j2eeVue项目,在一个导入jar包依赖新建四个Package包util包CommonUtilspackagecom.tang.vue.ut
- vue项目中使用scss
筱筱°
#scssvue.jsscss
vue项目中使用scss一、安装使用scss1.安装scss2.安装node-sass和sass-loader3.配置webpack.base.conf.js文件4.组件中使用scss二、设置scss变量1.使用sass-resources-loader实现全局变量2.新建一个public.scss文件3.根目录下找到build下的utils.js文件4.运行项目三、常用全局变量1.设置变量2.使
- Golang工具集-String工具,时间工具,http工具等
druidcaesa
Golanggolang
gotoolgotool是一个小而全的Golang工具集,主要是将日常开发中常用的到方法进行提炼集成,避免重复造轮子,提高工作效率,每一个方法都是作者经过工作经验,和从以往的项目中提炼出来的。2021-7-9更新内容详细使用请看文档添加文件IO操作工具FileUtils添加验证码生成工具CaptchaUtils添加文件目录压缩和解压缩工具ZipUtis字符串数组工具StrArrayUtils如何使
- Arcgis地图实战三:自定义导航功能的实现
博主逸尘
arcgisarcgis导航
文章目录1.最终效果预览2.计算两点之间的距离3.将点线画到地图上4.动态展示点线的变化5.动态画线6.动态画点1.最终效果预览2.计算两点之间的距离letdis=this.utilsTools.returnDisByCoorTrans(qdXYData,zdXYData,"4549")当距离小于我们在配置文件中预设置的值时调用我们自定义开发的导航,大于预设值则调用百度或者高德导航在utilsTo
- 【HarmonyOS】日历组件详细日界面组件
harmonyos-next
背景原生UI没有提供日历相关的组件,于是手撸了详细页面的日程。一开始打算使用list加tab的方式来实现切换的效果,但是list的切换是没有办法确定当前展示的索引的,所以没有办法实现日历内容动态添加等效果。在业内大佬的指导下,使用了两个swiper组件分别实现周和日的切换,实现了想要的效果,如下:代码DayViewPage/***周天数*/import{DateUtil}from'../Utils
- VB6网络通信软件开发,上位机开发,TCP网络通信,读写数据并处理,完整源码下载
luckyext
tcp/ip网络协议开发语言信息与通信物联网嵌入式硬件单片机
VB6网络通信软件开发,上位机开发,TCP网络通信,读写数据并处理,完整源码下载完整源码XZ网口四进四出主动上传版_VB源代码.rar下载链接:http://xzios.cn:86/WJGL/DownLoadDetial?Id=20在自动化、物联网以及工业控制行业中,网络通信技术非常重要,上位机开发是一项重要的技能。本文主要介绍使用VB6进行网络上位机开发客户端程序。1.在VB6项目中,引入win
- Linux下pdf去除白边(使用PDFCrop)
huangweibo的博客
疑难杂症linuxshell
安装PDFCrop:sudoaptinstalltexlive-extra-utils自动将周围白边去除pdfcropinput.pdfoutput.pdf指定留白宽度为左边10、上方20、右边10、下方25pdfcrop--margins"10201025"input.pdfoutput.pdf多PDF文档处理:用shell指令,如下:#!/bin/bash#自动切除所有PDF页面的白边forF
- 按键精灵和python功能对比_python 自动化对比返回结果
weixin_39884100
按键精灵和python功能对比
对比返回结果的code,不是很完善,存在问题,由于多行数据,只有1行可写入excel中:#-*-coding:utf-8-*-importhttplib2,xlrd,xlwt,time,jsonfromxlutils.copyimportcopydefTime():tim=time.strftime('%Y-%m-%d%H:%M:%S',time.localtime(time.time()))re
- 微信小程序保存图片到本地
吴冬雪~
微信小程序
utils/util文件constsaveImageLocal=function(url){wx.downloadFile({url,success(res){wx.saveImageToPhotosAlbum({filePath:res.tempFilePath,success(){wx.showToast({title:'保存成功!'})}})},fail(){wx.showToast({ti
- java使用word模板填充内容,再生成pdf
ByteX
工具类javapdf开发语言
1.word模板填充内容使用EasyPoi写入Word文档。importcn.afterturn.easypoi.word.WordExportUtil;importorg.apache.commons.io.FileUtils;importorg.apache.commons.io.IOUtils;importorg.apache.poi.xwpf.usermodel.XWPFDocument;
- PyTorch Lightning 的简单使用示例
idealmu
pytorch人工智能python
1.环境准备与依赖导入首先,代码需要导入了实现模型、数据处理和训练所需的各个包:importtorchfromtorchimportnnfromtorch.utils.dataimportDataLoader,random_splitfromtorchvision.datasetsimportMNISTfromtorchvision.transformsimportToTensorimportpy
- uni-app网络请求封装(完整版)
sebeefe
面试学习路线阿里巴巴vue.js前端javascriptintellij-idea架构
目录结构(根目录开始)├──api#所有请求│└──user.js#用户请求api├──store#全局store管理│└──modules#api模块││└──user.js#用户请求模块│└──index.js#状态管理初始化├──utils#全局公用方法│├──auth.js#本地缓存│├──env.js#公共参数│└──request.js#网络请求中间件└──main.js#入口文件加载
- Spring4.1新特性——综述
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
- Schema与数据类型优化
annan211
数据结构mysql
目前商城的数据库设计真是一塌糊涂,表堆叠让人不忍直视,无脑的架构师,说了也不听。
在数据库设计之初,就应该仔细揣摩可能会有哪些查询,有没有更复杂的查询,而不是仅仅突出
很表面的业务需求,这样做会让你的数据库性能成倍提高,当然,丑陋的架构师是不会这样去考虑问题的。
选择优化的数据类型
1 更小的通常更好
更小的数据类型通常更快,因为他们占用更少的磁盘、内存和cpu缓存,
- 第一节 HTML概要学习
chenke
htmlWebcss
第一节 HTML概要学习
1. 什么是HTML
HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,它规定了自己的语法规则,用来表示比“文本”更丰富的意义,比如图片,表格,链接等。浏览器(IE,FireFox等)软件知道HTML语言的语法,可以用来查看HTML文档。目前互联网上的绝大部分网页都是使用HTML编写的。
打开记事本 输入一下内
- MyEclipse里部分习惯的更改
Array_06
eclipse
继续补充中----------------------
1.更改自己合适快捷键windows-->prefences-->java-->editor-->Content Assist-->
Activation triggers for java的右侧“.”就可以改变常用的快捷键
选中 Text
- 近一个月的面试总结
cugfy
面试
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/46753275
前言
打算换个工作,近一个月面试了不少的公司,下面将一些面试经验和思考分享给大家。另外校招也快要开始了,为在校的学生提供一些经验供参考,希望都能找到满意的工作。
- HTML5一个小迷宫游戏
357029540
html5
通过《HTML5游戏开发》摘抄了一个小迷宫游戏,感觉还不错,可以画画,写字,把摘抄的代码放上来分享下,喜欢的同学可以拿来玩玩!
<html>
<head>
<title>创建运行迷宫</title>
<script type="text/javascript"
- 10步教你上传githib数据
张亚雄
git
官方的教学还有其他博客里教的都是给懂的人说得,对已我们这样对我大菜鸟只能这么来锻炼,下面先不玩什么深奥的,先暂时用着10步干净利索。等玩顺溜了再用其他的方法。
操作过程(查看本目录下有哪些文件NO.1)ls
(跳转到子目录NO.2)cd+空格+目录
(继续NO.3)ls
(匹配到子目录NO.4)cd+ 目录首写字母+tab键+(首写字母“直到你所用文件根就不再按TAB键了”)
(查看文件
- MongoDB常用操作命令大全
adminjun
mongodb操作命令
成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作。输入help可以看到基本操作命令,只是MongoDB没有创建数据库的命令,但有类似的命令 如:如果你想创建一个“myTest”的数据库,先运行use myTest命令,之后就做一些操作(如:db.createCollection('user')),这样就可以创建一个名叫“myTest”的数据库。
一
- bat调用jar包并传入多个参数
aijuans
下面的主程序是通过eclipse写的:
1.在Main函数接收bat文件传递的参数(String[] args)
如: String ip =args[0]; String user=args[1]; &nbs
- Java中对类的主动引用和被动引用
ayaoxinchao
java主动引用对类的引用被动引用类初始化
在Java代码中,有些类看上去初始化了,但其实没有。例如定义一定长度某一类型的数组,看上去数组中所有的元素已经被初始化,实际上一个都没有。对于类的初始化,虚拟机规范严格规定了只有对该类进行主动引用时,才会触发。而除此之外的所有引用方式称之为对类的被动引用,不会触发类的初始化。虚拟机规范严格地规定了有且仅有四种情况是对类的主动引用,即必须立即对类进行初始化。四种情况如下:1.遇到ne
- 导出数据库 提示 outfile disabled
BigBird2012
mysql
在windows控制台下,登陆mysql,备份数据库:
mysql>mysqldump -u root -p test test > D:\test.sql
使用命令 mysqldump 格式如下: mysqldump -u root -p *** DBNAME > E:\\test.sql。
注意:执行该命令的时候不要进入mysql的控制台再使用,这样会报
- Javascript 中的 && 和 ||
bijian1013
JavaScript&&||
准备两个对象用于下面的讨论
var alice = {
name: "alice",
toString: function () {
return this.name;
}
}
var smith = {
name: "smith",
- [Zookeeper学习笔记之四]Zookeeper Client Library会话重建
bit1129
zookeeper
为了说明问题,先来看个简单的示例代码:
package com.tom.zookeeper.book;
import com.tom.Host;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.Wat
- 【Scala十一】Scala核心五:case模式匹配
bit1129
scala
package spark.examples.scala.grammars.caseclasses
object CaseClass_Test00 {
def simpleMatch(arg: Any) = arg match {
case v: Int => "This is an Int"
case v: (Int, String)
- 运维的一些面试题
yuxianhua
linux
1、Linux挂载Winodws共享文件夹
mount -t cifs //1.1.1.254/ok /var/tmp/share/ -o username=administrator,password=yourpass
或
mount -t cifs -o username=xxx,password=xxxx //1.1.1.1/a /win
- Java lang包-Boolean
BrokenDreams
boolean
Boolean类是Java中基本类型boolean的包装类。这个类比较简单,直接看源代码吧。
public final class Boolean implements java.io.Serializable,
- 读《研磨设计模式》-代码笔记-命令模式-Command
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
/**
* GOF 在《设计模式》一书中阐述命令模式的意图:“将一个请求封装
- matlab下GPU编程笔记
cherishLC
matlab
不多说,直接上代码
gpuDevice % 查看系统中的gpu,,其中的DeviceSupported会给出matlab支持的GPU个数。
g=gpuDevice(1); %会清空 GPU 1中的所有数据,,将GPU1 设为当前GPU
reset(g) %也可以清空GPU中数据。
a=1;
a=gpuArray(a); %将a从CPU移到GPU中
onGP
- SVN安装过程
crabdave
SVN
SVN安装过程
subversion-1.6.12
./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --with-openssl=/
- sql 行列转换
daizj
sql行列转换行转列列转行
行转列的思想是通过case when 来实现
列转行的思想是通过union all 来实现
下面具体例子:
假设有张学生成绩表(tb)如下:
Name Subject Result
张三 语文 74
张三 数学 83
张三 物理 93
李四 语文 74
李四 数学 84
李四 物理 94
*/
/*
想变成
姓名 &
- MySQL--主从配置
dcj3sjt126com
mysql
linux下的mysql主从配置: 说明:由于MySQL不同版本之间的(二进制日志)binlog格式可能会不一样,因此最好的搭配组合是Master的MySQL版本和Slave的版本相同或者更低, Master的版本肯定不能高于Slave版本。(版本向下兼容)
mysql1 : 192.168.100.1 //master mysq
- 关于yii 数据库添加新字段之后model类的修改
dcj3sjt126com
Model
rules:
array('新字段','safe','on'=>'search')
1、array('新字段', 'safe')//这个如果是要用户输入的话,要加一下,
2、array('新字段', 'numerical'),//如果是数字的话
3、array('新字段', 'length', 'max'=>100),//如果是文本
1、2、3适当的最少要加一条,新字段才会被
- sublime text3 中文乱码解决
dyy_gusi
Sublime Text
sublime text3中文乱码解决
原因:缺少转换为UTF-8的插件
目的:安装ConvertToUTF8插件包
第一步:安装能自动安装插件的插件,百度“Codecs33”,然后按照步骤可以得到以下一段代码:
import urllib.request,os,hashlib; h = 'eb2297e1a458f27d836c04bb0cbaf282' + 'd0e7a30980927
- 概念了解:CGI,FastCGI,PHP-CGI与PHP-FPM
geeksun
PHP
CGI
CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。
CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等。 FastCGI
FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不
- Git push 报错 "error: failed to push some refs to " 解决
hongtoushizi
git
Git push 报错 "error: failed to push some refs to " .
此问题出现的原因是:由于远程仓库中代码版本与本地不一致冲突导致的。
由于我在第一次git pull --rebase 代码后,准备push的时候,有别人往线上又提交了代码。所以出现此问题。
解决方案:
1: git pull
2:
- 第四章 Lua模块开发
jinnianshilongnian
nginxlua
在实际开发中,不可能把所有代码写到一个大而全的lua文件中,需要进行分模块开发;而且模块化是高性能Lua应用的关键。使用require第一次导入模块后,所有Nginx 进程全局共享模块的数据和代码,每个Worker进程需要时会得到此模块的一个副本(Copy-On-Write),即模块可以认为是每Worker进程共享而不是每Nginx Server共享;另外注意之前我们使用init_by_lua中初
- java.lang.reflect.Proxy
liyonghui160com
1.简介
Proxy 提供用于创建动态代理类和实例的静态方法
(1)动态代理类的属性
代理类是公共的、最终的,而不是抽象的
未指定代理类的非限定名称。但是,以字符串 "$Proxy" 开头的类名空间应该为代理类保留
代理类扩展 java.lang.reflect.Proxy
代理类会按同一顺序准确地实现其创建时指定的接口
- Java中getResourceAsStream的用法
pda158
java
1.Java中的getResourceAsStream有以下几种: 1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。 2. Class.getClassLoader.get
- spring 包官方下载地址(非maven)
sinnk
spring
SPRING官方网站改版后,建议都是通过 Maven和Gradle下载,对不使用Maven和Gradle开发项目的,下载就非常麻烦,下给出Spring Framework jar官方直接下载路径:
http://repo.springsource.org/libs-release-local/org/springframework/spring/
s
- Oracle学习笔记(7) 开发PLSQL子程序和包
vipbooks
oraclesql编程
哈哈,清明节放假回去了一下,真是太好了,回家的感觉真好啊!现在又开始出差之旅了,又好久没有来了,今天继续Oracle的学习!
这是第七章的学习笔记,学习完第六章的动态SQL之后,开始要学习子程序和包的使用了……,希望大家能多给俺一些支持啊!
编程时使用的工具是PLSQL