<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lwfung]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/mrkohaku</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mrkohaku]]></copyright><item><title><![CDATA[Class.getResource()和ClassLoader.getResource()的区别]]></title><link>https://blog.youkuaiyun.com/mrkohaku/article/details/79914159</link><guid>https://blog.youkuaiyun.com/mrkohaku/article/details/79914159</guid><author>mrkohaku</author><pubDate>Thu, 12 Apr 2018 15:11:01 +0800</pubDate><description><![CDATA[Class.getResource(“xxx”)

（相对路径）在Class的所在目录中查找文件xxx。



Class.getResource(“/xxx”)

（绝对路径）在Classpath目录下查找文件xxx。 


Class.getClassLoader().getResource(“xxx”)

（开头不能加/）在Classpath目录下查找文件xxx。...]]></description><category></category></item><item><title><![CDATA[Hibernate对象的三种状态、saveOrUpdate()方法及merge()方法的总结]]></title><link>https://blog.youkuaiyun.com/mrkohaku/article/details/79631432</link><guid>https://blog.youkuaiyun.com/mrkohaku/article/details/79631432</guid><author>mrkohaku</author><pubDate>Tue, 20 Mar 2018 20:43:45 +0800</pubDate><description><![CDATA[瞬时状态（Transient）

对象与session没有关联，数据库中没有对应的数据。 
一般new出来的对象便是瞬时对象。 
对瞬时对象使用save()方法便使之成为持久对象。 
由于数据库中没有对应的数据，所以对瞬时对象使用update()方法无效。

持久状态（Persistent）

对象与session有关联，且数据库中有对应id的数据。 
使用get()、load()等方法获得的是持...]]></description><category></category></item><item><title><![CDATA[Hibernate Session的冲刷模式]]></title><link>https://blog.youkuaiyun.com/mrkohaku/article/details/79627211</link><guid>https://blog.youkuaiyun.com/mrkohaku/article/details/79627211</guid><author>mrkohaku</author><pubDate>Tue, 20 Mar 2018 16:09:28 +0800</pubDate><description><![CDATA[调用Session的setFlushMode()方法可以设置Session的冲刷模式。


NEVER：已废弃，被MANUAL取代。
MANUAL：会将事务设为readonly，所有写操作将会抛InvalidDataAccessApiUsageException。
COMMIT：调用flush()时冲刷、提交事务时冲刷；查询时不冲刷。
AUTO：调用flush()时冲刷、查询时冲刷、提交事务时冲刷...]]></description><category></category></item><item><title><![CDATA[Hibernate——映射文件（xxx.hbm.xml）]]></title><link>https://blog.youkuaiyun.com/mrkohaku/article/details/79240095</link><guid>https://blog.youkuaiyun.com/mrkohaku/article/details/79240095</guid><author>mrkohaku</author><pubDate>Tue, 06 Feb 2018 09:16:02 +0800</pubDate><description><![CDATA[本文以Hibernate 5.x 版本的映射文件为例说明。





DTD约束

5.0以前的版本：



<!DOCTYPE hibernate-mapping PUBLIC 
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
        "http://www.hibernate.org/dtd/hibernate-mapping]]></description><category></category></item><item><title><![CDATA[Hibernate——配置]]></title><link>https://blog.youkuaiyun.com/mrkohaku/article/details/79224532</link><guid>https://blog.youkuaiyun.com/mrkohaku/article/details/79224532</guid><author>mrkohaku</author><pubDate>Fri, 02 Feb 2018 10:32:25 +0800</pubDate><description><![CDATA[通用配置





· hibernate.dialect

方言。Hibernate会根据配置所指定的关系型数据库方言，生成合适的SQL语句。Hibernate内置的方言类在org.hibernate.dialect包下。

取值如：org.hibernate.dialect.MySQL5Dialect、org.hibernate.dialect.PostgreSQL94Dialect等等。]]></description><category></category></item><item><title><![CDATA[Hibernate——架构]]></title><link>https://blog.youkuaiyun.com/mrkohaku/article/details/79217548</link><guid>https://blog.youkuaiyun.com/mrkohaku/article/details/79217548</guid><author>mrkohaku</author><pubDate>Wed, 31 Jan 2018 16:46:27 +0800</pubDate><description><![CDATA[众所周知，Hibernate是一个实现了ORM（Object Relational Mapping）思想的框架。JAVA程序通过Hibernate提供的API，可以实现对关系型数据库的增删改查操作。所以，Hibernate是JAVA程序与关系型数据库的通信桥梁，如图： 
 
（图片来源于网络）

JPA（Java Persistence API）是JDK实现ORM思想的规范（一套接口），Hiber]]></description><category></category></item><item><title><![CDATA[JAVA设计模式——概述]]></title><link>https://blog.youkuaiyun.com/mrkohaku/article/details/79214175</link><guid>https://blog.youkuaiyun.com/mrkohaku/article/details/79214175</guid><author>mrkohaku</author><pubDate>Wed, 31 Jan 2018 11:22:42 +0800</pubDate><description><![CDATA[设计模式（Design pattern）是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。项目中合理地运用设计模式可以完美地解决很多问题。



设计模式的六大原则

1、开闭原则（Open Close Principle） 
开闭原则的意思是：对扩展开放，对修改关闭。在程序需要进行拓展的时候，不能去修改原有的]]></description><category></category></item><item><title><![CDATA[JAVA设计模式——解析器模式]]></title><link>https://blog.youkuaiyun.com/mrkohaku/article/details/79213321</link><guid>https://blog.youkuaiyun.com/mrkohaku/article/details/79213321</guid><author>mrkohaku</author><pubDate>Wed, 31 Jan 2018 10:21:44 +0800</pubDate><description><![CDATA[解析器模式是一种行为型设计模式。其思想是：给定一个语言, 定义它的文法的一种表示，并定义一个解释器，该解释器使用该表示来解释语言中的句子。

解析器模式涉及4个角色：


抽象表达式（Expression）：声明一个所有的具体表达式的抽象接口，包含一个interpret()方法，称做解释操作。
终结符表达式（Terminal Expression）： 实现与文法中的元素相关联的解释操作。通常一个解]]></description><category></category></item><item><title><![CDATA[JAVA设计模式——中介者模式]]></title><link>https://blog.youkuaiyun.com/mrkohaku/article/details/79208042</link><guid>https://blog.youkuaiyun.com/mrkohaku/article/details/79208042</guid><author>mrkohaku</author><pubDate>Tue, 30 Jan 2018 17:15:25 +0800</pubDate><description><![CDATA[中介者模式，又称为调停者模式，是一种行为型设计模式。其思想是：用一个中介者对象封装一系列的对象交互，使各对象不需要显示地相互作用，从而实现松耦合结构。

中介者模式涉及3个角色：


抽象中介者（Mediator）：中介者对象的接口，用于实现各个同事类之间的通信。
具体中介者（Concrete Mediator）：具体的中介者，实现抽象中介者中声明的方法。
同事（Colleague）：如果一个对象]]></description><category></category></item><item><title><![CDATA[JAVA设计模式——访问者模式]]></title><link>https://blog.youkuaiyun.com/mrkohaku/article/details/79206687</link><guid>https://blog.youkuaiyun.com/mrkohaku/article/details/79206687</guid><author>mrkohaku</author><pubDate>Tue, 30 Jan 2018 16:10:56 +0800</pubDate><description><![CDATA[访问者模式是一种行为型设计模式。其思想是：通过封装一些施加于某种数据结构元素之上的操作，使得当这些操作改变时，数据结构可以保持不变。

访问者模式涉及到5个角色：


抽象访问者（Visitor）：声明了一个或者多个方法，形成所有的具体访问者角色必须实现的接口。
具体访问者（Concrete Visitor）：实现抽象访问者所声明的方法。
抽象节点（Node）：声明一个接受方法，接受一个访问者对象]]></description><category></category></item><item><title><![CDATA[JAVA设计模式——状态模式]]></title><link>https://blog.youkuaiyun.com/mrkohaku/article/details/79201877</link><guid>https://blog.youkuaiyun.com/mrkohaku/article/details/79201877</guid><author>mrkohaku</author><pubDate>Tue, 30 Jan 2018 10:07:55 +0800</pubDate><description><![CDATA[状态模式，又称状态对象模式（Pattern of Objects for States），是一种行为型设计模式。其思想是：允许一个对象在其内部状态改变的时候改变其行为。

状态模式涉及3个角色：


环境（Context）：持有一个具体状态的引用和一些供客户使用的方法。
抽象状态（State）：定义一个接口，用以封装环境对象的一个特定的状态所对应的行为。
具体状态（Concrete State）：]]></description><category></category></item><item><title><![CDATA[JAVA设计模式——备忘录模式]]></title><link>https://blog.youkuaiyun.com/mrkohaku/article/details/79194955</link><guid>https://blog.youkuaiyun.com/mrkohaku/article/details/79194955</guid><author>mrkohaku</author><pubDate>Mon, 29 Jan 2018 17:02:28 +0800</pubDate><description><![CDATA[备忘录模式，又称快照模式（Snapshot Pattern），是一种行为型设计模式。其思想是：保存一个对象的某个状态，在不破坏封装性的前提下，捕获一个对象的内部状态，并在该对象之外保存这个状态，以便在适当的时候恢复对象。

备忘录模式涉及到3个角色：


备忘录（Memento）：将发起人对象的内部状态存储起来。备忘录可提供两种接口： 
窄接口：只允许负责人对象（和其他除发起人对象之外的任何对象）]]></description><category></category></item><item><title><![CDATA[JAVA设计模式——命令模式]]></title><link>https://blog.youkuaiyun.com/mrkohaku/article/details/79191879</link><guid>https://blog.youkuaiyun.com/mrkohaku/article/details/79191879</guid><author>mrkohaku</author><pubDate>Mon, 29 Jan 2018 11:04:59 +0800</pubDate><description><![CDATA[命令模式，又称为行动(Action)模式、交易(Transaction)模式，是一种行为型设计模式。命令模式的思想是：把一个请求或者操作封装到一个对象中，允许系统使用不同的请求把客户端参数化，从而实现对请求排队或者记录请求日志、提供命令的撤销和恢复功等能。

命令模式涉及5个角色：


客户（Client）：创建一个具体命令对象并确定其接收者。
抽象命令（Command）：声明了一个给所有具体命令]]></description><category></category></item><item><title><![CDATA[JAVA设计模式——责任链模式]]></title><link>https://blog.youkuaiyun.com/mrkohaku/article/details/79168436</link><guid>https://blog.youkuaiyun.com/mrkohaku/article/details/79168436</guid><author>mrkohaku</author><pubDate>Fri, 26 Jan 2018 10:31:12 +0800</pubDate><description><![CDATA[责任链模式是一种行为型设计模式。责任链模式的思想是：为请求创建了一个接收者对象的链，如果一个接收者对象不能处理该请求，那么它会把相同的请求传给下一个接收者，依此类推。

责任链模式涉及到2个角色：


抽象处理者（Handler）：定义出一个处理请求的接口。如果需要，接口可以定义 出一个方法以设定和返回对下家的引用。
具体处理者（Concrete Handler）：具体处理者接到请求后，可以选择将]]></description><category></category></item><item><title><![CDATA[JAVA设计模式——迭代子模式]]></title><link>https://blog.youkuaiyun.com/mrkohaku/article/details/79158561</link><guid>https://blog.youkuaiyun.com/mrkohaku/article/details/79158561</guid><author>mrkohaku</author><pubDate>Thu, 25 Jan 2018 15:53:51 +0800</pubDate><description><![CDATA[迭代子模式，又叫游标(Cursor)模式，是一种行为型设计模式。其思想是：利用迭代子顺序地访问一个聚集中的元素而不必暴露聚集的内部表象（internal representation）。





几个基本概念


聚集（Aggregate）：多个对象聚在一起形成的总体称之为聚集，聚集对象是能够包容一组对象的容器对象。聚集依赖于聚集结构的抽象化，具有复杂化和多样性。数组就是最基本的聚集，也是其他的]]></description><category></category></item><item><title><![CDATA[JAVA设计模式——观察者模式]]></title><link>https://blog.youkuaiyun.com/mrkohaku/article/details/79148261</link><guid>https://blog.youkuaiyun.com/mrkohaku/article/details/79148261</guid><author>mrkohaku</author><pubDate>Wed, 24 Jan 2018 16:47:21 +0800</pubDate><description><![CDATA[观察者模式，又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式，是一种行为型设计模式。

观察者模式的思想是：定义一种一对多的依赖关系，让多个观察者对象同时监听某一个主题对象，这个主题对象在状态上发生变化时，会通知所有观察者对象，使它们能够自动更新自己。

观察者模式]]></description><category></category></item><item><title><![CDATA[JAVA设计模式——模板方法模式]]></title><link>https://blog.youkuaiyun.com/mrkohaku/article/details/79140846</link><guid>https://blog.youkuaiyun.com/mrkohaku/article/details/79140846</guid><author>mrkohaku</author><pubDate>Tue, 23 Jan 2018 16:46:57 +0800</pubDate><description><![CDATA[模板方法模式是一种行为型设计模式。其思想是：将部分逻辑以具体方法的形式实现，然后声明一些抽象方法来迫使子类实现剩余的逻辑，不同的子类可以以不同的方式实现这些抽象方法，从而对剩余的逻辑有不同的实现。

模板方法模式涉及到2个角色：


抽象模板（Abstract Template）： 
定义了一个或多个抽象操作，以便让子类实现。这些抽象操作叫做基本操作，它们是一个顶级逻辑的组成步骤。
定义并实现了一]]></description><category></category></item><item><title><![CDATA[JAVA设计模式——策略模式]]></title><link>https://blog.youkuaiyun.com/mrkohaku/article/details/79139077</link><guid>https://blog.youkuaiyun.com/mrkohaku/article/details/79139077</guid><author>mrkohaku</author><pubDate>Tue, 23 Jan 2018 14:32:27 +0800</pubDate><description><![CDATA[策略模式是一种行为型设计模式。策略模式的思想是：将每一个算法封装到具有共同接口的独立的类中，从而使得它们可以相互替换。

策略模式涉及到3个角色：


环境（Context）：持有一个抽象策略的引用，是策略的调用者。
抽象策略（Strategy）：所有具体策略的抽象。
具体策略（Concrete Strategy）：封装了算法和行为的具体策略。


结构图： 


具体代码实现：

策略：]]></description><category></category></item><item><title><![CDATA[JAVA设计模式——享元模式]]></title><link>https://blog.youkuaiyun.com/mrkohaku/article/details/79136882</link><guid>https://blog.youkuaiyun.com/mrkohaku/article/details/79136882</guid><author>mrkohaku</author><pubDate>Tue, 23 Jan 2018 11:31:09 +0800</pubDate><description><![CDATA[享元模式是一种结构型设计模式。享元模式的思想是：以共享的方式高效地支持大量的细粒度对象。简单来说就是共享池的思想，如连接池、线程池、字符串常量池等。

享元模式涉及3个角色：


抽象享元（Flyweight）：需要被共享的对象的抽象接口。
具体享元（Concrete Flyweight）：需要被共享的实体对象。
享元工厂（Flyweight Factory）：集中管理共享对象并为客户提供共享对象]]></description><category></category></item><item><title><![CDATA[JAVA设计模式——组合模式]]></title><link>https://blog.youkuaiyun.com/mrkohaku/article/details/79129029</link><guid>https://blog.youkuaiyun.com/mrkohaku/article/details/79129029</guid><author>mrkohaku</author><pubDate>Mon, 22 Jan 2018 15:08:26 +0800</pubDate><description><![CDATA[组合模式（又称“部分-整体”模式）是一种结构型设计模式。组合模式的思想是：将对象组合成树形结构以表示“部分-整体”的层次结构，使得用户对单个对象和组合对象的使用具有一致性。

组合模式涉及3个角色：


抽象组件（Component）：组合中所有具体组件的抽象接口，用于规范组件的属性和行为，相当于树的节点（Node）。
具体组件（Composite）：组合中每个具体的组件，相当于树的枝节点。
未端]]></description><category></category></item></channel></rss>