自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 Class.getResource()和ClassLoader.getResource()的区别

Class.getResource(“xxx”)(相对路径)在Class的所在目录中查找文件xxx。Class.getResource(“/xxx”)(绝对路径)在Classpath目录下查找文件xxx。 Class.getClassLoader().getResource(“xxx”)(开头不能加/)在Classpath目录下查找文件xxx。...

2018-04-12 15:11:01 261 1

原创 Hibernate对象的三种状态、saveOrUpdate()方法及merge()方法的总结

瞬时状态(Transient)对象与session没有关联,数据库中没有对应的数据。 一般new出来的对象便是瞬时对象。 对瞬时对象使用save()方法便使之成为持久对象。 由于数据库中没有对应的数据,所以对瞬时对象使用update()方法无效。持久状态(Persistent)对象与session有关联,且数据库中有对应id的数据。 使用get()、load()等方法获得的是持...

2018-03-20 20:43:45 1352

原创 Hibernate Session的冲刷模式

调用Session的setFlushMode()方法可以设置Session的冲刷模式。NEVER:已废弃,被MANUAL取代。MANUAL:会将事务设为readonly,所有写操作将会抛InvalidDataAccessApiUsageException。COMMIT:调用flush()时冲刷、提交事务时冲刷;查询时不冲刷。AUTO:调用flush()时冲刷、查询时冲刷、提交事务时冲刷...

2018-03-20 16:09:28 228

原创 Hibernate——映射文件(xxx.hbm.xml)

本文以Hibernate 5.x 版本的映射文件为例说明。DTD约束5.0以前的版本:<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping

2018-02-06 09:16:02 399

原创 Hibernate——配置

通用配置· hibernate.dialect方言。Hibernate会根据配置所指定的关系型数据库方言,生成合适的SQL语句。Hibernate内置的方言类在org.hibernate.dialect包下。取值如:org.hibernate.dialect.MySQL5Dialect、org.hibernate.dialect.PostgreSQL94Dialect等等。

2018-02-02 10:32:25 977

原创 Hibernate——架构

众所周知,Hibernate是一个实现了ORM(Object Relational Mapping)思想的框架。JAVA程序通过Hibernate提供的API,可以实现对关系型数据库的增删改查操作。所以,Hibernate是JAVA程序与关系型数据库的通信桥梁,如图: (图片来源于网络)JPA(Java Persistence API)是JDK实现ORM思想的规范(一套接口),Hiber

2018-01-31 16:46:27 596

原创 JAVA设计模式——概述

设计模式(Design pattern)是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。项目中合理地运用设计模式可以完美地解决很多问题。设计模式的六大原则1、开闭原则(Open Close Principle) 开闭原则的意思是:对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的

2018-01-31 11:22:42 378

原创 JAVA设计模式——解析器模式

解析器模式是一种行为型设计模式。其思想是:给定一个语言, 定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。解析器模式涉及4个角色:抽象表达式(Expression):声明一个所有的具体表达式的抽象接口,包含一个interpret()方法,称做解释操作。终结符表达式(Terminal Expression): 实现与文法中的元素相关联的解释操作。通常一个解

2018-01-31 10:21:44 1819

原创 JAVA设计模式——中介者模式

中介者模式,又称为调停者模式,是一种行为型设计模式。其思想是:用一个中介者对象封装一系列的对象交互,使各对象不需要显示地相互作用,从而实现松耦合结构。中介者模式涉及3个角色:抽象中介者(Mediator):中介者对象的接口,用于实现各个同事类之间的通信。具体中介者(Concrete Mediator):具体的中介者,实现抽象中介者中声明的方法。同事(Colleague):如果一个对象

2018-01-30 17:15:25 222

原创 JAVA设计模式——访问者模式

访问者模式是一种行为型设计模式。其思想是:通过封装一些施加于某种数据结构元素之上的操作,使得当这些操作改变时,数据结构可以保持不变。访问者模式涉及到5个角色:抽象访问者(Visitor):声明了一个或者多个方法,形成所有的具体访问者角色必须实现的接口。具体访问者(Concrete Visitor):实现抽象访问者所声明的方法。抽象节点(Node):声明一个接受方法,接受一个访问者对象

2018-01-30 16:10:56 255

原创 JAVA设计模式——状态模式

状态模式,又称状态对象模式(Pattern of Objects for States),是一种行为型设计模式。其思想是:允许一个对象在其内部状态改变的时候改变其行为。状态模式涉及3个角色:环境(Context):持有一个具体状态的引用和一些供客户使用的方法。抽象状态(State):定义一个接口,用以封装环境对象的一个特定的状态所对应的行为。具体状态(Concrete State):

2018-01-30 10:07:55 254

原创 JAVA设计模式——备忘录模式

备忘录模式,又称快照模式(Snapshot Pattern),是一种行为型设计模式。其思想是:保存一个对象的某个状态,在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便在适当的时候恢复对象。备忘录模式涉及到3个角色:备忘录(Memento):将发起人对象的内部状态存储起来。备忘录可提供两种接口: 窄接口:只允许负责人对象(和其他除发起人对象之外的任何对象)

2018-01-29 17:02:28 335

原创 JAVA设计模式——命令模式

命令模式,又称为行动(Action)模式、交易(Transaction)模式,是一种行为型设计模式。命令模式的思想是:把一个请求或者操作封装到一个对象中,允许系统使用不同的请求把客户端参数化,从而实现对请求排队或者记录请求日志、提供命令的撤销和恢复功等能。命令模式涉及5个角色:客户(Client):创建一个具体命令对象并确定其接收者。抽象命令(Command):声明了一个给所有具体命令

2018-01-29 11:04:59 308

原创 JAVA设计模式——责任链模式

责任链模式是一种行为型设计模式。责任链模式的思想是:为请求创建了一个接收者对象的链,如果一个接收者对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。责任链模式涉及到2个角色:抽象处理者(Handler):定义出一个处理请求的接口。如果需要,接口可以定义 出一个方法以设定和返回对下家的引用。具体处理者(Concrete Handler):具体处理者接到请求后,可以选择将

2018-01-26 10:31:12 330

原创 JAVA设计模式——迭代子模式

迭代子模式,又叫游标(Cursor)模式,是一种行为型设计模式。其思想是:利用迭代子顺序地访问一个聚集中的元素而不必暴露聚集的内部表象(internal representation)。几个基本概念聚集(Aggregate):多个对象聚在一起形成的总体称之为聚集,聚集对象是能够包容一组对象的容器对象。聚集依赖于聚集结构的抽象化,具有复杂化和多样性。数组就是最基本的聚集,也是其他的

2018-01-25 15:53:51 397

原创 JAVA设计模式——观察者模式

观察者模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式,是一种行为型设计模式。观察者模式的思想是:定义一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。观察者模式

2018-01-24 16:47:21 340

原创 JAVA设计模式——模板方法模式

模板方法模式是一种行为型设计模式。其思想是:将部分逻辑以具体方法的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑,不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。模板方法模式涉及到2个角色:抽象模板(Abstract Template): 定义了一个或多个抽象操作,以便让子类实现。这些抽象操作叫做基本操作,它们是一个顶级逻辑的组成步骤。定义并实现了一

2018-01-23 16:46:57 288

原创 JAVA设计模式——策略模式

策略模式是一种行为型设计模式。策略模式的思想是:将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式涉及到3个角色:环境(Context):持有一个抽象策略的引用,是策略的调用者。抽象策略(Strategy):所有具体策略的抽象。具体策略(Concrete Strategy):封装了算法和行为的具体策略。结构图: 具体代码实现:策略:

2018-01-23 14:32:27 400

原创 JAVA设计模式——享元模式

享元模式是一种结构型设计模式。享元模式的思想是:以共享的方式高效地支持大量的细粒度对象。简单来说就是共享池的思想,如连接池、线程池、字符串常量池等。享元模式涉及3个角色:抽象享元(Flyweight):需要被共享的对象的抽象接口。具体享元(Concrete Flyweight):需要被共享的实体对象。享元工厂(Flyweight Factory):集中管理共享对象并为客户提供共享对象

2018-01-23 11:31:09 361

原创 JAVA设计模式——组合模式

组合模式(又称“部分-整体”模式)是一种结构型设计模式。组合模式的思想是:将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。组合模式涉及3个角色:抽象组件(Component):组合中所有具体组件的抽象接口,用于规范组件的属性和行为,相当于树的节点(Node)。具体组件(Composite):组合中每个具体的组件,相当于树的枝节点。未端

2018-01-22 15:08:26 1753

原创 JAVA设计模式——桥接模式

桥接模式是一种结构型设计模式。桥接模式的思想是:将抽象部分与它的实现部分分离,使它们都可以独立地变化。桥接模式将继承关系转换为关联关系,从而降低了类与类之间的耦合。桥接模式涉及4个角色:抽象桥(Abstraction):客户与实现之间的中间连接,指向抽象实现。具体桥(Refined Abstraction):桥的实现类。抽象实现(Implementor):实现(这里的实现不是指实现类

2018-01-22 11:19:47 492

原创 JAVA设计模式——外观模式

外观模式(又称为门面模式)是一种结构型设计模式。外观模式的思想是:为子系统的各个模块提供一个统一的门面,由门面负责对客户提供服务。外观模式涉及2个角色:门面(Facade):负责为客户提供服务,将所有从客户端发来的请求委派到相应的子系统去。子系统(Subsystem):子系统中包含多个模块。可包含一个或多个子系统。每个子系统都可以被客户端直接调用,或者被门面角色调用,子系统并不知道门面

2018-01-22 09:34:55 233

原创 JAVA设计模式——代理模式

代理模式是一种结构型设计模式。代理模式的思想是:给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。代理模式涉及3个角色:抽象对象(Subject):代理和目标的共同接口。共同的接口使得任何可以使用目标对象的地方都可以使用代理对象。目标对象(Target):要被代理的对象,也称为委托者。代理对象(Proxy):内部包含了一个目标对象的引用,从而代替目标对象为客户提供服务。

2018-01-19 16:09:43 469 1

原创 JAVA设计模式——装饰模式

装饰模式是一种结构型设计模式。装饰模式的思想是:以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。装饰模式涉及4个角色:抽象构件(Component):要被装饰的类的抽象。具体构件(Concrete Component):要被装饰的具体类型。抽象装饰者(Decorator):内部包装了一个构件的实例,并实现与构件接口相同的接口。具体装饰者(Concrete Decora

2018-01-19 10:39:02 380

原创 JAVA设计模式——适配器模式

适配器模式是一种结构型设计模式。适配器模式的思想是:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。用电器来打个比喻:有一个电器的插头是三脚的,而现有的插座是两孔的,要使插头插上插座,我们需要一个插头转换器,这个转换器即是适配器。适配器模式涉及3个角色:源(Adaptee):需要被适配的对象或类型,相当于插头。适配器(Ad

2018-01-18 16:28:30 42492 15

原创 JAVA设计模式——原型模式

原型模式是一种创建型设计模式。原型模式的思想是:通过对原型对象的克隆来获得新对象。原型模式涉及3个角色:抽象原型(Prototype):具体原型的抽象。如果是抽象类,则实现Cloneable接口并重写clone()方法;如果是接口,则只给出规范,由实现Cloneable接口并重写clone()方法。具体原型(Concrete Prototype):客户实际所需要的对象的类型。客户(C

2018-01-17 16:42:08 318

原创 JAVA设计模式——单例模式

单例模式是一种创建型设计模式。单例模式的思想是:保证一个类只有一个实例,且这个实例由该类自行实例化并向外提供给用户。 饿汉式单例类加载时,实例随之被创建。这种方式节省了运行时间,但可能浪费空间。public class SingletonEager implements Serializable { private static final long serialVer

2018-01-17 10:29:15 177

原创 JAVA设计模式——建造者模式

建造者模式是创建型设计模式。一个产品常由不同的零件构成,我们把这些零件叫做产品的内部表象(internal representation)。不同的产品可以有不同的内部表象,也就是不同的零件。建造模式思想是:把创建对象过程中,使用了哪些零件,零件之间有什么关系等统统封装起来,可以使客户需要知道这些的情况下得到所需要的对象。建造者模式包含4个角色:抽象建造者(builder):给出一个抽象接

2018-01-16 17:28:50 302

原创 JAVA设计模式——工厂方法模式和抽象工厂模式

工厂模式属于设计模式中的创建型模式。其思想是:客户指定需要的对象,把需求告诉工厂,工厂负责创建对象并返回给客户。工厂模式又分为工厂方法模式和静态工厂模式,下面分别来谈谈。 工厂方法模式工厂方法是针对每一种产品提供一个工厂类。通过不同的工厂实例来创建不同的产品实例。想象这样一个场景:有一个汽车工厂,客户可向工厂提交订单,选择何种底盘和何种引擎,工厂根据订单生产汽车交付给客户。这就是

2018-01-15 15:36:55 484

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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