- 博客(64)
- 资源 (1)
- 收藏
- 关注
原创 oracle中union和union all的区别
之前只知道union和union all的区别在于是否对记录去重,最近开发过程中发现还有一个区别,记录下:1、union会对两个结果集并集操作并去重,同时进行默认规则的排序2、union all会对两个结果集并集操作但不会去重,不会进行排序是否去重大家都知道,但排序是怎么回事呢?union进行默认规则的排序,是指对两个或多个结果集合并后,按照查出字段的先后顺序进行排序,比如查出的字...
2018-10-17 18:40:40
285
原创 sql中limit用法
用法一:显示前n条记录select * from record LIMIT 10;--检索前10行数据,显示1-10条数据用法二:从n行开始,显示m条记录select * from record LIMIT 1,10;--检索从第2行开始,累加10条记录用法三:与offset搭配SELECT * FROM record LIMIT 10 OFFSET 2OFFSET与逗号隔...
2018-08-25 19:37:39
1833
原创 java集合讲解
集合是java.util包下提供的工具类一、集合与数组区别数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用。二、层次关系如图所示:图中,实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口Collection
2017-10-13 16:58:20
298
原创 Myeclipse重新安装新版本svn失效问题解决
一、下载SVN插件subclipse下载地址:http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240在打开的网站中找到subclipse的最新版本,如下图所示:下载完成之后,得到的是一个压缩包文件,如下图所示:二、在MyEclipse10中安装SVN插件subclipse步骤如下:...
2017-09-20 13:54:58
2016
转载 http请求与响应报文格式
HTTP请求报文格式:HTTP请求报文主要由请求行、请求头部、请求正文3部分组成1,请求行由3部分组成,分别为:请求方法、URL(见备注1)以及协议版本,之间由空格分隔请求方法包括GET、HEAD、PUT、POST、TRACE、OPTIONS、DELETE以及扩展方法,当然并不是所有的服务器都实现了所有的方法,部分方法即便支持,处于安全性的考虑也是不可用的协议版本的格式为:
2017-08-11 15:01:11
492
转载 http请求的get和post区别
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。当你在面试中被问到这个问题,你的内心充满了自信和喜悦。你
2017-08-11 14:36:43
461
转载 web.xml中Filter,Listener,Servlet的区别
web.xml中Filter,Listener,Servlet的区别一、ServletServlet是基本的服务端程序,他来自接口Servlet,接口中有方法service。而Servlet的一个重要实现类,则是tomcat服务器的核心,那就是HttpServletHttpServlet有方法:public abstract class HttpServle
2017-08-03 15:44:56
261
转载 Java中堆、栈和堆栈区别
1.栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共 享,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Jav
2017-05-15 15:23:51
546
原创 Java 核心包介绍
java.lang: 这个包下包含了Java语言的核心类,如String、Math、Sytem和Thread类等,使用这个包无需使用import语句导入,系统会自动导入这个包中的所有类。java.util: 这个包下包含java的大量工具类/接口和集合框架类/接口。如Arrays和List、Set等。java.net: 这个包下包含了一些Java网络编程相关的类/接口。jav
2017-05-15 15:22:28
6667
原创 Java中JVM详解
作为Java开发者,掌握JVM的体系结构也是必须的,谈起Java,我们能够想到的它是一门开发语言,但实际上,Java是一种技术,它由四方面组成:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API),他们之间关系如下图所示:运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件
2017-03-22 17:16:08
439
原创 Oracle中大数据量时提高查速度的办法
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id f
2017-03-22 14:32:44
5266
转载 Mybatis下动态sql中##和$$区别
一、介绍 mybatis 中使用 Mapper.xml里面的配置进行 sql 查询,经常需要动态传递参数,例如我们需要根据用户的姓名来筛选用户时,sql 如下:[java] view plain copy select * from user where name = "Jack"; 上述 sql 中,我们
2017-03-20 14:46:57
5325
转载 Mybatis实现原理深入解析
原理分析之一:从JDBC到Mybatis1.引言本文主要讲解JDBC怎么演变到Mybatis的渐变过程,重点讲解了为什么要将JDBC封装成Mybaits这样一个持久层框架。再而论述Mybatis作为一个数据持久层框架本身有待改进之处。2.JDBC实现查询分析我们先看看我们最熟悉也是最基础的通过JDBC查询数据库数据,一般需要以下七个步骤:
2017-03-16 14:48:28
420
转载 SpringMVC与Struts2对比
目前企业中使用SpringMvc的比例已经远远超过Struts2,那么两者到底有什么区别,是很多初学者比较关注的问题,下面我们就来对SpringMvc和Struts2进行各方面的比较:1.核 心控制器(前端控制器、预处理控制器):对于使用过mvc框架的人来说这个词应该不会陌生,核心控制器的主要用途是处理所有的请求,然后对那些特殊的请求 (控制器)统一的进行处理(字符编码、文件上传、参数接受
2017-03-16 13:50:18
349
原创 Struts2工作原理解析
struts2框架是SSH框架集中的框架之一,是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器层(Controller)来建立模型与视图的数据交互。 在使用struts2框架的过程中,需要两个配置文件,分别为web.xml和struts.xml,服务器一启动就加载web.xml的配置,web.xml启动时,在Stru
2017-03-16 13:49:14
13000
原创 深入解析SpringMVC的工作原理
在讲springMVC之前我们先来看一下什么是MVC模式MVC:MVC是一种设计模式MVC的原理图: 分析:M-Model 模型(完成业务逻辑:有javaBean构成,service+dao+entity)V-View 视图(做界面的展示 jsp,html……)C-Controller 控制器(接收请求—>调用模型—>根据结果派发页面)
2017-03-16 13:48:18
707
转载 TCP/IP协议簇分层详解
http://blog.csdn.net/hankscpp/article/details/8611229一、 TCP/IP 和 ISO/OSI ISO/OSI模型,即开放式通信系统互联参考模型(Open System Interconnection Reference Model),是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的
2017-03-16 10:55:54
397
转载 Spring架构详解之Spring设计模式分析之策略模式
策略模式原理策略模式顾名思义就是做某事的策略,这在编程上通常是指完成某个操作可能有多种方法,这些方法各有千秋,可能有不同的适应的场合,然而这些操作方法都有可能用到。各一个操作方法都当作一个实现策略,使用者可能根据需要选择合适的策略。下面是策略模式的结构:策略模式的结构Context:使用不同策略的环境,它可以根据自身的条件选择不同的策略实现类来完成所要的操作
2017-03-16 10:43:01
641
转载 Spring架构详解之Spring设计模式分析之代理模式
代理模式原理代理模式就是给某一个对象创建一个代理对象,而由这个代理对象控制对原对象的引用,而创建这个代理对象就是可以在调用原对象是可以增加一些额外的操作。下面是代理模式的结构:代理模式的结构Subject:抽象主题,它是代理对象的真实对象要实现的接口,当然这可以是多个接口组成。ProxySubject:代理类除了实现抽象主题定义的接口外,还必须持有所代理对象的引用R
2017-03-16 10:42:21
536
转载 Spring架构详解之SpringAOP如何实现
从前面代理的原理我们知道,代理的目的是调用目标方法时我们可以转而执行InvocationHandler类的invoke方法,所以如何在InvocationHandler上做文章就是Spring实现Aop的关键所在。Spring的Aop实现是遵守Aop联盟的约定。同时Spring又扩展了它,增加了如Pointcut、Advisor等一些接口使得更加灵活。下面是Jdk动态代理的类图:
2017-03-16 10:41:41
268
转载 Spring架构详解之动态代理的实现原理
前面介绍了Spring容器的构建过程,那Spring能为我们做什么,Spring的Ioc容器又能做什么呢?我们使用Spring必须要首先构建Ioc容器,没有它Spring无法工作,ApplicatonContext.xml就是Ioc 容器的默认配置文件,Spring的所有特性功能都是基于这个Ioc容器工作的,比如后面要介绍的AOP。Ioc它实际上就是为你构建了一个魔方,Spring为你搭好
2017-03-16 10:41:00
864
转载 Spring架构详解之Ioc容器的扩展点
现在还有一个问题就是如何让这些Bean对象有一定的扩展性,就是可以加入用户的一些操作。那么有哪些扩展点呢?Spring又是如何调用到这些扩展点的?对Spring的Ioc容器来说,主要有这么几个。BeanFactoryPostProcessor,BeanPostProcessor。他们分别是在构建BeanFactory和构建Bean对象时调用。还有就是InitializingBean和Dis
2017-03-16 10:40:18
477
转载 Spring架构详解之创建Bean实例并构建Bean的关系网
下面是Bean的实例化代码,是从finishBeanFactoryInitialization方法开始的。1234567891011121314151617181920212223
2017-03-16 10:39:36
436
转载 Spring架构详解之BeanFactory的创建-下
Bean的解析和登记流程时序图如下:解析和登记Bean对象时序图创建好BeanFactory后,接下去添加一些Spring本身需要的一些工具类,这个操作在AbstractApplicationContext的prepareBeanFactory方法完成。AbstractApplicationContext中接下来的三行代码对Spring的功能扩展性起了至关重要的作用
2017-03-16 10:38:59
693
转载 Spring架构详解之BeanFactory的创建-上
下面是更新BeanFactory的方法代码:1234567891011121314151617181920212223242526272829
2017-03-16 10:38:24
1808
转载 Spring架构详解之IOC容器的构建
Ioc容器实际上就是Context组件结合其他两个组件共同构建了一个Bean关系网,如何构建这个关系网?构建的入口就在AbstractApplicationContext类的refresh方法中。这个方法的代码如下:12345678910111213141
2017-03-16 10:37:45
321
转载 Spring架构详解之Core组件详解
Core组件作为Spring的核心组件,他其中包含了很多的关键类,其中一个重要组成部分就是定义了资源的访问方式。这种把所有资源都抽象成一个接口的方式很值得在以后的设计中拿来学习。下面就 重要看一下这个部分在Spring的作用。下图是Resource相关的类结构图:Resource相关的类结构图从上图可以看出Resource接口封装了各种可能的资源类型,也就是对使用者
2017-03-16 10:36:15
1095
转载 Spring架构详解之Context组件详解
Context在Spring的org.springframework.context包下,前面已经讲解了Context组件在Spring中的作用,他实际上就是给Spring提供一个运行时的环境,用以保存各个对象的状态。下面看一下这个 环境是如何构建的。ApplicationContext是Context的顶级父类,他除了能标识一个应用环境的基本信息外,他还继承了五个接口,这五个接口主要是扩
2017-03-16 10:34:32
1311
转载 Spring架构详解之Bean组件详解
前面已经说明了Bean组件对Spring的重要性,下面看看Bean这个组件式怎么设计的。Bean组件在Spring的org.springframework.beans包下。这个包下的所有类主要解决了三件事:Bean的定义、Bean 的创建以及对Bean的解析。对Spring的使用者来说唯一需要关心的就是Bean的创建,其他两个由Spring在内部帮你完成了,对你来说是透明的。SpringB
2017-03-16 10:33:47
625
转载 Spring架构详解之Spring内部组件的作用和关系
前面说Bean是Spring中关键因素,那Context和Core又有何作用呢?前面吧Bean比作一场演出中的演员的话,那Context就是这场演出的舞台背景,而Core应该就是演出的道具了。只有他们在一起才能 具备能演出一场好戏的最基本的条件。当然有最基本的条件还不能使这场演出脱颖而出,还要他表演的节目足够的精彩,这些节目就是Spring能提供的特色功能了。我们知道Bean包装的是Obj
2017-03-16 10:33:02
887
转载 Spring架构详解之Spring总体架构与设计理念
Spring的总体架构Spring总共有十几个组件,但是真正核心的组件只有几个,下面是Spring框架的总体架构图:Spring框架的总体架构图从上图中可以看出Spring框架中的核心组件只有三个:Core、Context和Beans。它们构建起了整个Spring的骨骼架构。没有它们就不可能有AOP、Web等上层的特性功能。下面也将主要从这三个组件入手分析Sprin
2017-03-16 10:32:03
407
转载 java 线程中wait和notify使用讲解
1)wait()、notify()和notifyAll()方法是本地方法,并且为final方法,无法被重写。 2)调用某个对象的wait()方法能让当前线程阻塞,并且当前线程必须拥有此对象的monitor(即锁,或者叫管程) 3)调用某个对象的notify()方法能够唤醒一个正在等待这个对象的monitor的线程,如果有多个线程都在等待这个对象的monitor,则只能唤醒其中一
2017-03-15 17:12:36
403
原创 oracle中in和exists区别
select * from Awhere id in(select id from B)以上查询使用了in语句,in()只执行一次,它查出B表中的所有id字段并缓存起来.之后,检查A表的id是否与B表中的id相等,如果相等则将A表的记录加入结果集中,直到遍历完A表的所有记录.它的查询过程类似于以下过程List resultSet=[];Array A=(select *
2017-03-15 13:45:37
191
原创 【Explain Plan】查看SQL的执行计划
Explain Plan在sqlplus中使用起来非常的便捷,使用方法如下sec@ora10g> explain plan for select count(*) from t;Explained.sec@ora10g> select * from table(dbms_xplan.display());PLAN_TABLE_OUTPUT--------------
2017-03-14 14:01:09
653
转载 oracle之创建、使用索引和判断索引是否被使用
一、创建索引: create index index_name on table_name(table_field);二、修改索引: alter index 索引名 rename to 新索引名三、删除索引: drop index 索引名四、查看索引: .查看索引个数和类别
2017-03-13 16:19:42
7143
转载 oracle之B树索引
B树索引的概念:B树索引是一个典型的树结构,不仅Oracle,很多实际应用都用到,在oracle里面分三个索引块1 - 叶子节点块(leaf block):直接指向表里的数据行。2 - 分支节点块(branch block):指向分支节点或者是叶子节点。3 - 根节点块(root node):也属于分支节点,只是最顶端的分支节点。上面三个专业名词都很形象的表
2017-03-13 16:18:20
764
原创 Oracle触发器讲解
一、触发器简介触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行。因此触发器不需要人为的去调用,也不能调用。然后,触发器的触发条件其实在你定义的时候就已经设定好了。这里面需要说明一下,触发器可以分为语句级触发器和行级触发器。详细的介绍可以参考网上的资料,简单的说就是语句级的触发器可以在某些语句执行前或执行后被触发。而行级触发器则是在定义的了触发的表中的行数据改变时
2017-03-13 15:41:51
254
原创 oracle之存储过程6- if、for、游标使用
create or replace procedure test01 is V_TEST number(10):=1; begin if V_TEST = 1 then dbms_output.put_line('1----'); end if;
2017-03-13 15:26:53
589
原创 oracle之存储过程5-查询结果保存到变量中去
将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条 记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND) 例子: create or replace procedure test01 is v_empno number(10);--创建变量,存储员工编号 v_en
2017-03-13 15:24:20
7487
原创 oracle之存储过程4-存储过程变量的使用
1.存储过程基本结构。从is到begin区域为声明变量区域,从bengin到end区域为逻辑代码区域。创建变量并赋值。创建变量时需要指定取值范围。变量名 := 值;x number(4,2);x := 1; 使用 带参数的存储过程。存储过程参数不用指定取值范围。 注意事项:1, 存储过程 “变量” 需要制定带取值
2017-03-13 15:21:28
3556
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人