使用Ngrok进行内网穿透

1.访问https://ngrok.com/

2.下载Ngrok并注册账号用于生成token

3.windows下双击下载的exe文件

4.执行:ngrok authtoken 密钥(将秘钥添加到ngrok.yml文件中)

5.执行:ngrok http 80(在端口80上启动HTTP隧道)

6.回到Ngrok官网查看即可找到你建立的映射

注意:
  此版为windows下最简单版本,域名为自动生成的
  紧急情况下可通过此方法在外网快速穿透项目
  后续持续更新。。。

Windows下不知道MySQL密码情况下重新设置密码

1.打开任务管理器,关掉mysqld.exe进程

2.打开cmd,cd到 C:\Program Files\MySQL\MySQL Server 5.5\bin(默认安装目录,自定义目录类同)

3.输入mysqld -nt --skip-grant-tables(注意mysqld与-nt之间有一空格)

4.再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录(操作同步骤2)

5.输入mysql回车,如果成功,将出现MySQL提示符 > 。如果不成功,可能是mysql.exe没关,关了重复5步骤

6.连接权限数据库>use mysql; (>是本来就有的提示符,别忘了最后的分号) 

7.改密码:> update user set password=password("123456") where user="root"; (别忘了最后的分号) 

8.刷新权限(必须的步骤)>flush privileges; 

9.退出 > \q 

10.DOS登录:->mysql -u root -p
->123456

11.登录成功

推荐一个HTML转换为PDF的方式

之前在网上搜,找到一种方式
打开谷歌,右键选中打印,然后再选择另存为成PDF
这种方式会因为网页内容导致生成的PDF布局发生变化,不推荐使用

在此推荐一种比较好用的方法:
下载谷歌浏览器扩展程序>>>Full Page Screen Capture
点开要转PDF的网页后点击谷歌浏览器右上角该插件图标即可预览
选择下载PDF文件就可获取到

此方法的优点在于完美还原网页原状
缺点在于其内容实际上是先转为图片后包装成了PDF文件,所以很难对PDF进行二次修改

Oracle实现批量动态更新数据

DECLARE
end_num number(30);
BEGIN
select count(*) INTO end_num from TABLE_A;
   for i in 1 .. end_num loop
UPDATE TABLE_A SET name_=('justin' || i) where table_id=
	(SELECT table_id FROM 
		(select table_id from TABLE_A 
		where ROWNUM<=i ORDER BY ROWNUM DESC) 
	where ROWNUM=1);
       sys.dbms_output.put_line('justin' || i);
   end loop;
   commit;
END;

DECLARE:声明变量关键字
end_num number(30); 变量名及类型
BEGIN :相当于{
select count(*) INTO end_num from TABLE_A; 通过into关键字将查询结果赋值给变量
for i in 1 .. end_num loop :循环语法,变量为i,从1开始,从end_num结束
内层查询:根据行号倒序获取i条数据
外层查询:只获取提一条内容查询结果
table_id=第i条数据的table_id的值
end loop; 循环结束语法
commit :提交
END :相当于 }

Oracle中decode函数的使用

需求:
如果A表中的item_1的值为1,则判断A表中的Item_A是否为null,如果为null,则返回0,否则返回其本身
如果item_1的值不为1,则判断A表中的Item_B是否为null,如果为null,则返回0,否则返回其本身
--case when实现
select case 
when item_1=1 and Item_A is not null then Item_A 
when item_1=1 and Item_A is null then 0
when item_1!=1 and Item_B is not null then Item_B
else 0 end 
as result_value
  from A

--decode实现
select decode(item_1,1,decode(Item_A ,null,0,Item_A ),decode(Item_B,null,0,Item_B)) 
from A
decode说明:
decode(item,值1,值2,值3);
如果item等于值1,则返回值2,否则返回值3
且decode可实现多层嵌套

其它用法:
decode(item,值1,值2,值3,值4,...,default)
如果item等于值1,返回值2,等于值3,返回值4,...
如果没有匹配上,返回default

decode身为oracle最强大的函数之一,还有很多用法,暂时就介绍到这里