
java
文章平均质量分 82
王永俊
让梦想比现实高那么一点!
展开
-
免安装Oracle客户端和PL/SQL
写在前面: Oracle是典型的C/S结构,服务端提供oracle服务的实例,主要用于数据库的管理,对象的管理与存储、数据的存储、查询、数据库资源的监控、监听等一些服务。而客户端只是一个与服务端交互的工具,如sqlplus,在sqlplus里执行SQL语句传到服务端,服务端进行解析后执行SQL里的操作,并将操作结果输出到客户端。这就完成了一个客户端与服务端交互的过程。简单点说,原创 2014-06-30 11:38:58 · 2118 阅读 · 20 评论 -
java中Map,List与Set的区别(二)
List(列表)List的特征是其元素以线性方式存储,集合中可以存放重复对象。 List接口主要实现类包括:ArrayList() : 代表长度可以改变得数组。可以对元素进行随机的访问,向ArrayList()中插入与删除元素的速度慢。 LinkedList(): 在实现中采用链表数据结构。插入和删除速度快,访问速度慢。对于List的随机访问来说,就是只随机来检索位于特定位置的元素。 List原创 2015-08-31 22:00:20 · 1296 阅读 · 4 评论 -
java中Map,List与Set的区别(一)
在java中我们常用的集合有Map(映射),List(列表)和set(集)。下面我们来学习一下三者以及理解一下三者的区别。 我们先宏观理解一下各个接口之间的关系: 上图我们只列出了我们常见的,在学习集合之前我们先了解一下数组。数组数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java原创 2015-08-31 21:28:01 · 1857 阅读 · 5 评论 -
Hibernate之单元测试利器JUnit
单元测试 作为一名程序员,我们必须要对自己编写的代码负责,我们不仅要保证它能通过编译,正常地运行,而且要满足需求和设计预期的效果。而单元测试正是验证代码行为是否满足预期的有效手段之一。定义的理解:我们在编写大型程序的时候,需要写成千上万个方法或函数,这些函数的功能可能很强大,但我们在程序中只用到该函数的一小部分功能,并且经过调试可以确定,这一小部分功能是正确的。但是,我们原创 2015-02-27 23:46:22 · 1981 阅读 · 5 评论 -
Hibernate之关系映射(三)
我们继续学习关系映射最后一种:多对多。在关系数据库中,多对多的关系一般采用第三张表来管理,所以Hibenrnate通过使用标签来表示多对多关联,自动生成中间表。 单向多对多关联映射 映射后的关系模型: 会产生第三张表来维护关系 映射文件:User.hbm.xml version="1.0"?>原创 2015-03-30 23:55:15 · 717 阅读 · 5 评论 -
事务---Java事务
Java事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务。1、JDBC事务JDBC 事务是用 Connection 对象控制的。JDBC Connection 接口( java.sql.Connection )提供了两种事务模式:自动提交和手工提交。 java.sql.Connection 提供了以下控制事务的方法:public void setAut原创 2015-06-29 17:55:29 · 1079 阅读 · 4 评论 -
事务—EJB事务(BMT)
由于CMT依靠容器开始、提交和回滚事务,所以会限制事务的边界位置,并且CMT不支持嵌套事务,Bean管理事务支持嵌套事务,所以需要嵌套事务时可以采用Bean管理事务。BMT则允许通过编程的方式来指定事务的开始、提交和回滚的位置。主要使用的是javax.transaction.UserTransaction接口。BMT事务如下面代码: Java代码 @Stateless) @原创 2015-07-27 23:30:42 · 1569 阅读 · 6 评论 -
多租户--EclipseLink实现
EclipseLink的介绍EclipseLink 是 Eclipse 基金会管理下的开源持久层服务项目,为 Java 开发人员与各种数据服务(比如:数据库、web services、对象XML映射(OXM)、企业信息系统(EIS)等)交互提供了一个可扩展框架,目前支持的持久层标准中包括: • Java Persistence API (JPA) • Java Architecture for原创 2015-07-31 23:48:02 · 4792 阅读 · 15 评论 -
hibernate之对象的三种状态
在学习Hibernate的过程中,对象持久化时的三种状态以它们直接的转换是我们必须深入学习的,对它的深入理解,才能更好的理解hibernate的运行机理。可以帮助我们更好的理解hibernate,JVM和sql的关系。下面我们通过两张图了解一下这三种状态:一:三个对象的学习: 下面这张图我主要整理了三种对象的定义和特点,作为简单的了解。原创 2015-02-26 22:01:18 · 927 阅读 · 3 评论 -
java中object类的学习
一、概述:Object类是所有Java类的祖先。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。 在不明确给出超类的情况下,Java会自动把Object作为要定义类的超类。 可以使用类型为Object的变量指向任意类型的对象。 Object类有一个默认构造方法pubilc Object(),在构造子类实例时,都会先调用这个默认构造方法。原创 2015-09-26 21:23:42 · 1502 阅读 · 6 评论 -
Struts2与Struts1的对比学习(二)
概述下图是对两者区别的一个整理: 我们来详细的介绍一下各个方面的区别Action实现类Struts1要求Action类继承一个抽象基类;Struts1的一个具体问题是使用抽象类编程而不是接口。Struts2 Action类可以实现一个Action接口,也可以实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去实现常用的接口。即使Action接口不是必须实原创 2015-09-27 22:16:38 · 1359 阅读 · 2 评论 -
IDEA 编译报:Error:java: 未结束的字符串文字
最近使用Intellij IDEA时,发现两种问题: 一.发现编译时报:Error:java: 未结束的字符串文字 错误,同时无法运行test方法,但是不影响项目在tomcat运行和调试。 二.个别项目启动时会抛出“编码UTF-8的不可映射字符”的提醒。 解决方案: 1.在idea的Settings中,找到File Encodings,将IDE Encoding 改为UTF-8。 2.更改原创 2017-07-12 10:12:21 · 7252 阅读 · 1 评论 -
Hibernate与Mybatis比较
前言之前对hibernate有过详细的介绍,还整理成了专栏,但现在并非是hibernate一家独大,还有一种ORM框架与hibernate平分天下,本篇文章就对两者做个详细的对比介绍。 在开发一个项目之前,架构的技术选型对于项目的是否成功,是否高效,是否稳健至关重要。所以我们不仅要了解某一种技术的原理和实现,还要知道各种相似技术之间的差异,根据开发环境选择合适的技术。而最为ORM框架中的翘楚,我们原创 2015-10-30 20:40:39 · 1751 阅读 · 2 评论 -
Hibenrnate之缓存(一)
概述: Hibernate是一个持久层框架,经常访问物理数据库。为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能,缓存的合理使用就尤为重要。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。一级和二级缓存:应用原理:原创 2015-05-29 22:12:26 · 1037 阅读 · 3 评论 -
Ehcache基础学习
Ehcache 是现在最流行的纯Java开源缓存框架,配置简单、结构清晰、功能强大,最初知道它,是从Hibernate的缓存开始的。大纲图核心定义cache manager:缓存管理器,以前是只允许单例的,不过现在也可以多实例了。 cache:缓存管理器内可以放置若干cache,存放数据的实质,所有cache都实现了Ehcache接口。 element:单条缓存数据的组成单位 system o原创 2015-10-31 21:30:58 · 1360 阅读 · 2 评论 -
浅析java异常处理机制—高级篇
定义和使用异常类1、使用已有的异常类例如IOException、SQLException。try{ 程序代码 }catch(IOException ioe){ 程序代码 }catch(SQLException sqle){ 程序代码 }finally{ 程序代码 }2、自定义异常类创建Exception或者RuntimeException的子类即可得到一个自定义的异常类。例如:pub原创 2015-10-24 21:17:13 · 1419 阅读 · 1 评论 -
浅析java异常处理机制—中级篇
上一篇我们说到异常处理机制有:捕获异常和抛出异常。下面我们就详细介绍一下。捕获异常(try、catch 和 finally)处理流程: 1)当try没有捕获到异常时:try语句块中的语句逐一被执行,程序将跳过catch语句块,执行finally语句块和其后的语句; 2)当try捕获到异常,catch语句块里没有处理此异常的情况:当try语句块里的某条语句出现异常时,而没有处理此异常的catch语原创 2015-10-18 21:35:53 · 1634 阅读 · 2 评论 -
浅析java异常处理机制——理论篇
前言try…catch…finally恐怕是大家再熟悉不过的语句了,刚接触的时候感觉用起来也是很简单,逻辑上似乎也是很容易理解。可是随着我们学习和理解的深入,发现这个东西并没有想象中的那么简单。异常处理往往是我们编程时必须时时注意和不得不解决的问题。而我们写程序的时候往往只是被硬性的要求必须写try…catch,必须对异常处理,可是如何处理才合理,如何处理才能让系统更完善考虑的很少。我们对它缺少一个原创 2015-09-30 21:54:50 · 1579 阅读 · 2 评论 -
Struts2与Struts1的对比学习(一)
写在前面:Struts1官方已经停止更新,现在用的也比较少,但是了解Struts1可以帮助我们更好的理解Struts2.我们不能简单的把Struts2理解为Struts1的升级,甚至可以说这样理解是错误的。Struts2与Struts1有巨大的差别,Struts2以WebWork为核心,吸收了Struts1的优点,尽量解决Struts1存在的问题。正是这种差距,将两者放到一起对比,可以更好的理解原创 2015-09-25 22:18:14 · 2259 阅读 · 5 评论 -
Hibernate之关系映射(二)
我们继续说关系映射中的一对一关联映射。一对一即在A表中的每一条数据都会与B表中的1条数据有关联;这种情况下在数据库中可以在任意表中创建一个字段与另一个表的主键形成关联外键,亦可以直接将某一表的主键直接设置成外键与另一表的主键关联。在Hbiernatez中同样的有单向关联与双向关联,双向关联也是两种单向关联同时应用而已。单向一对一关联映射原创 2015-03-30 22:55:42 · 622 阅读 · 3 评论 -
事务—EJB事务(CMT)
EJB3的事务与安全EJB3的是事务也符合ACID,即原子性、一致性、隔离型、持久性。这些特性与数据库事务一致,需要强调的是一致性,在事务开始前,系统是处于一种遵守业务规则和约束的一致状态下,那么在事务提交或回滚之后,系统也必须维持这种一致性状态。在事务进行过程中不必处于不一致性状态,事务在这里就像一个沙箱(sand-box)。在EJB中,事务也具有隔离级别的控制,但一般不用通过EJB容器来控制,而原创 2015-06-29 22:40:04 · 1784 阅读 · 6 评论 -
Hibernate之继承映射
我们继续学习Hibenrnate映射中的继承映射。继承的概念大家应该都很熟悉,而它在Hibenrnate中的实现方式总共有三种: 1.每棵类继承树一张表。 2.每个类一张表。 3.每个具体类一张表。 每棵类继承树一张表 映射文件:<!DOCTYPEhiber原创 2015-03-31 23:01:54 · 877 阅读 · 7 评论 -
JAVA学习——JSP
简介: 前面我们写到了JAVA比较核心的一个概念servelet,其功能比较强劲,体系设计也很先进,只是,渲染客户端页面是需要一句一句输出的,这样,编写和修改HTML都会非常不方便。也就是说Servlet写“表现层”很繁琐。这就有了jsp(Java Server Page)的诞生。jsp通过在html或xml中嵌套Java代码实现动态网页。需要说明的是jsp本质是Servlet,运行时原创 2014-10-31 23:38:41 · 1002 阅读 · 9 评论 -
JAVA学习——Servlet
概述Servlet是我们学习Java时比较核心也是比较基础的一个知识点。我们首先看一下它的定义:Servlet(ServerApplet),全称Java Servlet。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。从这个概念我们可以知道,servlet是运行在服务器端,主要是接收浏览器的请求,然后处理,返回数据给浏览器。狭义的servlet是指原创 2014-09-30 15:06:53 · 934 阅读 · 15 评论 -
JDBC简单学习
什么是JDBC?Java语言访问数据库的一种规范,是一套API。JDBC(Java Database Connectivity)API,即Java数据库编程接口,是一组标准的Java语言中的接口和类,使用这些接口和类,Java客户端程序可以访问各种不同类型的数据库。比如建立数据库连接、执行SQL语句进行数据的存取操作。JDBC规范采用接口和实现分离的思想设计了Java数据库编程的框架。为了原创 2014-08-31 22:15:55 · 880 阅读 · 12 评论 -
DRP学习总结
通过王勇老师讲的DRP分销资源计划系统,对Java开发项目的简单构架有了一个系统的认识,JAVA的很多知识点都有涉及,可能讲的不是很系统,但是很好的解决了就怕不知道的问题。同时在讲解知识点的时候都会对比的讲,这样会很好的理解一些知识的优缺点,先是用我们很熟悉的web技术实现,然后一步步的完善和加入新的知识点,这样不仅将以前学的知识系统的回顾了一遍,也讲新的知识很好的融入进来。总之,我觉得DRP这个原创 2014-08-11 20:43:45 · 987 阅读 · 17 评论 -
环境变量中的path、classpath、Java_home
上一篇文章简单介绍了一下Oracle的安装过程,当然安装完Oracle只是一个开始,后续还有许多工作要做,而这些工作中,经常做的就是配置环境变量,每次安装完一个程序,然后按网上的设置步骤配置一次环境变量。突然发现每次设置都是按照步骤一步步设置完,能运行就OK,不能运行就重新设置一遍,而并不了解为啥要设置,于是就是一遍遍的重复。因为不了解它们的含义和作用,遇到问题解决起来也很费劲。原创 2014-06-05 22:24:33 · 2094 阅读 · 29 评论 -
Oracle安装和简单配置
这篇博客主要是介绍一下Oracle数据的安装过程和简单的配置,帮助大家可以简单的让Oracle运行起来,只是一个基础的教程。1.将下载的win64_11gR2_database_2of2.zip、win64_11gR2_database_2of2.zip解压到同一个目录中(先解压第一个文件,再解压第二个文件,提示覆盖就覆盖了),如下图所示: 2.运行setup.exe进原创 2014-05-31 23:56:17 · 3141 阅读 · 19 评论 -
tomcat的一些简单配置
一、管理tomcat用户名密码conf目录下,tomcat-users.xml如果仍不能登录tomcat管理界面,则看是否正确配置CATALINA_HOME环境变量,指向tomcat,lib目录,如:D:\MyWorkSpace\apache-tomcat-7.0.22 二、加大jvm内存原创 2014-06-30 21:07:53 · 1810 阅读 · 11 评论 -
Hibernate之集合映射
我们继续说Hibenrnate中的最后一个映射关系——集合映射。集合映射开发过程中应用的比较少,我们只做一下简单的介绍,在java中有四种类型的集合,分别是set、list、array、map。 区别: 是否可重复是否有序Set否否List原创 2015-04-29 22:14:29 · 803 阅读 · 11 评论 -
Hibernate之component映射
我们学习component映射首先要了解它的一些特性。组件(component)属性的意思是:持久化类的属性并不是基本数据类型,也不是字符串、日期等类型的变量,而是一个被包含的对象,在持久化的过程中,它仅仅被当做值类型,而并非一个实体引用。在DDD中被称为值类,与实体类的区别就是没有标识。属性介绍:在hibernate中Component映射采用标签原创 2015-04-28 23:32:49 · 1404 阅读 · 9 评论 -
java中的final关键字
谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字。另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法。 一、final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。当我们为了效率不想让某些类,方法原创 2015-08-30 22:29:44 · 1298 阅读 · 5 评论 -
Hibernate之基本映射
前言:再说Hibenrnate映射之前,我们先说说Hibenrnate的作用和它与数据库之间的关系。首先百度告诉我们:Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的原创 2015-02-28 23:45:53 · 928 阅读 · 5 评论 -
Hibernate之关系映射(一)
前序: 关系映射是我们Hibenrnate实体映射中比较常见的,平时用的也比较多。学习的过程我们可以想想我们以前学习的对象关系,这里所说的关联映射其实在对象中就是引用。常用的关系映射有: 多对一关联映射原理: 在多的一端加入一个外键,指向一的一端。同时实体中多的一端加入对一的引用。 对象和关系模型:原创 2015-03-26 00:20:06 · 739 阅读 · 3 评论 -
Hibernate 之Lazy机制
Hibernate的延迟加载(lazy load)是一个被广泛使用的技术。这种延迟加载保证了应用只有在需要时才去数据库中抓取相应的记录。通过延迟加载技术可以避免过多、过早地加载数据表里的数据,从而降低应用的内存开销。如果在获取对象的时候使用的是session.get()是不会延迟加载的,只有在使用load、hql时候才会延迟加载。我们简单介绍一下hibern原创 2015-05-23 21:28:24 · 1250 阅读 · 2 评论 -
多租户—概述
概念:多租户(Multi Tenancy/Tenant)是一种软件架构,其定义是:在一台服务器上运行单个应用实例,它为多个租户提供服务。在SaaS实施过程中,有一个显著的考量点,就是如何对应用数据进行设计,以支持多租户,而这种设计的思路,是要在数据的共享、安全隔离和性能间取得平衡。传统的应用,仅仅服务于单个租户,数据库多部署在企业内部网络环境,对于数据拥有者来说,这些数据是自己“私有”的,它符合自己原创 2015-07-28 22:29:07 · 2722 阅读 · 7 评论 -
多租户--hibernate实现
概念:多租户(Multi Tenancy/Tenant)是一种软件架构,其定义是:在一台服务器上运行单个应用实例,它为多个租户提供服务。在SaaS实施过程中,有一个显著的考量点,就是如何对应用数据进行设计,以支持多租户,而这种设计的思路,是要在数据的共享、安全隔离和性能间取得平衡。传统的应用,仅仅服务于单个租户,数据库多部署在企业内部网络环境,对于数据拥有者来说,这些数据是自己“私有”的,它符合自己原创 2015-07-30 23:53:41 · 7831 阅读 · 13 评论 -
Hibenrnate之缓存(二)
我们继续来说hibernate的缓存,先来探讨一下N+1的问题。 【问题情况】1)一对多(one-to-many),在1的这方,通过1条sql查找得到了1个对象,由于关联的存在,那么又需要将这个对 象关联的集合取出,所以合集数量是n还要发出n条sql,于是本来的1条sql查询变成了1 +n条 .2)多对一 ,在多的这方,通过1条sql查询得到了n个对原创 2015-05-31 16:14:24 · 1225 阅读 · 3 评论 -
事务--基本知识
一、什么是事务 事务是访问数据库的一个操作序列,数据库应用系统通过事务集来完成对数据库的存取。事务的正确执行使得数据库从一种状态转换成另一种状态。 事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。• 原子性。即不可分割性,事务要么全部被执行,要么就全原创 2015-06-28 11:51:06 · 966 阅读 · 4 评论 -
kafka基础介绍
1.kafkakafka是类jms消息队列,与jms不同的是,kafka可以有多个消费者consumer主动拉取数据。2.topictopic是逻辑上:一个目标发送目的地,物理上:一个磁盘上的partition的目录。一个topic可以对应多个partition;一个partition可以划分多个segment; 一个segment的默认值是1G;一个segment包括index 和 ...原创 2019-04-15 10:04:59 · 373 阅读 · 0 评论