自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 文章整理

这篇文章是我的所写博客整理的一个目录,便于查找。OracleOracle PL/SQL开发入门Oracle PL/SQL开发入门(第一弹:Oracle 11g数据库系统) Oracle PL/SQL开发入门(第二弹:PL/SQL基本概念) Oracle PL/SQL开发入门(第三弹:变量) ...

2017-09-18 22:51:41 999 1

原创 JDK源码解读(第九弹:Integer之其他常用方法)

之前我们已经详细解读了Integer的基本属性,toString方法,toUnsignedString0方法,parseInt方法,valueOf方法,接下来就再来看一下看其他几个比较常用也比较简单的方法。 compareTo和compare 这里看一下两个方法: public int c...

2019-06-17 22:08:00 70 0

原创 JDK源码解读(第八弹:Integer之valueOf方法)

Integer的valueOf方法也是比较常用的方法,总共有 3个valueOf方法。不过看这几个方法之前,需要先了解一下内部类IntegerCache: private static class IntegerCache { static final int low = ...

2019-06-12 22:36:44 162 0

原创 JDK源码解读(第七弹:Integer之parseInt方法)

Integer的parseInt方法也是比较常用的方法,我们同样重点来研究一下。看到源码我们发现有两个parseInt方法: public static int parseInt(String s, int radix) throws NumberFor...

2019-05-14 23:00:55 194 1

原创 JDK源码解读(第六弹:Integer之toUnsignedString0)

再来看一下还有几个跟toString差不多的方法,分别是toHexString,toOctalString,toBinaryString,顾名思义,就是转成十六进制/八进制/二进制形式的字符串,源码如下: public static String toHexString(int i) { ...

2019-05-13 23:32:08 527 0

原创 JDK源码解读(第五弹:Integer之toString方法)

上一篇只讲了Integer的几个属性,这一次我们来看一下toString方法。 toString总共有3个重载,先来看两个参数的toStirng方法: public static String toString(int i, int radix) { if (radix...

2018-09-15 16:31:53 758 0

原创 JDK源码解读(第四弹:Integer之Integer的基本属性)

Integer类继承了Number类,主要作用是对基本类型int进行了包装,提供了一些处理int的方法。 像parseInt,valueOf,intValue这些方法平时用的非常多,每个人都感觉对Integer很熟,看似这个类的源码好像没什么可看的。不过不看不知道,一看吓一跳,接下来我们来慢慢分...

2018-09-15 16:23:56 173 0

翻译 JDK1.8 API翻译(第四弹:Integer)

API文档链接如下: https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html 下面开始翻译。 Class Integer java.lang.Object   &n...

2018-09-08 17:19:48 347 0

原创 JDK源码解读(第三弹:Number)

Number一听就感觉是一个很基本很重要的类。但是平时我们经常使用Integer类的对象,Long类的对象,但是为什么不用Number类的对象呢。这是因为java.lang.Number是一个抽象类,平时我们用的那些表示数值的类都是Number的子类。 看源码之前建议先看一下API文档,或者边看...

2018-09-03 23:27:13 119 0

翻译 JDK1.8 API翻译(第三弹:Number)

API文档链接如下: https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html 下面开始翻译。 Class Number java.lang.Object    ...

2018-09-02 01:25:08 253 0

原创 JDK源码解读(第二弹:Boolean)

我们知道有个基本类型叫boolean,它的值只有两种,true或者false。Boolean类正是对基本类型boolean进行了封装,提供了一些常用的方法。 看源码之前建议先看一下API文档,或者边看源码边看API,这样可以更好的理解。可以直接去看官方的API文档,也可以看我的上一篇文章,是对A...

2018-09-01 16:07:11 244 0

翻译 JDK1.8 API翻译(第二弹:Boolean)

API文档链接如下: https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html java.lang.Object java.lang.Boolean All Implemented Interfaces: Seri...

2018-08-31 00:22:59 214 0

翻译 JDK1.8 API翻译(第一弹:Object)

java.lang.Object public class Object Class Object is the root of the class hierarchy. Every class has Object as a superclass. All objects, includin...

2018-08-30 21:38:09 418 0

原创 JDK源码解读(第一弹:Object)

java.lang.Object类是java中所有类的父类,所有类默认继承Object。这也就意味着,Object类中的所有公有方法也将被任何类所继承。既然是最基本的类,那我们的JDK源码解读就从这个类开始。 (我这里研究的源码都是基于JDK1.8。) Object类中的方法如下: Obje...

2018-08-28 00:36:32 850 3

原创 Oracle PL/SQL高级编程(第八弹:性能优化:SQL语句性能优化)

连接查询的表顺序 默认情况下,当对多个表进行连接查询时,Oracle分析器会按照从右到左的顺序处理FROM子句中的表名。例如下面的语句: SELECT a.empno, a.ename,c.deptno, c.dname, a.log_action FROM emp_log a, emp ...

2018-08-13 23:49:32 353 0

原创 Oracle PL/SQL高级编程(第七弹:性能优化:理解执行计划)

如果写了一个大而复杂的PL/SQL应用程序,想要跟踪对子程序的调用,比如看到子程序的执行顺序,则可以使用DBMS_TRACE包,该包的使用过程与DBMS_PROFILER类似,一个主要区别在于DBMS_TRACE可以设定需要跟踪的事件:调用、异常、SQL甚至...

2018-08-13 20:23:25 165 0

原创 Oracle PL/SQL高级编程(第六弹:性能优化:使用DBMS_TRACE包)

如果写了一个大而复杂的PL/SQL应用程序,想要跟踪对子程序的调用,比如看到子程序的执行顺序,则可以使用DBMS_TRACE包,该包的使用过程与DBMS_PROFILER类似,一个主要区别在于DBMS_TRACE可以设定需要跟踪的事件:调用、异常、SQL甚至每一个PL/SQL代码的可运行。 DB...

2018-08-13 19:03:11 497 0

原创 Oracle PL/SQL高级编程(第五弹:性能优化:使用DBMS_PROFILER包)

对于已经存在的代码,找出影响性能的问题点至关重要,Oracle提供的DBMS_PROFILER包可以方便地发现其瓶颈所在。 安装DBMS_PROFILER包 在使用DBMS_PROFILER之前,要以管理员身份进入数据库系统进行安装。 1. 使用管理员身份登录,使用DESC命令判断DBMS_...

2018-08-13 00:28:01 585 0

原创 Oracle PL/SQL高级编程(第四弹:性能优化:提高PL/SQL程序性能的一些编程习惯)

对于一个PL/SQL应用程序来说,影响性能的原因是来自多方面的,比如不良的编程方法,数据库对象本身的构建不合理,表或索引的构建等都可能导致PL/SQL性能低下。 这里总结了一些常见的影响性能的原因以及提高性能的方案,可以把这些当成一种编程的习惯。 尽量使用存储过程,避免使用PL/SQL匿名块 ...

2018-08-13 00:24:36 247 0

原创 Oracle PL/SQL高级编程(第三弹:管理对象类型)

在数据字段视图user_types中保存了对象类型的详细信息,这个视图主要用来保存Oracle的类型信息,除了对象类型外,还保存了集合类型,通过typecode字段进行区分。例如要查询以emp开头的对象类型: SELECT * FROM user_types WHERE type_name l...

2018-08-12 15:40:52 158 0

原创 Oracle PL/SQL高级编程(第二弹:管理对象表)

定义对象表 对象表就像普通的表一样,只是存储的是对象类型,该表的每一个字段与对象的一个属性相对应。对象表的每一条记录存储一个对象类型的实例。语法如下: CREATE TALE table_name OF object_type; 对象表基于的是系统定义的构造函数,而不是用户定义的构造函数,所...

2018-08-12 15:13:54 228 0

原创 Oracle PL/SQL高级编程(第一弹:面向对象编程)

PL/SQL中对象的组成结构 PL/SQL中的对象类型是一种自定义的复合类型,与包的定义很相似,由两部分组成: - 对象类型规范:是对象与应用的接口,用于定义对象的公用属性和方法。 - 对象类型体:用于实现对象类型规范所定义的公用方法。 在对象类型规范中定义对象属性时,必须要提供属性名和数...

2018-08-12 01:05:50 866 2

原创 Oracle PL/SQL进阶编程(第十五弹:动态SQL语句)

理解动态SQL语句 动态SQL语句基础 动态SQL语句不仅是指SQL语句是动态拼接而成的,更主要的是SQL语句所使用的对象也是运行时期才创建的。出现这种功能跟PL/SQL本身的早起绑定特性有关,早PL/SQL中,所有的对象必须已经存在于数据库中才能执行,比如要查询emp表,emp表必须已经存在...

2018-08-11 16:50:00 1533 0

原创 Oracle PL/SQL进阶编程(第十四弹:系统事件触发器)

查看触发器源码 可以通过DBA_TRIGGERS、ALL_TRIGGERS、USER_TRIGGERS视图查看触发器相关信息,也可以通过PL/SQL DEVELOPER等可视化工具查看。 删除和禁用触发器 如果不在需要触发器可以使用 DROP TRIGGER删除触发器: DROP TR...

2018-08-11 13:46:20 218 0

原创 Oracle PL/SQL进阶编程(第十三弹:系统事件触发器)

DML触发器和替代触发器都是在DML事件上触发的 ,而系统触发器是在DDL事件和数据库服务器事件时触发的。 定义系统触发器 语法如下: CREATE [OR REPLACE] TRIGGER trigger_name {BEFORE | AFTER} {DDL event |DATABASE...

2018-08-11 01:31:52 734 0

原创 Oracle PL/SQL进阶编程(第十二弹:替代触发器)

DML触发器只能应用在表上。而替代触发器只能定义在视图上。当腰对一个不能进行修改的视图进行数据的修改时,或者要修改视图中的某个嵌套表时,可以使用替代触发器。 替代触发器的作用 提到触发器,又称为INSTEAD OF触发器,它会替代原来的数据操作语句的执行,更改为使用在触发器中定义的语句来执...

2018-08-10 23:56:47 637 0

原创 Oracle PL/SQL进阶编程(第十一弹:DML触发器)

DML触发器时一种用在表上的比较传统的触发器,用的最为频繁。 触发器的执行顺序 由于在一个表上可能定义多个触发器,因此需要首先了解一下触发器的执行顺序。 单行触发器执行顺序 当在某一行上定义了多个触发器时,执行顺序如下: 1. BOFORE语句触发器 2. BEFORE行级触发器 ...

2018-08-10 01:02:13 202 0

原创 Oracle PL/SQL进阶编程(第十弹:理解触发器)

触发器简介 触发器的一个明显的特性就是不能被显式地调用,当触发事件发生时就会隐式地执行该触发器,且不接收参数。 触发器通常用来以下几个方面: - 完成表的变更校验:当表数据发生INSERT、UPDATE或DELETE时,提供验证逻辑、检查完整性约束、记录日志等操作。 - 自动数据库维护:通...

2018-08-09 23:03:05 181 1

原创 Oracle PL/SQL进阶编程(第九弹:使用系统包:DBMS_JOB)

在Oracle开发中,经常需要对一些任务进行调度。在Oracle中,调度任务又称为作业,只要是使用DBMS_JOB包来实现的。 创建作业SUBMIT 这个过程用来创建一个作业,并且输出作业号码。当建立新的作业时,需要给出作业要执行的操作,作业在下一次运行的日期及运行的时间间隔,语法如下: ...

2018-08-08 23:50:34 201 0

原创 Oracle PL/SQL进阶编程(第八弹:使用系统包:DBMS_ALERT)

报警是Oracle中单向的、以事务提交为基础的对数据库报警事件的异步报警通知,比如可以在数据库数据发生变化时,某个字段的值发生变化时,通过报警向用户发送电子邮件通知。 报警是基于事务的,意味着除非能够报警的事务被提交,否则等过过程中的事务不会获得报警。 要使用DBMS_ALERT包,需要以DB...

2018-08-08 22:57:38 198 0

原创 Oracle PL/SQL进阶编程(第七弹:使用系统包:DBMS_PIPE)

DBMS_PIPE包用于在同一个Oracle的Instance,即例程的不同会话之间进行通信。管道非常类似于UNIX操作系统中的管道,但是Oracle管道并不是使用像在UNIX中那样的操作系统调用的机制,其管道信息被缓存在系统全局区(SGA)中,当关闭Oracle例程时,就会丢失管道信息。管道又可...

2018-08-08 01:22:38 478 0

原创 Oracle PL/SQL进阶编程(第六弹:使用系统包:DBMS_OUTPUT)

该包使得我们可以从存储过程、包或触发器中发送信息。 Oracle推荐在调试PL/SQL程序时使用该包,不建议使用它来做报表输出或其他的格式化应用。 启用或禁用DBMS_OUTPUT 默认情况下,Oracle并没有启用DBMS_OUTPUT包,也就是说,直接使用DBMS_OUTPUT.PUT_...

2018-08-08 00:01:33 656 0

原创 Oracle PL/SQL进阶编程(第五弹:包的进阶技术)

包重载 包重载实际上就是对包中的子程序的重载,之前我们已经对子程序的重载做过介绍,这里简单看下代码。 定义包规范: CREATE OR REPLACE PACKAGE emp_action_pkg_overload IS --定义一个增加新员工的过程 PROCEDURE newd...

2018-08-07 22:54:35 156 0

原创 Oracle PL/SQL进阶编程(第四弹:理解PL/SQL包)

什么是包 一个PL/SQL包由两部分组成: - 包规范:主要是包的一些定义信息,不包含具体的代码实现,是PL/SQL程序的接口部分,包含类型、记录、变量、常量、异常定义、游标和子程序的声明。 - 包体:包体是对包规范中声明的子程序的实现部分,包体的内容对于外部应用程序来说是不可见的。 ...

2018-08-07 22:02:18 348 0

原创 Oracle PL/SQL进阶编程(第三弹:子程序进阶技术)

在SQL中调用子程序 如果编写的PL/SQL函数可以像Oracle内置函数一样被SQL调用,需要遵循一定的规则: - 所有函数的参数必须是IN模式。 - 参数的数据类型和RETURN子句的返回类型必须能被Oracle数据库识别,这是因为PL/SQL兼容所有的Oracle数据类型,但是PL/S...

2018-08-06 23:50:37 383 0

原创 Oracle PL/SQL进阶编程(第二弹:子程序参数)

子程序可以带有参数,参数可以具有不同的模式,可以按值传递,也可以通过引用传递。 形参与实参 形式参数:子定义子程序时,在定义语句中定义的参数称为形式参数,简称形参。形参的数据类型不包含任何的长度约束。通常使用p开头作为形参的前缀,如p_deptno。 实际参数:在调用子程序时,传入的具体...

2018-08-06 20:44:24 122 0

原创 Oracle PL/SQL进阶编程(第一弹:子程序结构)

子程序简介 一般来说,过程和函数被称为子程序。过程是一段不具有返回值的代码块,而函数会返回一个值。子程序与匿名块的最大不同是它可以存储到数据库的数据字典中,以便重用。 过程一旦被创建,就以编译的形式被存储在数据库中,这样就可以从别的PL/SQL命名块或是匿名块中调用了。 子程序的优点 子程...

2017-09-19 22:48:42 709 0

原创 PHP进阶(第九弹:日期时间函数)

日期时间函数库是PHP内置函数库,可以获取服务器的日期时间相关内容。 我们可以先看看php是否已经有了日期时间库的扩展: phpinfo(); 运行该文件,可以搜到,date/time support是enabled的,说明已经有这个扩展了。 设置时区 在phpinfo()中可以看到,...

2017-09-13 23:11:27 256 0

原创 PHP进阶(第八弹:函数)

自定义函数语法如下: function 函数名称([参数名称[=默认值]]) { 函数体; return 返回值; } 要注意,函数名称不能包含特殊字符,可以包含数字字母下划线,以字母或下划线开头。 函数名称不区分大小写。 函数名称不支持重名,如果重名在运行时会报错:Fat...

2017-09-05 23:58:36 167 0

原创 PHP进阶(第七弹:数据库操作)

PHP通过安装相应的扩展来实现数据库操作,MsSQL,MySQL,Oracle,PostgreSQL等数据库都能支持。常用的LAMP架构指的是:Linux、Apache、Mysql、PHP,因此Mysql数据库在PHP中的应用最为广泛。if (function_exists('mysql...

2017-09-05 22:39:18 415 0

提示
确定要删除当前文章?
取消 删除