`
xiaotian_ls
  • 浏览: 308014 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论
文章列表
import java.sql.CallableStatement;   import java.sql.PreparedStatement;   import java.sql.ResultSet;   import java.sql.SQLException;   import java.sql.Types;   import java.util.List;     import org.springframework.jdbc.core.BatchPreparedStatementSetter;   import org.springframework.jdbc.core. ...
里氏替换原则(LSP) LSP是继承复用的基石。只有当衍生类可以替换掉基类,软件单位的功能不会受到影响时,基类才能真正被复用,而衍生类也才能在基类的基础上增加新的行为。 里氏替换原则讲的是基类和子类的关系。只有当这种关系存在时,里氏代换关系才存在,反之则不存在。如果两个基本类A和B之间的关系违反了里氏代换原则的设计,则有两种重构方案: 1.创建一个新的抽象类C,作为两个具体类的超类,将A和B的共同行为移动到C中。 2.从B到A的继承关系改写为委派关系。(CARP) 合成/聚合复用原则(CARP) (CARP)就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分,新对象通过向这些对象的 ...

fetch 别名

select * from student s left join s.coursewhere s.id='2' and s.course.status='active'   代码内容       select *   from Cat as cat   inner join fetch cat.mate   left join fetch cat.kittens   一个fetch连接通常不需要被指定别名, 因为相关联的对象不应当被用在 where 子句 (或其它任何子句)中。同时,相关联的对象 并不在 查询的结果中直接返回,但可以通过他们的父对象来访问到他们。
一个接口应当简单的代表一个角色,而不是多个角色,如果系统涉及到多个角色的话,那么每个角色都应当由一个特定的接口代表。

抽象类

抽象类应当拥有尽可能多的共同代码和尽可能少的数据。子类应当扩展超类的责任,而不是置换掉(override)或撤销掉(nullilfy)超类的责任。不要从工具类继承。什么时候应当使用继承复用,只有当以下的Coad条件全部被满足时,才应当使用继承关系:(1).子类是超类的一个特殊种类,而不是超类的一个角色,也就是要区分Has-A与Is-A两种关系的不同。Has-A关系应当使用聚合关系描述,而只有Is-A关系才符合继承关系。(2).永远不会出现需要将子类换成另一个类的子类的情况,也就是一个子类不存在将来会变成另外一个子类的可能。(3).子类应当扩展超类的责任,而不是置换掉(override)或撤销掉( ...
在java语言规范中,一个方法的特征仅包括方法的名字、参量的数目和种类,而不包括方法的返回类型、参量的名字以及所抛出的异常。在java编译器检查方法的重载(overload)时,会根据这些条件判断两个方法是否是重载方法。但是在java编译器检查方法的置换(override)时,则会进一步检查两个方法(分处超类型和子类型)的返回类型和抛出的异常是否相同。接口和类最重要的区别是:接口仅仅描述方法的特征,而不给出方法的实现。而类不仅给出方法的特征,而且给出方法的实现。因此接口把方法的特征和方法的实现分割开来。接口是对可插入性的保证。java语言通过编译期间的类型检查,自动的存储管理,数组的边界检查实现 ...
ocp 一个软件实体应当对扩展开放,对修改关闭。ocp从另外一个角度讲,就是对可变性的封装原则1.一种可变性不应当散落在代码的各个角落,而应当被封装在一个对象里面。同一种可变性的的不同表象意味着同一个继承等级结构中的具体子类。继承应当被看做是封装变化的方法,而不应当被认为是从一般的对象生成特殊对象的方法。2.一种可变性不应当与另一种可变性混合在一起。
informix9.4表空间满问题,extent size小,重建表结构,设置extent size,倒数据到新表中: 1. unload to 100000.unl select * from 表1load from 100000.unl insert into 表2   2. CREATE TABLE 表(     id            SERIAL NOT NULL,    exe_id        INTEGER,    ...
今天碰到个问题,统计数据,用FileWriter写到unix系统的一个文件中,然后程序导入到另外一个表中,总是有乱码出现。数据库驱动的编码是utf-8,转了好几次也不行,怀疑是写文件的问题。上网google了下,原来FileWriter不能写utf-8,google就是好。 package cn.yethyeth.sample.io; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter ...
今天公司培训了下oracle,记了下,以便查看 1.用户解锁:ALTER USER “hr” ACCOUNT UNLOCK ; 2.null 考虑两种情况 运算结果为null where条件中含有null AND   0    1     null 0                null 1                null null  null null  null OR    0    1     null 0                null 1                1 null  null 1     null NOT 0     1 1     0 nu ...
最近对以前开发的一个通用数据迁移的软件进行优化。除了用JDK5.0的多线程技术进行的改进之外,也比较了一下java写文件的性能。     在java写文件中,通常会使用FileOutputStream和FileWriter,FileWriter只能写文本文件。FileOutputStream也经常结合BufferedOutputStream。因为实际应用中写文本文件的情况占了大多数。所以下面测试用不同的方式生成一个相同行数、大小相同的文件的三种不同方式。     import java.io.File; import java.io.FileOutputStream; import java. ...
由于response是jsp页面中的隐含对象,故在jsp页面中可以用response.sendRedirect()直接实现重定位。   注意:   (1).使用response.sendRedirect时,前面不能有HTML输出。   这并不是绝对的,不能有HTML输出其实是指不能有HTML被送到了浏览器。事实上现在的server都有cache机制,一般在8K(我是说JSP SERVER),这就意味着,除非你关闭了cache,或者你使用了out.flush()强制刷新,那么在使用sendRedirect之前,有少量的HTML输出也是允许的。   (2).response.sendRe ...
现在的项目一直在用webwork,有时会碰到表单不提交的问题,现整理一下,以后有新的再添加: 1.当表单内有同名控件时提交不成功 比如有两个name都为userName的控件,值不一样。 <input type="hidden" name="userName" value="root" /> <input type="hidden" name="userName" value="test" /> 2.当页面有name为submit的控件时用documen ...
众所周知,要保护一个页面,最基础的就是要屏蔽右键。而现在网页上用得最多的是function click(),即下面这段代码: 〈script〉 function click(){    if(event.button==2){              alert( '本网站欢迎您 !!');    } } document.onmou ...
屏蔽状态栏:   <script type="text/javascript">     function   window.onload()     {           var   olink   =   document.links;           for(var   i=0;i<olink.length;i++)           {                   olink[i].onmouseover=function(){window.status='';return   true;}           }   ...
Global site tag (gtag.js) - Google Analytics