- 博客(24)
- 收藏
- 关注
原创 AOP异常通知
定义接口 package com.zking.springproxy; public interface IPerson { public boolean transfer(int i); } 编写实现类 package com.zking.springproxy; public class XiaoMing implements IPerson { ...
2018-09-19 11:04:17
470
原创 Spring ref 与idref标签的区别
首先来看下官方文档上给出的两个例子: 第一个: <bean id="theTargetBean" class="..."/> <bean id="theClientBean" class="..."> <property name="targetName"> <idref bean
2018-09-19 09:43:47
252
原创 设计模式之抽象工厂模式(Abstract Factory)
工厂方法模式和抽象工厂模式不好分清楚,他们的区别如下: 工厂方法模式: 一个抽象产品类,可以派生出多个具体产品类。 一个抽象工厂类,可以派生出多个具体工厂类。 每个具体工厂类只能创建一个具体产品类的实例。 抽象工厂模式: 多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。 一个抽象工厂类,可以派生出多个具体工厂类。 每个具体工厂类可以创建多个具体产品类的实...
2018-09-19 09:02:13
180
原创 23种设计模式之简单工厂模式
一、什么是简单工厂模式 简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式。通过专门定义一个类来负责创建其他类的实例,创被建实例的都通常具有共同的父类。 二、模式中包含的角色及其职责 1.工厂(生成器)角色? 简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。 2.抽象(产品)角色? 简单工厂模式所创建的所有对象的父类,它负责描...
2018-09-19 08:53:31
187
原创 Hibernate一对一关系映射
一对一映射 假设一个人只能有一张ID,ID只能被一个人拥有 1.Person类 public class Person { private String pid; private String pname; private Card card; //省略get和set方法 } 2.Card类 public class Card { private String pi...
2018-09-09 08:50:48
123
原创 自定义hibernate主键生成策略
所有环境搭配好之后 package com.zking.uitl; import java.io.Serializable; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.te...
2018-09-06 15:09:48
263
原创 Hibernate clear()方法的解释以及用法 load()方法懒加载问题
1、clear() 无论是Load 还是 Get 都会首先查找缓存(一级缓存) 如果没有,才会去数据库查找,调用Clear() 方法,可以强制清除Session缓存 package com.zking.entity; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.h...
2018-09-06 14:55:47
329
原创 struts2 # , %{} ,%{#}用法
1、“#”符号的用途: 访问非根对象(struts中值栈为根对象),OGNL在不添加任何符号的情况下,默认访问的是ValueStack中的值,也就是说是Action中的属性和方法;如OGNL上下文和Action上下文,#相当于ActionContext.getContext(); 2.%{#} 符号的用途 在域对象中使用%{#} 比如%{#session.user.userName} ...
2018-08-20 23:46:27
160
原创 ==与===的区别
==与===的判断规则是不一样的== equality 等同,=== identity 恒等。==, 两边值类型不同的时候,要先进行类型转换,再比较。===,不做类型转换,类型不同的一定不等。首先介绍===,这个比较简单1、如果类型不同,就[不相等]2、如果两个都是数值,并且是同一个值,那么[相等];3、如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。4、如果两个值都是tr...
2018-06-24 00:08:28
277
原创 BodyTagSupport 和TagSupport的区别
1. TagSupport与BodyTagSupport的区别主要是标签处理类是否需要与标签体交互,如果不需要交互的就用TagSupport,否则如果需要交互就用BodyTagSupport。 交互就是标签处理类是否要读取标签体的内容和改变标签体返回的内容。 用TagSupport实现的标签,都可以用BodyTagSupport来实现,因为BodyTagSupport继承了TagSuppor...
2018-06-03 20:26:49
200
原创 Java反射机制
一.反射的概念JAVA反射机制实在运行状态中,对于任意一个类,都能够知道这个类的所有数字那个和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 二.反射机制的作用 1,反编译:.class-->.java 2,通过反射机制访问java对象的属性,方法,构造方法等;三.具体功能实现首先给出我的实体...
2018-06-02 22:37:45
106
原创 Java快速排序(固定基准元)
今天为大家介绍固定基准元的快速排序首先它是一种排序算法,排序算法是为了让无序的数据组合变成有序的数据组合。有序的数组在进行数据定位和采用时非常方便,因为有序的数据可以减少设计代码的麻烦因为无序数据进行推断前后关系时会显得很繁琐。若数据较大则采用快速排序,快速排序是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最短。固定基准元:即选取数组块第一个元素作为...
2018-05-27 16:54:52
560
原创 XML文件与properties文件的异同
1、从结构上来说: .xml文件主要是树形结构。 .properties文件主要是以key-value键值对的形式存在2、从灵活程度上来说: .xml格式的文件要比.properties格式的文件更灵活一些 .properties格式的文件已键值对形式存在,主要就是赋值,而且只能赋值,不能够进行其他的操作。 .xml格式的文件可以有多种操作方法,例如添...
2018-05-25 23:26:35
214
原创 XML文件中的java操作有哪些
JAVA解析XML的四种方法1、JDOM生成和解析XML为减少DOM、SAX的编码量,出现了JDOM优点:20-80原则,极大减少了代码量。使用场合:要实现的功能简单,如解析、创建等,但在底层,JDOM还是使用SAX(最常用)、DOM、Xanan文档。2、SAX生成和解析XML文档为解决DOM的问题,出现了SAX,SAX 事件驱动。当解析器发现元素开始、元素结束、文本、文档的开始或结束等时发送事件...
2018-05-25 23:21:05
133
原创 XML文件中的DTD是什么?
DTD为英文Document Type Definition,中文意思为“文档类型定义”。DTD肩负着两重任务:一方面它帮助你编写合法的代码,另一方面它让浏览器正确地显示器代码。 文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。<html> <head&g...
2018-05-25 22:33:59
475
原创 XML是什么?
XML 指可扩展标记语言(eXtensible Markup Language)XML 被设计用来传输和存储数据。XML 指可扩展标记语言XML 是一种标记语言,很类似 HTMLXML 的设计宗旨是传输数据,而非显示数据XML 标签没有被预定义,您需要自行定义标签。XML 被设计为具有自我描述性。XML 与 HTML 的主要差异XML 不是 HTML 的替代。XML 和 HTML 为不同的目的而设...
2018-05-25 22:12:20
246
转载 Comparable 和 Comparator 的区别
Comparable 自然排序Comparable 在 java.lang 包下,是一个接口,内部只有一个方法 compareTo():compareTo 方法的返回值有三种情况:e1.compareTo(e2) > 0 即 e1 > e2e1.compareTo(e2) = 0 即 e1 = e2e1.compareTo(e2) < 0 即 e1 < e2实现了 Comp...
2018-05-24 23:25:55
99
转载 堆栈之间的差别
栈和堆栈是一个概念。队列先进先出,在队头做删除操作,在队尾做插入操作。栈先进后出,在栈顶做插入和删除操作。堆和它们不同,不存在是先进后出还是先进先出。 1.栈(Stack)是操作系统在建立某个进程时或者线程(在支持多线程的操作系统中是线程)为这个线程建立的存储区域,该区域具有FIFO的特性,在编译的时候可以指定需要的Stack的大小。在编程中,例如C/C++中,所有的局部变量都是从栈中分配内存空间...
2018-05-23 20:58:29
129
转载 MySQL中limit的优化
1.子查询优化法 先找出第一条数据,然后大于等于这条数据的id就是要获取的数据 缺点:数据必须是连续的,可以说不能有where条件,where条件会筛选数据,导致数据失去连续性2.倒排表优化法 倒排表法类似建立索引,用一张表来维护页数,然后通过高效的连接得到数据缺点:只适合数据数固定的情况,数据不能删除,维护页表困难3.反向查找优化法 当偏移超过一半记录数的时候,先用排序,这样偏移就反转了缺点:o...
2018-05-23 20:54:22
143
转载 LinkedList和ArrayList异同
ArrayList和LinkedList的大致区别如下:1.ArrayList和LinkedList可想从名字分析,它们一个是Array(动态数组)的数据结构,一个是Link(链表)的数据结构,此外,它们两个都是对List接口的实现。2.当随机访问List时(get和set操作),ArrayList比LinkedList的效率更高,因为LinkedList是线性的数据存储方式,所以需要移动指针从前...
2018-05-23 20:38:26
168
转载 Vector和ArrayList异同
ArrayList ArrayList是基于数组实现的一种顺序表,采用线性连续空间存储元素,它有三个构造方法:public ArrayList(int initialCapacity) { //创建一个具有指定容量initialCapacity的空列表 } public ArrayList() { //创建一个具有默认容量(10)的空列表 } public ...
2018-05-23 19:40:14
125
原创 mysql自定义函数:传入值(0为女,1为男)
这是一个比较简单的判断传入一个数值若为0则输出女为1则输出男以下是我的代码DELIMITER $$ CREATE FUNCTION `person`.`hhh`(index1 INT)//定义一个变量 RETURNS VARCHAR(10)//定义返回的数据类型和长度 BEGIN DECLARE result VARCHAR(10);//必须和上面保持一致 IF...
2018-05-23 19:21:23
2049
原创 Mysql一个比较简单的分页存储过程
实现效果DELIMITER $$ CREATE /*pro为存储过程名字 pageindex 当前页 rs */ PROCEDURE `person`.`pro`(pageindex INT,rs INT) BEGINSET @index=CONCAT('select *from text limit ',((pageindex-1)*rs)...
2018-05-23 19:13:24
1025
原创 MySql解决 sql语句无法识别运算符
以limit为例。MySQL不同于SQL server可以在SQL语句中运行数字的运算按照SQL server的套路SELECT *FROM TEXT LIMIT ((1-1)*5),5;很明显运行结果是错的以下是个人的解决方法SET @index=CONCAT('select *from text limit ',((1-1)*5),',',5,'');//text为表名PREPARE s FR...
2018-05-23 19:02:09
467
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人