【小练习】交互式网格自定义增删改错误记录及解决(进行中)
经过之前的学习,已经能创建简单的交互式网格并设置自定义增删改按钮,但是实现上还是存在一些问题,来完善优化一下。
首先是修改,正常修改都会弹出修改框,里面是之前存储的信息,根据实际需要对其进行修改,如何获取对应id的数据就成了问题
获取修改数据
我设想通过列表动态获取
页共享组件→值列表→列表→创建列表→类型 动态
在数据库查询一下
但是出错了
begin
select ID,
NAME,
GENDER,
AGE,
ADDRESS,
SKILL
from ROLE_INTRODUCTION2 where ID =:P6_ROW_ID;
end;
给了一个SQL查询
SQL 查询
输入返回 SQL 查询以生成动态列表的列表 SQL 查询列表或函数。单击示例可查看示例 SQL 查询。
SQL 查询语法:
select level, labelValue label, [targetValue] target, [is_current] is_current_list_entry,[imageValue] image, [imageAttributeValue] image_attribute,[imageAltValue] image_alt_attribute,[attribute1] attribute1,[attribute2] attribute2,[attribute3] attribute3,[attribute4] attribute4,[attribute5] attribute5,[attribute6] attribute6,[attribute7] attribute7,[attribute8] attribute8,[attribute9] attribute9,[attribute10] attribute10 from ... where ... order by ...
返回 SQL 查询的函数的语法:
RETURN 'select level, labelValue label,'|| ' [targetValue] target,'|| ' [is_current] is_current_list_entry,'|| ' [imageValue] image,'|| ' [imageAttributeValue] image_attribute, '|| ' [imageAltValue] image_alt_attribute,'|| ' [attribute1] attribute1,'|| ' [attribute2] attribute2,'|| ' [attribute3] attribute3,'|| ' [attribute4] attribute4,'|| ' [attribute5] attribute5,'|| ' [attribute6] attribute6,'|| ' [attribute7] attribute7,'|| ' [attribute8] attribute8,'|| ' [attribute9] attribute9,'|| ' [attribute10] attribute10'|| 'from ...'|| 'where ...'|| 'order by ...';
注: is_current 列可以设置为以下三个值之一: 'YES', 'NO' 或 NULL。如果设置为 NULL, 则列表条目的货币将基于列表条目的目标页。
重新写一个
RETURN 'select level, labelValue label,' ||
' [targetValue] target,'||
' [is_current] is_current_list_entry,'||
' [imageValue] image,'||
' [imageAttributeValue] image_attribute, '||
' [imageAltValue] image_alt_attribute,'||
' [name] name,'||
' [gender] gender,'||
' [age] age,'||
' [address] address,'||
' [skill] skill,'||
'from ROLE_INTRODUCTION2'||
'where id =: P6_ROW_ID';
【错误记录】ORA-20001: Query must begin with SELECT or WITH
出现报错
- ORA-20001: Query must begin with SELECT or WITH
对于源类型“返回SQL查询的函数体”,当区域保存在构建器中时,顶点引擎将验证pl/sql块,并检查是否返回有效的查询。因此,如果pl/sql块中有绑定变量(如:P1_DATE
),这些变量将无法正确绑定(因为这是在构建器中而不是运行时),并且该块将无法编译。要解决这个问题,请确保所有绑定变量在函数体中都有默认值。
再来一次
select name,
gender,
age,
address,
skill
from ROLE_INTRODUCTION2
where id =: P6_ROW_ID;
验证成功!
选择区域模板
创建动态列表成功!设置模板选项
配置 功能:主题样式选择
应用上去直接给我寄了
呈现区域 "test1" 时出错。
请与您的应用程序管理员联系。
技术信息(仅提供给开发人员使用)
- is_internal_error: true
- apex_error_code: APEX.REGION.UNHANDLED_ERROR
- ora_sqlcode: -1008
- ora_sqlerrm: ORA-01008: 并非所有变量都已绑定 ORA-06512: 在 "APEX_220200.WWV_FLOW_PAGE", line 1932 ORA-06512: 在 "APEX_220200.WWV_FLOW_DISP_PAGE_PLUGS", line 1655 ORA-06512: 在 "APEX_220200.WWV_FLOW_REGION_LIST", line 901 ORA-06512: 在 "APEX_220200.WWV_FLOW_DYNAMIC_EXEC", line 1337 ORA-06512: 在 "SYS.DBMS_SYS_SQL", line 2120 ORA-06512: 在 "SYS.WWV_DBMS_SQL_APEX_220200", line 837 ORA-06512: 在 "APEX_220200.WWV_FLOW_DYNAMIC_EXEC", line 1332 ORA-06512: 在 "APEX_220200.WWV_FLOW_REGION_LIST", line 849 ORA-06512: 在 "APEX_220200.WWV_FLOW_REGION_LIST", line 1049 ORA-06512: 在 "APEX_220200.WWV_FLOW_REGION_LIST", line 1124 ORA-06512: 在 "APEX_220200.WWV_FLOW_REGION_LIST", line 1286 ORA-06512: 在 "APEX_220200.WWV_FLOW_REGION_NATIVE", line 2404 ORA-06512: 在 "APEX_220200.WWV_FLOW_PLUGIN", line 2766 ORA-06512: 在 "APEX_220200.WWV_FLOW_DISP_PAGE_PLUGS", line 1023 ORA-06512: 在 "APEX_220200.WWV_FLOW_DISP_PAGE_PLUGS", line 1584 ORA-06512: 在 "APEX_220200.WWV_FLOW_PAGE", line 1880
- component.type: APEX_APPLICATION_PAGES
- component.id: 273000000006
- component.name: test1
- error_backtrace:
ORA-06512: 在 "APEX_220200.WWV_FLOW_PAGE", line 1932 ORA-06512: 在 "APEX_220200.WWV_FLOW_DISP_PAGE_PLUGS", line 1655 ORA-06512: 在 "APEX_220200.WWV_FLOW_REGION_LIST", line 901 ORA-06512: 在 "APEX_220200.WWV_FLOW_DYNAMIC_EXEC", line 1337 ORA-06512: 在 "SYS.DBMS_SYS_SQL", line 2120 ORA-06512: 在 "SYS.WWV_DBMS_SQL_APEX_220200", line 837 ORA-06512: 在 "APEX_220200.WWV_FLOW_DYNAMIC_EXEC", line 1332 ORA-06512: 在 "APEX_220200.WWV_FLOW_REGION_LIST", line 849 ORA-06512: 在 "APEX_220200.WWV_FLOW_REGION_LIST", line 1049 ORA-06512: 在 "APEX_220200.WWV_FLOW_REGION_LIST", line 1124 ORA-06512: 在 "APEX_220200.WWV_FLOW_REGION_LIST", line 1286 ORA-06512: 在 "APEX_220200.WWV_FLOW_REGION_NATIVE", line 2404 ORA-06512: 在 "APEX_220200.WWV_FLOW_PLUGIN", line 2766 ORA-06512: 在 "APEX_220200.WWV_FLOW_DISP_PAGE_PLUGS", line 1023 ORA-06512: 在 "APEX_220200.WWV_FLOW_DISP_PAGE_PLUGS", line 1584 ORA-06512: 在 "APEX_220200.WWV_FLOW_PAGE", line 1880
啊???
删掉刚刚创建的列表就好了,好家伙ORZ
下午在边做边学习的过程中有了一些灵感:
修改按钮点击后会获取原先数据,数据是从哪里来的?
是在test1的修改按钮→点击修改→执行服务器端的代码 中来的
beginapex_util.set_session_state('P3_ROW_ID', :P6_ROW_ID);
end;
【错误记录】ORA-20987- 意外错误, 在应用程序级别或页级别上未找到项名。
改写之后运行报错:
Ajax 调用为Execute Server-Side Code返回了服务器错误ORA-20987: APEX - ERR-1002 在应用程序 "273" 中未找到项 "P3_ROW_ID" 的项 ID。 - 意外错误, 在应用程序级别或页级别上未找到项名。
解决方法:
破案了
p3的字段是P3_ID,不是P3_ROW_ID
改过来
还是有错,查了修改缺少返回值
P6test1修改行为操作未定义
修改按钮→行为 操作 由动态操作定义→执行验证
【错误记录】ORA-01008: 并非所有变量都已绑定
好像可以获取原值了,但是有新的错误
Ajax 调用为Execute Server-Side Code返回了服务器错误ORA-01008: 并非所有变量都已绑定。
解决方法:
输入项和返回项要和pl/sql代码上的数据一一对应
创建部门用户权限应用表
1.创建数据表
1.1部门表DEPT_TEST_WXX
1.2创建用户表USER_TEST_WXX
1.3创建DEPT_USER_TEST_WXX
中间表DEPT_USER_TEST_WXX
为中间表添加外键(至于删除时是级联还是设为空值看实际需要)
创建结果
2.创建交互式网格
2.1部门信息表P26(带表单p27) P30(单网格 表单p32)
2.2 用户信息表P28(带表单p29) P33(单网格 表单p3)
初始界面
3,相关操作
3.1设置部门名 标识→类型 链接→链接 目标32(部门表单)
和主菜单设置跳转链接
3.2 创建项(后续数据用得到,行选中、查看是否成功新增删除……)
动态操作,新建 行选中,执行JavaScript语句
var map = new Map();map.set('P30_DEPT_ID', 'DEPT_ID');
utils.set(this.data, map);console.log($v('P30_DEPT_ID'));
提示为完成无法保存
原来是这里没选择
3.3 还有依次设置部门对应表单修改动态操作
3.3.1执行JavaScript代码(验证必填项都填了)
3.3.2执行服务器端代码
declarev_row_count number(10) := 0;beginupdate DEPT_TEST_WXX set NAME = :P32_NAME, DESCRIBE =: P32_DESCRIBE,UPDATE_DATE = sysdate where DEPT_ID = :P32_DEPT_ID;v_row_count := SQL%ROWCOUNT;apex_util.set_session_state('P32_ROW_COUNT',v_row_count);
end;
没有的项需要手动创建
【错误记录】提示ORA_01008:并非所有变量都已绑定
原因及解决方法:
创建时间和更新时间是隐藏项
3.3.3执行JavaScript代码(返回修改成功/失败提示)
if ($v('P32_ROW_COUNT') > 0) {alert('修改成功');return true;
} else {alert('修改失败');return false;
}
3.3.4关闭对话框
部门表单新增同理
服务器端代码
declarev_row_count number(10) := 0;
beginINSERT INTO DEPT_TEST_WXX(NAME,DESCRIBE,CREATE_DATE,UPDATE_DATE)VALUES(:P32_NAME,:P32_DESCRIBE,sysdate,sysdate);v_row_count := SQL%ROWCOUNT;apex_util.set_session_state('P32_ROW_COUNT',v_row_count);
end;
设置完记得保存,转回部门信息表P30
记得设置删改要有ID传入
△修改要先选中内容,所以涉及一个判断,判断选中的id不为空,判断一次只能选中一个id进行修改,返回真假两种情况,对应情况进行不同操作或提示
客户端条件→类型 JavaScript表达式
!utils.checkNull($v('P30_DEPT_ID')) && $v('P30_DEPT_ID').split(',').length == 1
假操作
if (utils.checkNull($v('P30_DEPT_ID'))) {alert('请选择修改的数据');return false;
}$v('P30_DEPT_ID').split(',');if ($v('P30_DEPT_ID').split(',').length > 1) {alert('只能修改单条数据');return false;
}
删除前应该有确认提示
删除前验证
if (utils.checkNull($v('P30_DEPT_ID'))) {alert('请选择要删除的数据');return false;
} else {if (confirm('确定要删除选中的数据吗?')) {return true;} else {return false;}
}
删除请求后台
DECLAREV_COUNT NUMBER(18):=0;
BEGIN-- 删除关联的部门用户数据DELETE DEPT_USER_TEST_WXX WHERE DEPT_ID IN(SELECT * FROM TABLE(SPLITSTR(:P30_DEPT_ID,',')));--删除部门数据DELETE DEPT_TEST_WXX WHERE DEPT_ID IN(SELECT * FROM TABLE(SPLITSTR(:P30_DEPT_ID,',')));V_COUNT:= SQL%ROWCOUNT;APEX_UTIL.SET_SESSION_STATE('P30_ROW_COUNT',V_COUNT);
END;
删除后验证
if($v('P30_ROW_COUNT')>0){alert('删除成功');
}else{alert('删除失败'); return false;
}
刷新
受影响的元素→ 类型 区域 →区域 部门信息表
往里面添加数据受阻
原来是处理没有添加,添加处理(点击新增转到表单页)
【错误记录】ORA-01400: 无法将 NULL 插入
点击新增,报错
Ajax 调用为Execute Server-Side Code返回了服务器错误ORA-01400: 无法将 NULL 插入 ("YWJA"."DEPT_TEST_WXX"."NAME")。
问题分析:
1、数据库中字段值为"非空"类型,而传入的参数为null。
解决办法:
"非空"类型的字段,参数必须传值。
看一眼SQL
CREATE TABLE "DEPT_TEST_WXX" ( "DEPT_ID" NUMBER NOT NULL ENABLE, "NAME" NVARCHAR2(64) NOT NULL ENABLE, "DESCRIBE" NVARCHAR2(256), "CREATE_DATE" DATE, "UPDATE_DATE" DATE, CONSTRAINT "DEPT_TEST_WXX_PK" PRIMARY KEY ("DEPT_ID")USING INDEX ENABLE)
/CREATE OR REPLACE EDITIONABLE TRIGGER "BI_DEPT_TEST_WXX" before insert on "DEPT_TEST_WXX" for each row
begin if :NEW."DEPT_ID" is null then select "DEPT_TEST_WXX_SEQ1".nextval into :NEW."DEPT_ID" from sys.dual; end if;
end; /
ALTER TRIGGER "BI_DEPT_TEST_WXX" ENABLE
/
可以看到新建的触发器假设NEW.DEPT_ID为空则从已有数据库中获取.nextval
删除触发器试试
还是不行
再试试方案二
在sql语句上加条件
原先的sql语句
CREATE TABLE "DEPT_TEST_WXX" ( "DEPT_ID" NUMBER NOT NULL ENABLE, "NAME" NVARCHAR2(64) NOT NULL ENABLE, "DESCRIBE" NVARCHAR2(256), "CREATE_DATE" DATE, "UPDATE_DATE" DATE, CONSTRAINT "DEPT_TEST_WXX_PK" PRIMARY KEY ("DEPT_ID")USING INDEX ENABLE)
/
后来的
在ID后加标红部分
CREATE TABLE "APEX_TEST_DEPT" ( "DEPT_ID" NUMBER GENERATED BY DEFAULT AS IDENTITY MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE NOKEEP NOSCALE NOT NULL ENABLE, "NAME" NVARCHAR2(64) NOT NULL ENABLE,
"CREATED_BY" NUMBER(20,0) DEFAULT 1,
"CREATION_DATE" DATE DEFAULT sysdate,
"UPDATED_BY" NUMBER(20,0) DEFAULT 1,
"UPDATE_DATE" DATE DEFAULT sysdate,
"REMARK" NVARCHAR2(512),
"PARENT_ID" NUMBER, PRIMARY KEY ("DEPT_ID") USING INDEX ENABLE )
/
改不了一点,受不了辣,重新写一个P37
创建交互式网格
测试一下新增
可以新增,那可以着手自定义增删改了。
先对列进行一些简单的设置
创建按钮和隐藏项
设置动态操作
处理(页面从交互式网格跳转到表单)
!!!要设置项
还有P32的表单,修改这里一定要记得设提交项和返回项啊啊啊!!!!
表单修改完数据之后也要记得设置返回项
新增也一样
【错误记录】
测试出了新的问题
因为一直出错Ajax 调用为Execute Server-Side Code返回了服务器错误ORA-01400: 无法将 NULL 插入 ("YWJA"."DEPT_TEST_WXX"."DEPT_ID")。ora-01400 无法将NULL插入 ID 解决方法https://www.cnblogs.com/newlooker/p/3631177.html为了解决
ORA-01400: 无法将 NULL 插入
这个问题很多时候是没有为该表建立触发器导致的,或者是序列没建立。于是建了个触发器,
-- 建立触发器
CREATE OR REPLACE TRIGGER "TEST_TRI" BEFOREINSERT ON DEPT_TEST_WXXFOR EACH ROW
BEGINSELECT test_seq.NEXTVAL INTO :NEW.ID FROM DUAL;
END;
结果新的问题出现了
ORA-04098: 触发器
Ajax 调用为Execute Server-Side Code返回了服务器错误ORA-04098: 触发器 'YWJA.TEST_TRI' 无效且未通过重新验证。
自定义sql
select DEPT_ID,NAME,DESCRIBE,CREATE_DATE,UPDATE_DATE
from DEPT_TEST_WXX
运行还是无法将null插入数据表中
主打一个乱七八糟
创建用户信息表
需要手动创建项——所属部门,设置源→类型 数据库列→数据库列 DEPT_NAME→数据类型 varchar2
【问题记录】选中修改后不会自动刷新返回用户界面,需要手动关闭
【问题记录】每次关闭表单后回到首页而网格不是对应交互式网格
解决方法:
表单关闭后跳转的页码,这里对应其交互式网格
【错误记录】会话状态保护违规: 这可能是因为手动变更了受保护的页项 P37_ROW_COUNT。如果您不确定导致此错误的原因, 请与应用程序管理员联系, 以获取帮助。
满头问号???
部门信息表
将部门 源 类型从“表/视图”改成“SQL查询”
自动生成
select DEPT_ID,NAME,DESCRIBE,CREATE_DATE,UPDATE_DATEfrom DEPT_TEST_WXX2
选中部门要进行修改,跳转到警告页面
ORA-01403: 未找到任何数据
与您的应用程序管理员联系。 通过调试 ID "2128080" 提供有关此意外事件的详细信息。
技术信息(仅提供给开发人员使用)
- is_internal_error: false
- ora_sqlcode: 100
- ora_sqlerrm: ORA-01403: 未找到任何数据 ORA-06512: 在 "APEX_220200.WWV_FLOW_FORM_REGION", line 2299 ORA-06512: 在 "APEX_220200.WWV_FLOW_FORM_REGION", line 2260 ORA-06512: 在 "APEX_220200.WWV_FLOW_FORM_REGION", line 2341 ORA-06512: 在 "APEX_220200.WWV_FLOW_PROCESS_NATIVE", line 1332 ORA-06512: 在 "APEX_220200.WWV_FLOW_PLUGIN", line 3163
- component.type: APEX_APPLICATION_PAGE_PROCESS
- component.id: 201420217511504299
- component.name: 初始化表单 部门信息表_表单
- association_type: REGION
- region_id: 201414172851504304
- error_backtrace:
ORA-06512: 在 "APEX_220200.WWV_FLOW_FORM_REGION", line 2299 ORA-06512: 在 "APEX_220200.WWV_FLOW_FORM_REGION", line 2260 ORA-06512: 在 "APEX_220200.WWV_FLOW_FORM_REGION", line 2341 ORA-06512: 在 "APEX_220200.WWV_FLOW_PROCESS_NATIVE", line 1332 ORA-06512: 在 "APEX_220200.WWV_FLOW_PLUGIN", line 3163 ORA-06512: 在 "APEX_220200.WWV_FLOW_PROCESS", line 170
报错
将P37设置的 处理→目标类型→PL/SQL Code改为Region Source
begincase :APEX$ROW_STATUSwhen 'C' theninsert into DEPT_TEST_WXX2 ( name,describe,create_date,update_date )values ( :NAME, :DESCRIBE, sysdate, sysdate )returning dept_id into :P37_DEPT_ID;when 'U' thenupdate DEPT_TEST_WXX2set name = :NAME,describe = :DESCRIBE,create_date = sysdate, update_date = sysdate where dept_id = :P37_DEPT_ID;when 'D' thendelete DEPT_TEST_WXX2where dept_id = :P37_DEPT_ID;end case;-- WRITE_LOG( 'P6', 'debug' , 'APEX$ROW_STATUS' || :APEX$ROW_STATUS , -1 , 1 );
end;
【错误记录】ORA-01400: 无法将 NULL 插入 ("YWJA"."DEPT_TEST_WXX2"."DEPT_ID")。
关于报错可以f12查看错误来源,
可以看到设置的输入项和输出项,同时数据data显示undefined
写了一个左连接在用户查询
SELECT ATU.USER_ID AS USER_ID,ATU.NAME as NAME,ATU.GENDER AS GENDER,ATU.REMARK AS REMARK,ATU.UPDATE_TIME,
listagg(ATD.NAME,',') within GROUP (order by ATD.NAME) AS DEPT_NAME
FROM USER_TEST_WXX ATULEFT JOIN DEPT_USER_TEST_WXX ATDU ON ATU.USER_ID = ATDU.USER_IDLEFT JOIN DEPT_TEST_WXX2 ATD ON ATDU.DEPT_ID = ATD.DEPT_ID
group by ATU.USER_ID,ATU.NAME,ATU.GENDER,ATU.REMARK,ATU.UPDATE_TIME
相关文章:

【小练习】交互式网格自定义增删改错误记录及解决(进行中)
经过之前的学习,已经能创建简单的交互式网格并设置自定义增删改按钮,但是实现上还是存在一些问题,来完善优化一下。 首先是修改,正常修改都会弹出修改框,里面是之前存储的信息,根据实际需要对其进行修改&a…...

云渲染效果不对?云渲染前的四个细节表明你的问题出在这里!
云渲染针对3D渲染行业,帮助本地电脑解决渲染慢的问题,大幅提高设计师的工作效率。但小编发现,有不少小伙伴在使用云渲染时,出现了渲染效果不对或丢失的问题,根据小伙伴们的问题和我们创意云云渲染平台给出的解决方案&a…...

翻转二叉树
声明 该系列文章仅仅展示个人的解题思路和分析过程,并非一定是优质题解,重要的是通过分析和解决问题能让我们逐渐熟练和成长,从新手到大佬离不开一个磨练的过程,加油! 原题链接 翻转二叉树备战技术面试?…...

检测新突破 | AlignDet:支持各类检测器自监督新框架(ICCV2023)
引言 论文链接:https://arxiv.org/abs/2307.11077 项目地址:https://github.com/liming-ai/AlignDet 这篇论文主要研究目标检测领域的自监督预训练方法。作者首先指出,当前主流的预训练-微调框架在预训练和微调阶段存在数据、模型和任务上的…...

03.Show and Tell
目录 前言泛读摘要IntroductionRelated Work小结 精读模型基于LSTM的句子生成器TrainingInference 实验评价标准数据集训练细节分数结果生成结果多样性讨论排名结果人工评价结果表征分析 结论 代码 前言 本课程来自深度之眼《多模态》训练营,部分截图来自课程视频。…...
QStackedWidget 的使用
QStackedWidget QStackedWidget 提供一些层叠的 Widget,同一时间只有一个Widget处于可视状态,就像书本一样。 什么时候使用 QStackedWidget 强烈建议 如果需要点击一个按钮显示一些界面再点击按钮隐藏当前界面而去显示另外的界面时。都使用 QStackedW…...

大数据--难点--地图的制作
地图一直是亮点也是难点,刚刚进公司的时候也很难懂~~做出来的也很难看 纯CSS3使用vw和vh视口单位实现h5页面自适应,gulp自动监听sass改动并保存到css中 当修改了sass里面的代码后,gulp会自动监听修改内容并同名保存到css文件夹中࿰…...

【AI作画】使用Stable Diffusion的艺术二维码完全生成攻略
文章目录 前言Stable Diffusion 简介 什么是云端平台?优势灵活性和可扩展性成本效益高可用性和容错性管理简便性 选择适合的云端平台 平台优势平台操作购买算力并创建工作空间启动工作空间应用市场一键安装 使用Stable-Diffusion作图使用控制网络将文本转图像二维码…...
SQLAlchemy------更多查询
1 查询: filer:写条件 filter_by:等于的值 res session.query(User).all() # 是个普通列表 print(type(res)) print(len(res)) all()的结果就是列表,列表里面是对象 2 只查询某几个字段 # select name as xx,email from user; res…...
13-数据结构-串以及KMP算法,next数组
串 目录 串 一、串: 二、串的存储结构: 三、模式匹配 1.简单模式匹配(BF算法) 2.KMP算法 2.1-next(j)数组手工求解 2.2-nextval(j)数组手工求解 一、串: 内容受…...

Stable Diffusion - 俯视 (from below) 拍摄的人物图像 LoRA 与配置
欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/132192139 图像来自 哥特风格 LoRA 俯视 LoRA,提升视觉冲击力,核心配置 <lora:view_from_below:0.6>,(from below,…...

Redis——String类型详解
概述 Redis中的字符串直接按照二进制的数据存储,不会有任何的编码转换,因此存放什么样,取出来的时候就什么样。而MySQL默认的字符集是拉丁文,如果插入中文就会失败 Redis中的字符串类型不仅可以存放文本数据,还可以存…...

Android:换肤框架Android-Skin-Support
gihub地址:https://github.com/ximsfei/Android-skin-support 样例: 默认: 更换后: 一、引入依赖: // -- 换肤依赖implementation skin.support:skin-support:4.0.5// skin-supportimplementation skin.support:ski…...
软件测试面试心得:四种公司、四种问题…
以下是我个人总结的一些经验: 传统开发模式:V模式,瀑布模式。传统开发模式往往循规蹈矩,从需求,概要设计,详细设计,开发,单元测试,集成测试,系统测…...

【探索SpringCloud】服务发现-Nacos使用
前言 在聊服务注册中心时,便提到了Nacos。这次便来认识一下。当然,这自然没有官方介绍那般详尽,权当是学习了解Nacos原理的一个过程吧。 Nacos简介 Nacos,全名:dynamic Naming And Configuration Service. 而这个名…...
soap通信2
首先,定义一个XSD(XML Schema Definition)来描述你的数据结构。在你的Maven项目的src/main/resources目录下,创建一个名为schemas的文件夹,并在其中创建一个名为scriptService.xsd的文件,内容如下ÿ…...

【MySQL】MySQL不走索引的情况分析
未建立索引 当数据表没有设计相关索引时,查询会扫描全表。 create table test_temp (test_id int auto_incrementprimary key,field_1 varchar(20) null,field_2 varchar(20) null,field_3 bigint null,create_date date null );expl…...

JVM垃圾回收篇-垃圾回收算法
JVM垃圾回收篇-垃圾回收算法 标记清除(Mark Sweep) 概念 collector指的就是垃圾收集器。 mutator是指除了垃圾收集器之外的部分,比如说我们的应用程序本身。 mutator的职责一般是NEW(分配内存)、READ(从内存中读取内容)、WRITE(将内容写入内…...

android APP内存优化
Android为每个应用分配多少内存 Android出厂后,java虚拟机对单个应用的最大内存分配就确定下来了,超出这个值就会OOM。这个属性值是定义在/system/build.prop文件中. 例如,如下参数 dalvik.vm.heapstartsize8m #起始分配内存 dalvik.vm.…...

mysql_docker主从复制_实战_binlog混合模式_天座著
步骤1:拉取镜像 docker pull mariadb:latest 步骤2.1:创建两个文件夹用于放置挂载mysql的my.cnf /tianzuomysqlconf/master /tianzuomysqlconf/slave mkdir /tianzuomysqlconf cd /tianzuomysqlconf mkdir master mkdir slave 步骤2.2:创…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...

JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...

Xela矩阵三轴触觉传感器的工作原理解析与应用场景
Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知,帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量,能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度,还为机器人、医疗设备和制造业的智…...
虚幻基础:角色旋转
能帮到你的话,就给个赞吧 😘 文章目录 移动组件使用控制器所需旋转:组件 使用 控制器旋转将旋转朝向运动:组件 使用 移动方向旋转 控制器旋转和移动旋转 缺点移动旋转:必须移动才能旋转,不移动不旋转控制器…...

英国云服务器上安装宝塔面板(BT Panel)
在英国云服务器上安装宝塔面板(BT Panel) 是完全可行的,尤其适合需要远程管理Linux服务器、快速部署网站、数据库、FTP、SSL证书等服务的用户。宝塔面板以其可视化操作界面和强大的功能广受国内用户欢迎,虽然官方主要面向中国大陆…...

PLC入门【4】基本指令2(SET RST)
04 基本指令2 PLC编程第四课基本指令(2) 1、运用上接课所学的基本指令完成个简单的实例编程。 2、学习SET--置位指令 3、RST--复位指令 打开软件(FX-TRN-BEG-C),从 文件 - 主画面,“B: 让我们学习基本的”- “B-3.控制优先程序”。 点击“梯形图编辑”…...
PostgreSQL 对 IPv6 的支持情况
PostgreSQL 对 IPv6 的支持情况 PostgreSQL 全面支持 IPv6 网络协议,包括连接、存储和操作 IPv6 地址。以下是详细说明: 一、网络连接支持 1. 监听 IPv6 连接 在 postgresql.conf 中配置: listen_addresses 0.0.0.0,:: # 监听所有IPv4…...