03 2016 档案

摘要:问题场景 最近在项目中遇到了对每一个类型进行求和并且求该类型所占的比例,当时考虑求出每种类型的和,并在java中分别对每一种类型的和与总和相除求出所占比例。后来,想到这样有点麻烦,并且项目中持久层使用的是iBatis框架,所有考虑从SQL方面进行入手来简化这个问题。 后来SQL的解决方法就为: 看到 阅读全文
posted @ 2016-03-31 21:40 ngulc 阅读(149685) 评论(7) 推荐(12) 编辑
摘要:简介 前段时间写的java设计模式--代理模式,最近在看Spring Aop的时候,觉得于代理模式应该有密切的联系,于是决定了解下Spring Aop的实现原理。 说起AOP就不得不说下OOP了,OOP中引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。但是,如果我们需 阅读全文
posted @ 2016-03-31 00:07 ngulc 阅读(120683) 评论(10) 推荐(21) 编辑
摘要:介绍 在Ibatis中我们使用SqlMap进行Sql查询时需要引用参数,在参数引用中遇到的符号#和$之间的区分为,#可以进行与编译,进行类型匹配,而$不进行数据类型匹配,例如: select * from table where id = #id# ,其中如果字段id为字符型,那么#id#表示的就是 阅读全文
posted @ 2016-03-30 20:36 ngulc 阅读(4586) 评论(0) 推荐(2) 编辑
摘要:简介 为了给并发程序开发提供更好的支持,java不仅提供了Thread类、Runnable接口等简单的多线程支持工具,还提供了用于多线程管理的线程池,用于提高并发程序的性能。 无限制线程的缺陷 多线程的软件设计方法确实可以提高多核处理器的计算能力,提高系统的性能和吞吐量,但是如果不加限制的使用多线程 阅读全文
posted @ 2016-03-29 21:37 ngulc 阅读(940) 评论(0) 推荐(1) 编辑
摘要:今天在做Struts2的测试用例时候,程序能正常跳转,但是在Console却报了一个错误,如下: 刚开始,百思不得其解,因为在我的form中没有用到resourceEntries,于是根据代码查看struts2源码,在struts2源码中找到了resourceEntries。 看到org.apach 阅读全文
posted @ 2016-03-27 11:53 ngulc 阅读(7242) 评论(0) 推荐(0) 编辑
摘要:生产者-消费者模式是经典的多线程设计模式,它为多线程间的协作提供了良好的解决方案。在生产者-消费者模式中,有两类线程:若干个生产者线程和若干个消费者线程。生产者负责提交用户请求,消费者用于具体的处理生产者提交的任务。生产者和消费者通过共享内存缓冲区进行数据通信。 生产者-消费者模式的基本结构如下图: 阅读全文
posted @ 2016-03-23 23:04 ngulc 阅读(986) 评论(0) 推荐(0) 编辑
摘要:Master-Worker模式是常用的并行设计模式。它的核心思想是,系统有两个进程协议工作:Master进程和Worker进程。Master进程负责接收和分配任务,Worker进程负责处理子任务。当各个Worker进程将子任务处理完后,将结果返回给Master进程,由Master进行归纳和汇总,从而 阅读全文
posted @ 2016-03-22 23:23 ngulc 阅读(6904) 评论(2) 推荐(3) 编辑
摘要:Ibatis允许用户像在hibernate中一样定义自己的类型,但是,用户自定义类型需要与数据库中的字段类型进行对应。它的处理方法是允许我们扩展TypeHandler。Ibatis框架在处理该数据类型时就会自动调用TypeHandler进行类型转换,非常方便,ibatis中所有的类型都有它自己的Ty 阅读全文
posted @ 2016-03-21 23:52 ngulc 阅读(4490) 评论(0) 推荐(1) 编辑
摘要:最近在项目中出现两种情况(因为项目比较早,经历各个版本的改动,所有设计不一致),第一种:数据库中某一字段为Date类型,对应的bean中的类型为java.util.Date,所有在对应的映射中会出现字段和属性类型不匹配为题;第二种情况为数据库中为Date类型,对应的字符串为String类型,这样在映 阅读全文
posted @ 2016-03-20 11:25 ngulc 阅读(9946) 评论(0) 推荐(1) 编辑
摘要:Future模式有点类似于网上购物,在你购买商品,订单生效之后,你可以去做自己的事情,等待商家通过快递给你送货上门。Future模式就是,当某一程序提交请求,期望得到一个答复。但是可能服务器程序对这个请求的处理比较慢,因此不可能马上收到答复。但是,在传统的单线程环境下,调用函数是同步的,它必须等到服 阅读全文
posted @ 2016-03-17 21:48 ngulc 阅读(3951) 评论(0) 推荐(0) 编辑
摘要:在软件系统中,I/O的速度要比内存的速度慢很多,因此I/O经常会称为系统的瓶颈。所有,提高I/O速度,对于提升系统的整体性能有很大的作用。 在java标准的I/O中,是基于流的I/O的实现,即InputStream和OutPutStream,这种基于流的实现以字节为基本单元,很容易实现各种过滤器。 阅读全文
posted @ 2016-03-16 21:53 ngulc 阅读(935) 评论(0) 推荐(0) 编辑
摘要:JDK提供了一组主要的数据结构的实现,如List、Set、Map等常用结构,这些结构都继承自java.util.collection接口。 List有三种不同的实现,ArrayList和Vector使用数组实现,其封装了对内部数组的操作。LinkedList使用了循环双向链表的数据结构,Linked 阅读全文
posted @ 2016-03-13 15:06 ngulc 阅读(5809) 评论(0) 推荐(0) 编辑
摘要:最近项目上使用Oracle的Merge,所以找来一下资料学习了解。 该命令使用一条语句从一个或者多个数据源中完成对表的更新和插入数据. ORACLE 9i 中,使用此命令必须同时指定UPDATE 和INSERT 关键词,ORACLE 10g 做了如下改动。 特点: 1、insert 和update是 阅读全文
posted @ 2016-03-08 22:18 ngulc 阅读(725) 评论(0) 推荐(0) 编辑
摘要:简介 String最为java中最重要的数据类型。字符串是软件开发中最重要的对象之一,通常,字符串对象在内存中总是占据着最大的空间块。所以,高效处理字符串,将提高系统的整个性能。 在java语言中,String对象可以认为是char数组的衍生和进一步的封装。它的主要组成部分是:char数组、偏移量和 阅读全文
posted @ 2016-03-08 21:34 ngulc 阅读(3353) 评论(0) 推荐(2) 编辑
摘要:观察者模式介绍 观察者模式是一种非常有用的设计模式,在软件系统中,当一个对象的行为依赖于另一个对象的状态时,观察者模式就非常有用。如果不适用观察者模式,而实现类似的功能,可能就需要另外启动一个线程不停地监听另一个对象的状态,这样会得不偿失。如果在一个复杂的系统中,可能就需要开启很多的线程来监听对象状 阅读全文
posted @ 2016-03-07 21:51 ngulc 阅读(1230) 评论(0) 推荐(1) 编辑
摘要:最近做的项目,需要将一些信息导出到word中。在网上找了好多解决方案,现在将这几天的总结分享一下。 目前来看,java导出word大致有6种解决方案: 1:Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。使用Jacob自带的DLL动态链接库,并通过J 阅读全文
posted @ 2016-03-06 13:14 ngulc 阅读(45641) 评论(7) 推荐(3) 编辑
摘要:最近在开发项目中,遇到的一个问题是:在 tomcat中发布一个web项目,但是发布成功后,只能用http://localhost:8080/aml访问项目,不能用http://172.0.0.1:8080/aml访问项目,也不能用本地的IP地址访问,同时其他同事的电脑也不能访问。 起初以为是防火墙的 阅读全文
posted @ 2016-03-06 10:18 ngulc 阅读(24746) 评论(1) 推荐(1) 编辑