摘要: select a.* from a where exists (select 1 from b where a.id<>b.id)对于in 和 exists的区别: 如果子查询得出的结果集记录较少,主查询中的表较大且又有索引时应该用in, 反之如果外层的主查询记录较少,子查询中的表大,又有索引时使用exists。其实我们区分in和exists主要是造成了驱动顺序的改变(这是性能变化的关键),如果是exists,那么以外层表为驱动表,先被访问,如果是IN,那么先执行子查询,所以我们会以驱动表的快速返回为目标,那么就会考虑到索引及结果集的关系了,另外IN时不对NULL进行处理。 阅读全文
posted @ 2012-08-07 14:12 戴眼镜的码农 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 使用Hibernate 只查詢部分字段,有三种字现方式: 第一种是使用高级查询DetachedCriteria实现,代碼如下: String alias = "user_"; //查詢時的table別名 DetachedCriteria dc = DetachedCriteria.forClass(User.class,alias); ProjectionList pList = Projections.projectionList(); pList.add(Projections.property(alias + "." + "id" 阅读全文
posted @ 2012-08-06 17:00 戴眼镜的码农 阅读(2245) 评论(0) 推荐(0) 编辑
摘要: 在多对多、一对多中,如果在查询时关联的对象是一个Set集合,而又需要对这个关联对象设置查询条件时,这样的HQL语句该如何写呢? 如下:假设我们建立了Teacher(教师)与Course(课程)的多对多的关系,现需要通过HQL语句去查询所有教语文的女教师:“from Teacher t left join fetch t.course c where t.sex=’女’ and c.name=’语文’”; 阅读全文
posted @ 2012-08-06 16:51 戴眼镜的码农 阅读(785) 评论(0) 推荐(0) 编辑
摘要: 自己最近在做项目的过程中遇到了多对多修改的问题,因为之前已经有好几年没有用过Hibernate了,而Hibernate中的多对多的操作又是最复杂的,所以在这里难免就多花了一些时间,在这里总结下来供大家参考。以下我们来个简单的多对多关系建立老师Teacher 与 课程Course 是一个多对多的关系。 Pojo与XMl配置如下: 以下为 Pojo代码 =============================Course Pojo============================ package com.domain; import java.util.HashSet; ... 阅读全文
posted @ 2012-08-06 16:45 戴眼镜的码农 阅读(1348) 评论(0) 推荐(0) 编辑
摘要: 在myEclipse下发布项目,发现在Deploy Location下不显示发布路径。百度了一下说可能的原因是没有在mymatadata中添加context-root="/",另外webrootdir属性也要设置正确。一个常见的配置如下:<?xml version="1.0" encoding="UTF-8"?><project-module type="WEB" name="premier" id="myeclipse.1270646223656" con 阅读全文
posted @ 2011-12-22 11:03 戴眼镜的码农 阅读(2171) 评论(0) 推荐(0) 编辑
摘要: 前一段時間客戶要求用 Pentaho kettle 去發送郵件,因為自己也是剛剛接觸 kettle,所以對如何配置 Pentaho 發送郵件也不是很清楚。自己的第一反應就是去網上找資料,但可惜的是網上關于Pentaho的資料很少,更沒有相關的例子。最后在CSDN上下了一份關于Pentaho Kettle 的使用手冊,參考著手冊終于成功了,最后將步驟記錄下來,分享給大家!第一步:新建一個作業 (job)第二步:在作業中添加一個起始節點和一個郵件節點,并鏈接.第三步:在郵件節點配置相關的屬性目的地址: 即收件人的地址。抄送、暗送:即抄送人、暗送人的郵箱地址。回復名稱:這里的回復名稱指的是發件人的名 阅读全文
posted @ 2011-09-14 22:31 戴眼镜的码农 阅读(1823) 评论(0) 推荐(1) 编辑
摘要: Hibernate多对多的例子不少,但仔细一看,大多数都是保存的,删除谈的少,但问题还不少,因此有必须简单测试一下,以下我们来个简单的多对多关系建立老师Teacher 与课程Course 是一个多对多的关系,Pojo与XMl配置如下。以下为 Pojo代码=================================Course Pojo================================package com.domain;import java.util.HashSet;import java.util.Set;/*** @author dengshaohua* @creat 阅读全文
posted @ 2011-09-14 22:01 戴眼镜的码农 阅读(1678) 评论(0) 推荐(0) 编辑
摘要: parseInt(numString)是js中非常常用的一個方法,其作用是將字符串转换为int类型。但是使用的过程中,你會發現,當num的值為01-07的值的字符串時,得到的結果是1-7,當你輸入的值為08、09、060等值時,到的結果卻不是8、9、60… 自己最近在項目中就遇到這樣的問題,后面查了js 的API,發現parseInt方法的參數及說明如下:parseInt(numString, [radix])numString必选项。要转换为数字的字符串。radix可选项。在 2 和 36 之间的表示 numString所保存数字的进制的值。如果没有提供,则前缀为 '0x' 阅读全文
posted @ 2011-08-03 22:43 戴眼镜的码农 阅读(292) 评论(0) 推荐(0) 编辑
摘要: package com.landray.kmss.km.mdm.maindata.jdbc.tools;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.lang.reflect.Modifier;public class Test {public static void main(String[] args){try {TestBean bean = new TestBean();String temp = "";bean.setAge("20");be 阅读全文
posted @ 2011-06-20 17:56 戴眼镜的码农 阅读(1810) 评论(0) 推荐(0) 编辑
摘要: public class TestReflect {public static void main(String[] args){APerson a=new APerson();Field fields[] = a.getClass().getDeclaredFields();String[] name = new String[fields.length];Object[] value = new Object[fields.length];try{ Field.setAccessible(fields, true); for (int i = 0; i < name.length; 阅读全文
posted @ 2011-06-20 16:43 戴眼镜的码农 阅读(848) 评论(0) 推荐(0) 编辑