随笔分类 -  Java

1

摘要:枚举类型介绍 枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中。而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的定义相似。不过相比较常量类型,枚举类型可以为申明的变量提供更大的取值范围。 举个例子来说明一下,如果希望为彩虹描绘出七种颜色,你可以在 Java 程序中通过常量定义方式来实现。 Public static class RainbowColor { // 红橙黄绿青蓝紫七种颜色的常量定义 public static final int RED ... 阅读全文

posted @ 2013-07-16 20:44 bokeyuan123465 阅读(1166) 评论(0) 推荐(0) |

摘要:今天做项目时,使用拦截器对用户权限检查。拦截器本身没有问题,可是实现权限拦截,但是传递的参数全部都无效了。搞了很久,由于对拦截器的内部机制不是特别熟悉,所以重新研读了一下Struts2的拦截器。找到了原因:给一个Acton配置一个自定义拦截器后,此action就无法使用框架默认的拦截器栈了,这就导致前后台数据传输无效。解决方法一般有两种:一、显示的使用默认拦截器<action name="enterSystem_*" class="enterSystemManager" method="{1}"> <!-- 使用拦截 阅读全文

posted @ 2013-06-05 21:23 bokeyuan123465 阅读(447) 评论(0) 推荐(0) |

摘要:开源好处多多,降低了我们接触业内高端产品的门槛,一定程度上简化了开发的复杂度;但也带来了不少问题,使用开源就意味着要自己承担它的不稳定性带来的后果,回想这几天踩的坑,都是眼泪…还好不是我一人在用,还好可以多Google。 列举几个把,以后坚决不犯: hibernate可以通过xml配置,自动由类生成表,可ssh结合以后,用原来的配置怎么也不行,原来是我在<prop key="hibernate.hbm2ddl.auto">create</prop>这句里没加hibernate所致,加上了之后update还是不可以自动建表,直至改成create,发现这 阅读全文

posted @ 2013-06-04 22:08 bokeyuan123465 阅读(177) 评论(0) 推荐(0) |

摘要:在没有使用Spring提供的Open Session In View情况下,事务提交时会在service(or Dao)层里把session关闭,在lazy loading 为true的话,这样就只能使用get()方法,若使用load()方法,Hibernate抛session already closed Exception; Open Session In View提供了一种简便的方法,较好地解决了lazy loading问题. 说明一下Open Session in View的作用,就是允许在每次的整个request的过程中使用同一个hibernate session,可以在这个... 阅读全文

posted @ 2013-05-30 21:20 bokeyuan123465 阅读(2566) 评论(1) 推荐(0) |

摘要:通过JDK实现动态代理,有代理需求的类(这里称之为实现类)必须要实现接口。动态代理可以将逻辑切片,通过代理类(proxy)代实现类实现逻辑,期间还可以进行一些其他的操作。JDK的动态代理主要涉及到java.lang.reflect包中的两个类:Proxy和InvocationHandler。其中 InvocationHandler是一个接口,可以通过实现该接口定义横切逻辑,在并通过反射机制调用目标类的代码,动态将横切逻辑和业务逻辑编织在一 起。关于动态这块儿一直比较迷惑,傻傻分不清楚,今天又有了新的理解,下面通过一个简单的例子来说明: 先叙述下事务逻辑:一个人(people对象)通过交通工.. 阅读全文

posted @ 2013-05-25 21:24 bokeyuan123465 阅读(1094) 评论(1) 推荐(0) |

摘要:1.什么是动态代理?2.为什么使用动态代理?3.使用它有哪些好处?4.哪些地方需要动态代理?--------------------分隔线-----------------------------和动态代理有关的有两个类1.interface InvocationHandlerObject invoke(Object proxy, Method method, Object[] args)只这一个方法,后面再说2.class Proxy真正表示动态代理的类,提供两个静态方法:Class<?> getProxyClass(ClassLoader loader, Class<?& 阅读全文

posted @ 2013-05-14 15:55 bokeyuan123465 阅读(143) 评论(0) 推荐(0) |

摘要:将当前主键的值单独保存到一个数据库的表中,主键的值每次都是从指定的表中查询来获得,这种生成主键的方式也是很常用的。这种方法生成主键的策略可以适用于任何的数据库,不必担心不同数据库不兼容造成的问题。使用以下SQL脚本创建一个表“tb_generator”,并插入两条数据,SQL脚本如下所示。CREATE TABLEtb_generator (id int(20) unsigned NOT NULL auto_increment,gen_name varchar(255) NOT NULL,gen_value int(20) NOT NULL,PRIMARY KEY(id))INSERT INTO 阅读全文

posted @ 2013-05-13 15:18 bokeyuan123465 阅读(700) 评论(0) 推荐(0) |

摘要:API:public String intern()返回字符串对象的规范化表示形式。一个初始时为空的字符串池,它由类 String 私有地维护。当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(该对象由 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String 对象添加到池中,并且返回此 String 对象的引用。它遵循对于任何两个字符串 s 和 t,当且仅当 s.equals(t) 为 true 时,s.intern() == t.intern() 才为 true。所有字面值字符串和字符串赋值常量表达式都是内部的。返回:一个字符 阅读全文

posted @ 2013-05-07 21:06 bokeyuan123465 阅读(161) 评论(0) 推荐(0) |

摘要:Java语言中参数传递是常见的问题之一,通过阅读如下测试代码,可以看看你是否真的了解java常见的参数传递的规则。Java代码:public class TestChangeParamInt { public static void main(String[] args) { int n = 3; System.out.println("Before change : " + n); changeData(n); System.out.println("After changeData(n) : " + n); ... 阅读全文

posted @ 2013-04-27 13:17 bokeyuan123465 阅读(275) 评论(0) 推荐(0) |

摘要:Session的save()方法使一个临时对象转变为持久化对象。例如以下代码保存一个Customer对象: Customer customer = new Customer(); customer.setId(new Long(9)); // 为Customer临时对象设置OID是无效的 customer.setName("Tom"); Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); ... 阅读全文

posted @ 2013-04-17 21:41 bokeyuan123465 阅读(1792) 评论(0) 推荐(0) |

摘要:原文地址:http://www.iteye.com/topic/264 范凯老师的文章,虽年代久远,但依然给力hibernate入门 - TransactionHibernate是对JDBC的轻量级对象封装,Hibernate本身是不具备Transaction处理功能的,Hibernate的Transaction实际上是底层的JDBC Transaction的封装,或者是JTA Transaction的封装,下面我们详细的分析:Hibernate可以配置为JDBCTransaction或者是JTATransaction,这取决于你在hibernate.properties中的配置:引用#hib 阅读全文

posted @ 2013-04-17 14:59 bokeyuan123465 阅读(272) 评论(0) 推荐(0) |

摘要:Hibernate是一个优秀的开源ORM框架,就是符合Java语言习惯的关系型数据库持久化方案。目前主流数据库还都是关系数据库,也就是二维表结构,而Java语言是面向对象的语言,程序中操纵的是对象,那么刻画对象的一组数据怎样存入数据库?这就是Hibernate要完成的工作-对象数据的持久化。当然,持久化可以是写入文件系统也可以是写入数据库,而大规模数据存取时,程序直接IO的效率和易用性,可维护性显然都不如数据库好,所以使用数据库还是趋势。 Hibernate的官方网站是http://www.hibernate.org,要使用Hibernate当然要下载开发包,作为学习,只下载核心包core即可 阅读全文

posted @ 2013-04-17 10:24 bokeyuan123465 阅读(176) 评论(0) 推荐(0) |

摘要:以下是对注册页面registe.jsp的校验:<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"><validators> <field name="unam 阅读全文

posted @ 2013-04-07 21:36 bokeyuan123465 阅读(190) 评论(0) 推荐(0) |

摘要:简单的demo:s:iterator 标签有3个属性:value:被迭代的集合id :指定集合里面的元素的idstatus 迭代元素的索引1:jsp页面定义元素写法 数组或list<s:iterator value="{'1','2','3','4','5'}" id='number'><s:property value='number'/>A</s:iterator>打印结果为: 1A2A3A4A5A2:索引的用法如果指定了s 阅读全文

posted @ 2013-04-05 20:17 bokeyuan123465 阅读(630) 评论(0) 推荐(0) |

摘要:如果要使用Struts2的验证框架,首先要开启这个拦截器。在文档中是这样介绍的:默认的拦截器堆栈defaultStack已经在开启验证。在创建自己的interceptor-stack时一定要包括validation和workflow拦截器。Xml代码<interceptor-stack name="defaultStack"> ... <interceptor-ref name="validation"> <param name="excludeMethods">input,back,cancel, 阅读全文

posted @ 2013-04-02 21:59 bokeyuan123465 阅读(322) 评论(0) 推荐(0) |

摘要:在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util.regex包。 可粗略估计一下,除了偶尔用Linux的外,其他Linu x用户都会遇到正则表达式。正则表达式是个极端强大工具,而且在字符串模式-匹配和字符串模式-替换方面富有弹性。在Unix世界里,正则表达式几乎没有什么限制,可肯定的是,它应用非常之广泛。 正则表达式的引擎已被许多普通的Unix工具所实现,包括grep,awk,vi和Emacs等。此外,许多使用比较广泛的脚本语言也支持正则表达式,比如Python,Tcl,JavaScript,以及最著名的Perl.. 阅读全文

posted @ 2013-04-01 21:01 bokeyuan123465 阅读(173) 评论(0) 推荐(0) |

摘要:新建web project:struts2_0500_actionwildcard Build Path 项目图: src: StudentAction.java TeacherAction.java struts.xml WebRoot: index.jsp Student_add.jsp Student_delete.jsp Student_edit.jsp Student_find.jsp Teacher_add.jsp Teacher_新建web project:struts2_0500_actionwildcardBuild Path项目图: src: StudentActi... 阅读全文

posted @ 2013-04-01 09:54 bokeyuan123465 阅读(203) 评论(0) 推荐(0) |

摘要:Struts2中的属性驱动和模型驱动Struts2中的属性驱动和模型驱动2Struts2中的异常处理机制ognl表达式Struts2中文件的上传和下载拦截器Struts2中的输入校验Struts2中的类型转换使用Annotation取代struts.xml配置Struts2中文乱码处理Struts2常用标签UI标签的主题设置Struts2与AJAX交互u驾驭XML数据u驾驭JSON数据第一个Struts2程序当我们在一个新的工作空间中创建一个Web项目的时候首先要将我们自己的Tomcat绑定到MyEclipse中。接下来我们可以使用自己安装的JDK,Windows→Preferences→输入 阅读全文

posted @ 2013-03-30 21:46 bokeyuan123465 阅读(386) 评论(0) 推荐(0) |

摘要:JXL(Java Excel API)是一个用来动态读写Excel文件的开源框架,利用它可以在任何支持Java的操作系统上动态读写Excel文件。JXL的主页是:http://www.andykhan.com/jexcelapi/,可以在这里下载到它的最新的版本。你可以分别通过如下命令java -jar jxl.jar -xml test.xlsjava -jar jxl.jar -cvs test.xls以xml和cvs格式查看test.xls,这是因为JXL作者实现了一个用来演示的jxl.demo.Demo的类。当然我们使用JXL主要是用它来动态读写Excel文件。现在就来看看JXL在对E 阅读全文

posted @ 2013-03-30 20:29 bokeyuan123465 阅读(198) 评论(0) 推荐(0) |

摘要:今天搞安卓在看书的时候遇到了StringBuilder这个类型的东东,有点小迷,不知道它跟string、stringbuffer的关系式怎么样的,赶快查阅相关资料,了解了个大概,拿出来分享一下: 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象(为什么?问问 Java 的设计者吧,为什么 String 不是原生类型呢?)因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对... 阅读全文

posted @ 2012-11-07 09:11 bokeyuan123465 阅读(477) 评论(0) 推荐(1) |

1

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3