当前位置: 首页 > news >正文

Oracle 常用命令大全

数据库
----数据库启动 & 关闭
  • 启动数据库
SQL> startup nomount;
SQL> alter database mount;
SQL> alter database open;
  • 关闭数据库
SQL> shutdown immediate;

更多内容请参考:Oracle数据库启动和关闭

----连接数据库
  • 登陆普通用户
SQL>sqlplus 用户名/密码@实例名//登陆普通用户,@实例名可省略

例:

SQL>sqlplus scott/tiger; //登陆普通用户 scott
  • 登陆sys帐户
SQL>sqlplus / as sysdba; //登陆 sys 帐户
SQL>sqlplus sys as sysdba;//登陆 sys 帐户

说明:
sys :系统管理员,拥有最高权限
system :本地管理员,次高权限
scott :普通用户,密码默认为tiger,默认未解锁

----查看数据库名
SELECT NAME FROM V$DATABASE;
----查看实例
  • Linux下查看oracle上已启动实例
$ ps -ef|grep smon
  • 查看当前启动的实例
SQL>select * from global_name;
  • 查看默认实例
$ echo $ORACLE_SID
  • 切换实例
$ export ORACLE_SID=实例名 
用户
----创建用户 :create user 用户名 identified by 密码;

例:

create user user1 identified by 123;
----重置密码:alter user 用户名 identified by 密码;

例:

alter user user1 identified by 456;
----账户解锁:alter user 用户名 account unlock;

例:

alter user user1 account unlock;
----账号赋权:
grant create session to zhangsan; //授予zhangsan用户创建session的权限,即登陆权限
grant unlimited session to zhangsan;//授予zhangsan用户使用表空间的权限
grant create table to zhangsan;//授予创建表的权限
grante drop table to zhangsan; //授予删除表的权限
grant insert table to zhangsan;//插入表的权限
grant update table to zhangsan;//修改表的权限
grant alert all table to zhangsan;//授予zhangsan用户alert任意表的权限
grant all to public; //授予所有权限(all)给所有用户(public)

oracle对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权

grant select on tablename to zhangsan;//授予zhangsan用户查看指定表的权限
grant drop on tablename to zhangsan;//授予删除表的权限
grant insert on tablename to zhangsan;//授予插入的权限
grant update on tablename to zhangsan;//授予修改指定表的权限
grant insert(id) on tablename to zhangsan;//授予对指定表特定字段的插入权限
grant update(id) on tablename to zhangsan;//授予对指定表特定字段的修改权限
grant role1 to test;//授予角色role1(role1为已存在的角色)
----账户撤销权限
基本语法同 grant,关键字为 revoke
----删除用户:

例:

drop user zhangsan; //仅删除用户
drop user zhangsan cascade; //删除用户的同时,删除此用户名下所有的对象
----查询所有用户(DBA账号执行):
select * from all_users;
----查看当前用户连接:
select * from v$Session;
----查看用户角色:
SELECT * FROM USER_ROLE_PRIVS;
----查看当前用户权限:
select * from session_privs;
select * from user_sys_privs;//查看当前用户所有权限
select * from user_tab_privs;//查看所用用户对表的权限
----查看所有用户所拥有的角色(DBA账号执行):
SELECT * FROM DBA_ROLE_PRIVS;
----创建用户并指定表空间
create user 用户名 identified by 密码 
default tablespace 默认表空间名
temporary tablespace 默认临时表空间名;
----查看当前用户的缺省表空间
select username,default_tablespace from user_users;
视图
----创建视图
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name[(alias[, alias]...)]AS subquery[WITH CHECK OPTION [CONSTRAINT constraint]][WITH READ ONLY]

参数说明:
* OR REPLACE :若所创建的试图已经存在,则替换旧视图;

* FORCE:不管基表是否存在ORACLE都会自动创建该视图(即使基表不存在,也可以创建该视图,但是该视图不能正常使用,当基表创建成功后,视图才能正常使用);

* NOFORCE :如果基表不存在,无法创建视图,该项是默认选项(只有基表都存在ORACLE才会创建该视图)。

* alias:为视图产生的列定义的别名;

* subquery :一条完整的SELECT语句,可以在该语句中定义别名;

* WITH CHECK OPTION :插入或修改的数据行必须满足视图定义的约束;

* WITH READ ONLY :默认可以通过视图对基表执行增删改操作,但是有很多在基表上的限制(比如:基表中某列不能为空,但是该列没有出现在视图中,则不能通过视图执行insert操作),WITH READ ONLY说明视图是只读视图,不能通过该视图进行增删改操作。现实开发中,基本上不通过视图对表中的数据进行增删改操作。

例:基于EMP表和DEPT表创建视图

CREATE OR REPLACE VIEW EMPDETAIL AS 
SELECT EMPNO,ENAME,JOB,HIREDATE,EMP.DEPTNO,DNAME
FROM EMP JOIN DEPT ON EMP.DEPTNO=DEPT.DEPTNO
WITH READ ONLY
----删除视图
DROP VIEW schema_name.view_name 
[CASCADE CONSTRAINT];

参数说明 :

* schema_name :指定包含视图的模式的名称。如果跳过模式名称,则Oracle假定该视图位于当前用户模式中。
* view_name:指定要删除的视图的名称。如果一个视图被其他视图,物化视图或同义词所引用,Oracle将把这些对象标记为INVALID,但不会将其移除。
* CASCADE CONSTRAINT :如果视图有任何约束,则必须指定CASCADE CONSTRAINT子句以删除引用视图中的主键和唯一键的所有参照完整性约束。如果不这样做,存在这样的约束时,DROP VIEW语句将会失败。

角色
----创建角色:create role 角色名;

例:

create role myrole;
----给角色赋权:

例:

grant select on table1 to role1;//给角色 role1 赋予查询表 table1 的权限
----将角色赋予某用户:grant 角色名 to 用户名;

例:

grant role1 to zhangsan;//role1为已存在的角色
----删除角色:drop role 角色名;

例:

drop role myrole;
----查看角色权限:

例:

select * from dba_role_privs  where grantee ='role1'
select * from dba_role_privs  where grantee like'%role1%'
表空间
----创建表空间
create tablespace 表空间名 datafile '/oracle/.../数据文件名.dbf' size 100m autoextend on next 100m maxsize 400m extent management local;
----删除表空间
drop tablespace 表空间名 ;
----查看数据库的表空间使用状态
select a.tablespace_name tnm,b.FILE_PATH,--b.autoextensible,b.cnt,trunc(a.bytes/1024/1024/1024) total_G,trunc(a.bytes/1024/1024/1024/b.cnt) avg_G,trunc(c.bytes/1024/1024/1024) free_G,trunc((a.bytes-c.bytes)*100/a.bytes,2) used--,(c.bytes*100)/a.bytes "% FREE"from SYS.SM$TS_AVAIL A,SYS.SM$TS_FREE C,(select tablespace_name,substr(file_name,1,instr(file_name,'/',2)) FILE_PATH, --f.autoextensible,count(*) cnt from dba_data_files  f group by tablespace_name,substr(file_name,1,instr(file_name,'/',2))--,autoextensible) bWHERE  A.TABLESPACE_NAME=C.TABLESPACE_NAME(+)AND A.TABLESPACE_NAME=B.TABLESPACE_NAME--   AND A.TABLESPACE_NAME IN (select distinct tablespace_name from dba_tablespaces)order by  avg_g desc;
----查看表空间的datafile
select * from dba_data_files where tablespace_name like '表空间名' order by 1 desc;
----表空间扩容
  • 添加数据文件,以达扩大表空间
ALTER TABLESPACE 表空间名 ADD DATAFILE '/oradata/.../数据文件名.dbf' 
SIZE 4000M AUTOEXTEND ON NEXT 100M;
  • resize 数据文件方式,以达扩大表空间
alter database datafile  FILE_ID resize BYTES字段目标值;

例:

alter database datafile  179 resize 8194304000;
----查看表空间使用量(全库 )
select SUM(a.BYTES/1024/1024) "Size" from dba_segments a
----查看特定数据库的表空间使用率
select SUM(a.BYTES/1024/1024) "Size" from dba_segments a where a.owner = '数据库名'; 
----查看 temp tablespace(临时表空间)
select t.tablespace_name,t.contents,t.* from dba_tablespaces t
----查看 temp tablespace 的 datafile
select * from dba_temp_files
----添加temp tablespace的datafile
alter tablespace TEMP add tempfile '/oradata/.../数据文件名.dbf' size 2000m autoextend on next 100m maxsize unlimited;
----创建新表
  • 直接创建
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
  • 根据已有旧表创建
create table tab_new like tab_old //创建与旧表结构完全一致的新表
create table tab_new as select col1,col2… from tab_old definition only//选择旧表的某些字段创建新表
----表结构
  • 修改表结构

* 增加一列

Alter table 表名 add column 列名;

* 添加主键(Create/Recreate primary)

alter table 表名 add constraint 主键名 primary key(字段名);

* 删除表主键

ALTER TABLE 表名 DROP CONSTRAINT 主键名;

* 添加索引(Create/Recreate indexes)

create unique index 索引名 on 表名 (字段名);

* 删除索引

drop index schema.indexname;

----查询表数据

select * from tabname (where 字句);
----表数据
  • 插入数据
insert into table1(field1,field2) values(value1,value2)
  • 更新数据
update table1 set field1=value1 where 条件;
  • 删除表中数据:
delete from table_name where子句;//删除筛选数据
 truncate table table_name;//删除表中所有数据
----删除表
drop table table_name;
----索引
  • 根据索引名,查询表索引字段
select * from user_ind_columns where index_name='索引名';
  • 根据表名,查询一张表的索引
select * from user_indexes where table_name='表名';
  • 通过列名查询表名
select table_name from user_tab_columns where column_name='列名';
系统监控
----查询正在执行的sql语句及执行该语句的用户
SELECT b.sid oracleID,b.username 登录Oracle用户名,b.serial#,spid 操作系统ID,paddr,sql_text 正在执行的SQL,
b.machine 计算机名 
v$sql.sql_id,
s.terminal,
s.program,
from v$process a, v$session b, v$sqlarea c 
WHERE a.addr = b.paddrAND b.sql_hash_value = c.hash_value; 

或者

select a.username, a.sid,b.SQL_TEXT, b.SQL_FULLTEXT
from v$session a, v$sqlarea b where a.sql_address = b.address 
----锁(lock)
  • 查看当前被锁对象
SELECT l.session_id sid,s.serial#,l.locked_mode 锁模式,l.oracle_username 登录用户,l.os_user_name 登录机器用户名,s.machine 机器名,s.terminal 终端用户名,o.object_name 被锁对象名,s.logon_time 登录数据库时间 FROM v$locked_object l, all_objects o, v$session s WHERE l.object_id = o.object_idAND l.session_id = s.sid ORDER BY sid, s.serial#;
  • 查看死锁语句
select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID

select * from v$lock where block=1
  • kill死锁
alter system kill session 'SID,serial#';//实际操作时,将SID和serial#替换成实际数值

例:

ALTER SYSTEM KILL SESSION '2210,2769';

补:操作系统级别杀掉进程:

#top
#kill -9 SPID 
  • 查询DML死锁会话sid
select sid,blocking_session,LOGON_TIME,sql_id,status,event,seconds_in_wait,state,BLOCKING_SESSION_STATUSfrom v$sessionwhere event like 'enq%'and state = 'WAITING'and BLOCKING_SESSION_STATUS = 'VALID'

select(select username from v$session where sid=a.sid) blocker,a.sid,a.id1,a.id2,' is blocking ' "IS BLOCKING",(select username from v$session where sid=b.sid) blockee,b.sidfrom v$lock a, v$lock bwhere a.block = 1and b.request > 0and a.id1 = b.id1and a.id2 = b.id2;
  • 查询锁住的DDL对象
select d.session_id, s.SERIAL#, d.namefrom dba_ddl_locks d, v$session swhere d.owner = 'zhangsan'and d.SESSION_ID = s.sid
  • 查询等待事件
select event,sum(decode(wait_time, 0, 0, 1)) "之前等待次数",sum(decode(wait_time, 0, 1, 0)) "正在等待次数",count(*)from v$session_waitgroup by eventorder by 4 desc
  • 根据 sid 查 spid 或根据 spid 查 sid
select s.sid, s.serial#, s.LOGON_TIME, s.machine, p.spid, p.terminalfrom v$session s, v$process pwhere s.paddr = p.addrand s.sid = xxor p.spid = yy
  • 根据sid查看具体的sql语句
select username, sql_text, machine, osuserfrom v$session a, v$sqltext_with_newlines bwhere DECODE(a.sql_hash_value, 0, prev_hash_value, sql_hash_value) =b.hash_valueand a.sid = &sidorder by piece;
  • 根据spid查询具体的sql语句
select ss.SID,ss.SERIAL#,ss.LOGON_TIME,pr.SPID,ss.action,sa.SQL_FULLTEXT,ss.machine,ss.TERMINAL,ss.PROGRAM,ss.USERNAME,ss.STATUS,ss.OSUSER,ss.last_call_etfrom v$process pr, v$session ss, v$sqlarea sawhere ss.status = 'ACTIVE'and ss.username is not nulland pr.ADDR = ss.PADDRand ss.SQL_ADDRESS = sa.ADDRESSand ss.SQL_HASH_VALUE = sa.HASH_VALUEand pr.spid = xx
  • 查询执行过的sql语句及执行该语句的用户
select a.USERNAME 登录Oracle用户名,a.MACHINE 计算机名,SQL_TEXT,b.FIRST_LOAD_TIME,b.SQL_FULLTEXTfrom v$sqlarea b, v$session awhere a.sql_hash_value = b.hash_valueand b.FIRST_LOAD_TIME between '2020-06-01/09:00:00' and'2020-06-30/15:39:00'order by b.FIRST_LOAD_TIME desc;
  • 查看正在执行sql的发起者的发放程序
SELECT OSUSER 电脑登录身份,PROGRAM 发起请求的程序,USERNAME 登录系统的用户名,SCHEMANAME,B.Cpu_Time 花费cpu的时间,STATUS,B.SQL_TEXT 执行的sql FROM V$SESSION A LEFT JOIN V$SQL B ON A.SQL_ADDRESS = B.ADDRESSAND A.SQL_HASH_VALUE = B.HASH_VALUE ORDER BY b.cpu_time DESC
  • 查看占io较大的正在运行的session
SELECT se.sid,se.serial#,pr.SPID,se.username,se.status,se.terminal,se.program,se.MODULE,se.sql_address,st.event,st. p1text,si.physical_reads,si.block_changesFROM v$session se, v$session_wait st, v$sess_io si, v$process prWHERE st.sid = se.sidAND st. sid = si.sidAND se.PADDR = pr.ADDRAND se.sid > 6AND st. wait_time = 0AND st.event NOT LIKE '%SQL%'ORDER BY physical_reads DESC
----监听
  • 查看监听状态
lsnrctl status
  • 启动监听器
lsnrctl start
  • 关闭监听器
lsnrctl stop
----防火墙
  • 查看防火墙状态
#firewall-cmd --state
  • 关闭防火墙
#systemctl stop firewalld.service
  • 启动防火墙
#systemctl start firewalld.service

本文转自 https://blog.csdn.net/Ruishine/article/details/113178508,如有侵权,请联系删除。

相关文章:

Oracle 常用命令大全

数据库 ----数据库启动 & 关闭 启动数据库 SQL> startup nomount; SQL> alter database mount; SQL> alter database open;关闭数据库 SQL> shutdown immediate;更多内容请参考:Oracle数据库启动和关闭 ----连接数据库 登陆普通用…...

Mysql 开启ssl连接

本文是针对Mysql 5.7版本以上数据库 1. 检查当前SSL / TLS状态 我们将使用-h指定IPv4本地环回接口,以强制客户端与TCP连接,而不是使用本地套接字文件。 这将允许我们检查TCP连接的SSL状态: mysql -u root -p -h 127.0.0.1键入以下内容以显示SSL / TLS变量的状态: SHOW …...

Java Stream流对List集合进行分页

有一种情况,我们有时不便在数据库层面进行分页。我们知道Mybatis的startPage();方法也是对数据库进行limit操作,有没有一种方式,只对List集合进行分页呢? 当然有,我们可以使用Stream流的方式对List集合进行操作&#…...

Docker(二)、linux环境Docker的部署以及构建镜像

linux环境Docker的部署以及构建镜像 一、docker部署1、快速部署常用的命令:1.1、demo-部署tomcat1.2、tomcat容器内部结构1.2.1、每个tomcat容器,都包含三个组件1.2.2、在容器内部执行命令 1.3、容器生命周期 二、Dockerfile构建镜像1、demo-Dockerfile自…...

GEE错误——Image.select: Pattern ‘MDF‘ did not match any bands

问题 ImageCollection (Error) Collection query aborted after accumulating over 5000 elements. ImageCollection (268 elements) Mean DOD550: Layer error: ImageCollection.reduce: Error in map(ID=MCD19A2_A2001001_h15v17_061_2022161165308_01): Image.select: Patte…...

前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS基础(四)

开始吧&#xff0c;做时间的主人&#xff01; 把时间分给睡眠&#xff0c;分给书籍&#xff0c;分给运动&#xff0c; 分给花鸟树木和山川湖海&#xff0c; 分给你对这个世界的热爱&#xff0c; 而不是将自己浪费在无聊的人和事上。 思维导图 函数 为什么需要函数 <!DO…...

mysql超级聚合with rollup

超级聚合&#xff0c;是在group by的基础上&#xff0c;再次进行聚合。 它再次聚合的列&#xff0c;是select中没有用到聚合函数的列。 文章目录 例子1解释例子2表以及数据 例子1 mysql> SELECT year, country, product, SUM(profit) AS profitFROM salesGROUP BY year, c…...

浅谈电动汽车充电桩设计与应用研究

安科瑞 华楠 摘要&#xff1a;目前&#xff0c;随着我国社会经济的快速发展&#xff0c;我国的各个领域都取得了突破性的发展&#xff0c;尤其是在电动汽车充电桩的设计方法&#xff0c;新型的电动汽车充电桩设计已经广泛的受到了人民群众的青睐与认可&#xff0c;而这种发展前…...

tensorflow Windows安装说明

TensorFlow官网教程 Tensorflow 2.10是最后一个在本地windows上支持GPU的版本。从2.11版本开始&#xff0c;需要在windows WLS2&#xff08;适用于 Linux 的 Windows 子系统&#xff09;上安装才能使用GPU。 在anaconda shell控制台中,切换至虚拟环境, 安装TensorFlow 这是用…...

【Leetcode热题】打卡 day11——20(更新至11)

1、合并两个有序链表 - 链表 暴力 / 递归 21. 合并两个有序链表 &#xff08;1&#xff09;暴力 class Solution {public ListNode mergeTwoLists(ListNode l1, ListNode l2) {ListNode dummynew ListNode();ListNode curdummy;while(l1!null&&l2!null){if(l1.val&l…...

linux使用操作[3]

文章目录 版权声明环境变量$符号自行设置环境变量 上传、下载rz、sz命令 压缩、解压tar命令压缩tar解压zip 命令压缩文件unzip 命令解压文件 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明&#xff0c;所有版权属于黑马程序员或相关权利人…...

梦想让生活得以忍受-寄语机器视觉工程师

我&#xff0c;曾梦想梦想走天涯&#xff0c;看看这世界的繁华&#xff0c;年少的心总有些轻狂&#xff0c;如今四海为家。 大家都听过这首歌&#xff0c;迎来很多打工人的共鸣&#xff0c;著名作家海明威曾说&#xff0c;“一个人可以被打败&#xff0c;但不可以被毁灭”&…...

linux 设置打开文件数

可以使用下面的文件进行设置 /etc/security/limits.d/90-nproc.conf 先来看/etc/security/limits.d/90-nproc.conf 配置文件&#xff1a; [root ~]# cat /etc/security/limits.d/90-nproc.conf # Default limit for number of users processes to prevent # accidental fork…...

MySQL基础篇-约束

目录 1.约束概述 2.分类 3.测试user表的约束情况 主键约束 非空约束及唯一约束 检查约束 默认约束 4.外键约束 外键约束的语法 外键约束的删除/更新行为 小结 1.约束概述 MySQL约束&#xff08;Constraints&#xff09;是用于确保表中数据完整性和一致性的规则。它们定…...

系统工程知识体系(SEBoK)

介绍 《系统工程知识体系》&#xff08;SEBoK&#xff09;是以一种理念设计的&#xff0c;即如果工程师有一个实时更新、实用的指南&#xff0c;他们就能做出更优秀的工作。如果你以前没有使用过这个资源&#xff0c;也没有关系&#xff1b;因为已经有一个完整的指南供你参考&…...

Spring DI (Dependency Injection)

What Is DI? 当一个类需要依赖另一个对象&#xff0c;把另一个对象实例化之后注入给这个对象的过程我们称之为DI # Create an object dependency in traditional programming public class Store {private Item item;public Store() {item new ItemImpl1(); } }# Using …...

Spring Boot : ORM 框架 JPA 与连接池 Hikari

数据库方面我们选用 Mysql &#xff0c; Spring Boot 提供了直接使用 JDBC 的方式连接数据库&#xff0c;毕竟使用 JDBC 并不是很方便&#xff0c;需要我们自己写更多的代码才能使用&#xff0c;一般而言在 Spring Boot 中我们常用的 ORM 框架有 JPA 和 Mybaties &#xff0c;本…...

Wireshark抓包分析ICMP协议

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 分析目的&#xff1a;分析ICMP协议的数据格式、报文…...

C++——安装环境、工具

一、进入官网下载 Visual Studio 下载地址&#xff1a;https://visualstudio.microsoft.com/zh-hans/ 二、安装 三、安装完后如果出现window SDK 下载失败&#xff0c;可自行下载&#xff0c;如果没有请跳过这一步 Window SDK 官方地址&#xff1a;https://developer.microsoft…...

征稿啦!第 18 届「中国 Linux 内核开发者大会」重磅启动

第十八届中国 Linux 内核开发者大会&#xff08;CLK &#xff09;如期而至。CLK 以“自由、协作、创新”为理念&#xff0c;以开源技术的推广和普及为使命&#xff0c;旨在促进 Linux 内核开发爱好者相互交流&#xff0c;共同进步。 经过组委会公开征集承办单位和各意向承办单…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...