java
文章平均质量分 75
褚金辉
java
展开
-
hibernate复制数据库中一条记录
最近在用hibernate的时候产生一个问题。我的目的是复制一条记录。思路:从数据库中取得一条记录封装到对象中,然后改变此对象的主键,最后保存此对象。看似很正确的思路却产生了错误:identifier of the object was alter from 1 to 10。 这是为什么呢?开始从网上搜索,最终找到了原因:从数据库中取得的对象是持久化对象。在hibernate的缓存中有一个备份。当原创 2012-02-15 15:50:59 · 5623 阅读 · 0 评论 -
@SuppressWarnings()
参数:1:deprecation:去掉过时方法警告;2:unchecked:去掉类型转换警告;原创 2012-06-11 13:40:01 · 1111 阅读 · 0 评论 -
java response 下载文件
1:废话少说直接上源码: File file = new File(rootPath+"files/summary/"+zipName); //要下载的文件绝对路径 InputStream ins = new BufferedInputStream(new FileInputStream(rootPath+"files/summary/"+zipName)); byte [原创 2012-08-08 17:08:09 · 17940 阅读 · 3 评论 -
java调用.bat文件
Process p = Runtime.getRuntime().exec("cmd /k start d:\\aa.bat);原创 2012-10-24 11:43:00 · 1313 阅读 · 0 评论 -
java.lang.IllegalStateException: JodaTime library not available - @DateTimeFormat not supported
1:异常出现的背景 使用springmvc的数据校验过程中产生此错误。2:异常原因 没有joda-time的jar包。3:解决办法 从http://sourceforge.net/projects/joda-time/?source=dlp下载joda-time-2.1.jar,然后放到工程中,问题解决。原创 2012-12-06 10:29:10 · 5541 阅读 · 1 评论 -
分析java内存溢出
代码如下:private static Test [] test = null; public static void test(int count){ if(count<10000000){ count++; test = new Test[count]; } System.out.println("count:"+count+" size:"+原创 2012-12-26 17:08:42 · 4233 阅读 · 0 评论 -
String和StringBuffer连接字符串比较
今天闲来无事,突然想看看String和StringBuffer连接字符串的性能究竟有多少差别。String测试代码如下: System.out.println("开始时间:"+System.currentTimeMillis()); String str = "a"; for(int i=0;i<100000;i++){ str+="b"; } Sys原创 2012-12-19 14:41:24 · 3863 阅读 · 0 评论 -
基于SAAJ的Web服务----(二)将SOAP信封写出到输出流
废话少说,直接代码。 public void witeToOut() { try { SOAPMessage soapMsg = MessageFactory.newInstance().createMessage(); SOAPPart soapPart = soapMsg.getSOAPPart(); SOAPEnvelope env = soapPart.g原创 2013-01-05 10:53:13 · 1248 阅读 · 0 评论 -
基于SAAJ的Web服务----(三)从SOAP消息中提取内容
我们得到SOAP消息后,怎么从里面提取内容呢?这里我们改造一下前面(一)中的代码,如下:public void extractDOMFromSOAP() { try { URL wsdl = new URL("http://localhost:8080/test/HelloWorld?wsdl"); String ns = "http://server.hw.demo/"原创 2013-01-05 13:10:50 · 1325 阅读 · 0 评论 -
基于SAAJ的Web服务----(四)使用原始的XML源和DOM创建web服务客户端
服务端依旧使用(一)中的服务,客户端代码如下:public void extractPayloadSOAP() { try { URL wsdl = new URL("http://localhost:8080/test/HelloWorld?wsdl"); String ns = "http://server.hw.demo/"; String svcName原创 2013-01-05 16:20:32 · 1861 阅读 · 0 评论 -
基于SAAJ的Web服务----(一)创建和返回SOAP信封
1:首先我们得有一个web服务 java代码如下:@WebService(endpointInterface = "demo.hw.server.HelloWorld", serviceName = "HelloWorld")public class HelloWorldImpl implements HelloWorld { public String原创 2013-01-05 10:47:24 · 3537 阅读 · 0 评论 -
java常用集合框架图
图片显示不全,请右键图片存到本地后再看...原创 2013-01-29 15:12:38 · 1496 阅读 · 0 评论 -
面向对象设计的基本原则。
1:单一职责原则 一个类的功能要单一,只做与他相关的事情。2:开闭原则 软件的设计,针对扩展要打开,针对修改要关闭。提高软件的扩展性和可维护性。3:里氏代换原则 在能是用基类的时候,一定能够使用子类。4:接口隔离原则 不要设计庞大臃肿的接口,接口的功要单一。5:依赖倒置原则 编程要依赖于抽象,不能依赖于实现。6:迪米原创 2013-02-22 13:36:39 · 900 阅读 · 0 评论 -
byte类型数据范围分析
我们都知道一件事情,java的byte类型的数据范围是从 -128 到 127.一直在想为什么不是 -128 到 128呢?今天分析了一下这个问题。首先我们得明白一件事情,那就是运算规则:###########################################################################正数的最高位都是 0 ,正数的值就是二进制表示原创 2013-03-15 13:52:08 · 12236 阅读 · 2 评论 -
java向IOS设备推送消息
java向IOS推送消息1:所需要jar包 javaPNS_2.2.jar, bcprov-jdk16-145-1.jar,javapns-jdk16-163.jar2:创建证书需要开发者网站上导出的aps_developer_identity证书和Apple Development Push Services证书进行合成, 生成可以供Java使用的p12证书。原创 2013-08-01 11:13:06 · 9310 阅读 · 0 评论 -
常用java集合类的一些小区别
* HashMap LinkedHashMap TreeMap 有什么区别 * HashMap 的key是无序的 取出来的顺序和放进去的顺序是不一样的. * LinkedHashMap 内部采用链式存储。记住了key的存储顺序 ,取出来的顺序和放进去的顺序是一致的。 * TreeMap 内部采用二叉树结构存储。对key进行了排序,默认按照升序的方式。 * 注:HashMap中原创 2013-08-26 10:24:06 · 1149 阅读 · 0 评论 -
学习socket nio 之ByteBuffer
1:什么是ByteBuffer?ByteBuffer就是字节缓冲区.那什么是字节缓冲区?举个例子:就好比CPU和硬盘之间的内存。明白了吧。2:ByteBuffer是用来干嘛呢?顾名思义,它是用来存放字节的。很常用的地方就是程序向网络中传送数据的时候。3:怎么使用ByteBuffer?要使用ByteBuffer,理解其中3个指针式很重要的。position、limit和capac原创 2013-11-04 16:50:29 · 7645 阅读 · 0 评论 -
学习socket nio 之 mina实例
1:mina之浅谈 mina是apache基于socket nio的一套框架,可以从apache官网下载jar包和源码。试用起来非常方便,也非常强大。如果对socket nio还不是很了解的话:请看一下这两篇文章 学习bytebuffer和socket nio实例 这里我简单的介绍一下mina的框架:原创 2013-11-06 10:01:32 · 10579 阅读 · 1 评论 -
java.lang.IllegalArgumentException: node to traverse cannot be null!
这个在使用hibernate的时候报出来一个错误,很低级的错误。通常都是hql的语法写错了。我遇到的情况是把from写成form了。原创 2013-11-08 09:46:23 · 6717 阅读 · 5 评论 -
使用log4j生成日志文件
第一种配置文件方式log4j.rootLogger=info,A0#info,A0#log4j.logger.org.springframework=FATAL#log4j.logger.org.hibernate=FATAL# debug info log4j.logger.stdout=info,A0log4j.additivity.stdout=false原创 2013-12-17 16:14:41 · 10494 阅读 · 0 评论 -
java并发之原子性与可见性(一)
原子性原子是世界上的最小单位,具有不可分割性。比如 a=0;(a非long和double类型) 这个操作是不可分割的,那么我们说这个操作时原子操作。再比如:a++; 这个操作实际是a = a + 1;是可分割的,所以他不是一个原子操作。非原子操作都会存在线程安全问题,需要我们使用同步技术(sychronized)来让它变成一个原子操作。一个操作是原子操作,那么我们称它具有原子性。可见性原创 2014-01-15 17:02:46 · 31629 阅读 · 9 评论 -
java并发之工具类的使用(三)
java中提供了一些工具类和容器类 来帮助我们来更好的实现并发。这篇博文我们就来简单讨论一下java中的工具类和容器类。学会并且熟练使用这些工具类对java的并发有很大的帮助。工具类CountDownLatch一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 他的实现方法就是一个计数器,在初始化CountDownLatch的时候定下来计数器的数量。原创 2014-01-21 18:51:31 · 3113 阅读 · 0 评论 -
java并发之线程封闭(二)
线程封闭实现好的并发是一件困难的事情,所以很多时候我们都想躲避并发。避免并发最简单的方法就是线程封闭。什么是线程封闭呢?就是把对象封装到一个线程里,只有这一个线程能看到此对象。那么这个对象就算不是线程安全的也不会出现任何安全问题。实现线程封闭有哪些方法呢?1:ad-hoc线程封闭 这是完全靠实现者控制的线程封闭,他的线程封闭完全靠实现者实现。也是最糟糕的一种线程封闭原创 2014-01-20 18:19:57 · 7770 阅读 · 3 评论 -
eclipse构建及运行maven web项目
1:环境eclipse indigo,JDK1.6,maven 3.2.1,tomcat7.0.422:安装eclipse maven插件 m2eclipse1:从网上下载m2eclipse,这个网上有很多下载的地方。然后放到eclipse安装目录的plugins下。2:打开eclipse->help->install new software。在work with后输原创 2014-03-13 11:46:29 · 162304 阅读 · 14 评论 -
一道考递归的题目
题目:输入1:输出:1;输入2 :输出:222 212 222;输入3:输出:33333 32223 32123 32223 33333答案public static void main(String ...args){ String content = Arrays.toString(generator(3)); content = con原创 2014-03-21 11:32:55 · 1412 阅读 · 0 评论 -
java8新特性的小例子
环境jdk1.8eclipse kepler。注意:eclipse需要装插件:instanll new software:地址:http://dist.springsource.com/snapshot/TOOLS/java8/e43小例子import java.time.Instant;import java.util.Arrays;import java.util.Li原创 2014-03-21 11:45:23 · 5850 阅读 · 2 评论 -
java nio http服务器(4)小结
前三篇博客,简单的模拟了web服务器的工作流程。当然这个实现实在是太简单了。分为连接器,处理器和servlet容器各部分功能如下:连接器:接受http请求,创建request和response对象。servlet容器:存储所有的servlet实例,按照规范Servlet是单实例的,所以容器中只存一个servlet实例,不过你也可以不按照规范来,每次请求都创建一个Servlet。原创 2014-07-15 10:51:06 · 2253 阅读 · 0 评论 -
从零实现MVC框架之数据库连接池(2)
使用mysql数据库,JDK1.7。数据库配置原创 2014-07-15 18:45:22 · 4825 阅读 · 0 评论 -
从零实现MVC框架之实体映射(3)
实体与表的映射,我们采用注解的方式实现;原创 2014-07-16 09:49:42 · 4157 阅读 · 0 评论 -
从零实现MVC框架之增删改查(4)
概述这一章节貌似有点小复杂。为了实现对象的增删改查,我们需要做点功课1:生成id,我们采用手动生成id的方法,这里我们特意也为id创建了一个池子,所有的id都从池子里面取。2:对象状态: 新建状态、持久状态、查询状态。查询状态是内部处理。 处于新建状态下的对象可以进行保存操作,不能更新和删除 处于持久状态下的对象可以进行更新和删除操作,不能保存。3:执行原创 2014-07-16 13:58:57 · 12897 阅读 · 0 评论 -
从零实现MVC框架之AOP事务(5)
利用动态代理实现AOP。另外我么写一个注解,表明哪个类下的方法需要加事务(为了简单偷懒了,哈...)。加上注解后此类的每个方法都会加事务。这其中还多了一个事务执行器的概念,事务执行器和一般执行器的区别就是 事务执行器中数据库连接是不自动提交的。而一般执行器中的连接是自动提交的。 我们使用ThreadLocal来保存事务执行器,来保证每个线程都有自己的事务执行器。下面看具体实现。原创 2014-07-16 15:38:38 · 1433 阅读 · 0 评论 -
从零实现MVC框架之总结(9)
到这里我们已经基本上实现了MVC的一些基本功能,包括 连接池、AOP事务管理、IOC注入、控制层实现以及文件上传。这些代码都是经过简单的测试,所以有BUG在所难免。因为这个东西做的过程比较匆忙,所以也没有什么注释。有兴趣看的同学们辛苦了.. 所有的源码的jar包已上传到CSDN,如果需要请到http://download.csdn.net/detail/maosijunzi/76070原创 2014-07-16 17:26:47 · 1302 阅读 · 0 评论 -
从零实现MVC框架之控制层(6)
最早使用的控制层框架就是struts1 然后是struts2 在之后就是SpringMVC的Controller了。就个人而言感觉Spring的Controller使用很方便也很简单。所以我们的控制层就模仿Spring的Controller来实现。包括注解、返回页面的方式、以及之后的文件上传都依稀能看到SpringMVC的身影。并且我们也是用Servlet来实现,真是一个精简版的Sprin原创 2014-07-16 16:23:29 · 2933 阅读 · 0 评论 -
从零实现MVC框架之依赖注入IOC(7)
我们的目的是在学习MVC的实现方式,而不是真的做一个MVC框架,所以就一切从简,所以这里我们只做Controller中的依赖注入。也就是说只有Controller中才可以使用我们下面创建的Inject注解。如果再其他的地方使用是注入不成功的哦。注解原创 2014-07-16 16:40:48 · 2096 阅读 · 0 评论 -
从零实现MVC框架之文件上传(8)
这里使用commons-io-2.4.jar和commons-fileupload-1.3.1.jar实现文件上传,所以事先要把这两个包加入到项目中。文件解析类原创 2014-07-16 17:15:56 · 2044 阅读 · 0 评论 -
把我们的数据转换成网络上传递的字节
package com.test;import java.io.ByteArrayOutputStream;import java.io.DataOutputStream;import java.io.IOException;import java.util.Arrays;/** * * @author chuer * @version 2014-6-9 上午9:54:52原创 2014-06-09 10:50:57 · 1207 阅读 · 0 评论 -
java设计模式(0)
总体来说设计模式分为三大类:创建型模式、结构型模式和行为型模式。创建型模式:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。原创 2014-07-23 15:18:15 · 984 阅读 · 0 评论 -
java设计模式之工厂模式(2)
工厂模式:属于创建型模式。同我们生活中的厂家很相似。我们并不自己制造(new)产品,而是依靠厂家制造,我们只是拿来使用。简单的说就是让工厂 根据我们的需求给我们new一个对象。 工厂模式又分为工厂方法模式和抽象工厂模式。 工厂方法模式又分为:普通工厂方法,静态工厂方法.原创 2014-07-24 18:21:54 · 1164 阅读 · 1 评论 -
java设计模式之代理模式(8)
代理模式就是,不直接调用目标函数,而是通过一个代理类来调用。它的类继承关系和装饰模式很类似。但是它们的目的不一样。代理模式不会增加新的功能,只是在调用和被调用之间加入代理层。而装饰模式旨在增加新功能。看代码:package com.pattern.struct.proxy;public interface Subject { public void request();原创 2014-07-31 17:52:31 · 1029 阅读 · 0 评论 -
java nio http服务器(1)读取http请求
通过nio读取http的头信息。直接看代码:package com.hcserver.conn;import java.io.BufferedReader;import java.io.ByteArrayOutputStream;import java.io.StringReader;import java.net.InetSocketAddress;import java.nio原创 2014-07-10 16:54:30 · 7350 阅读 · 3 评论