JDO:查询你的数据

JDO学习笔记(一) 数据挖掘论坛

 

数据挖掘工具

查询你的数据 数据挖掘交友

  数据挖掘研究院

JDO API中和查询相关密切的有两个接口(它们的具体实现由JDO产品来完成):

java.jdo.Query 数据挖掘实验室

========================

数据挖掘实验室

      该接口的实例是由另一个接口PersistenceManager来创建的,在JDOPersistenceManager是一个比较重要的接口,我们所有的事务处理都是通过该接口来定义的。 数据挖掘研究院

       PersistenceManager接口有一组newQuery方法来产生Query的实例: 数据挖掘研究院

    public Query newQuery() 数据挖掘实验室

    public Query newQuery(java.lang.Class cls)

    public Query newQuery(java.lang.Class cls, java.util.Collection cln) 数据挖掘实验室

    public Query newQuery(java.lang.Class cls,

java.util.Collection cln,

java.lang.String filter)

数据挖掘交友

    public Query newQuery(java.lang.Class cls, java.lang.String filter) 数据挖掘论坛

    public Query newQuery(Extent cln)

数据挖掘论坛

    public Query newQuery(Extent cln, java.lang.String filter) 数据挖掘实验室

    public Query newQuery(java.lang.Object compiled)

数据挖掘工具

    public Query newQuery(java.lang.String language, java.lang.Object query) 数据挖掘论坛

  数据挖掘实验室

    有查询就要有返回结果,Query接口里一组execute方法来返回查询的结果: 数据挖掘论坛

 

    public Object execute() 数据挖掘实验室

public Object execute(java.lang.Object p1) 数据挖掘工具

public Object execute(java.lang.Object p1, java.lang.Object p2) 数据挖掘交友

public Object execute(java.lang.Object p1, 数据挖掘工具

 java.lang.Object p2,

数据挖掘交友

 java.lang.Object p3) 数据挖掘论坛

通常我不用上边的方法,特别是在综合查询的时候,我比较喜欢下面两个方法来返回查询结果: 数据挖掘工具

public Object excuteWithArray(java.lang.Object[] parameters) 数据挖掘论坛

public Object excuteWithMap(java.util.Map parameters)

 

当然如果是非常简单条件的查询,上边四种方法可以搞定就不要用后两种方法,后两种方法要自己构造数组或者集合。 数据挖掘工具

个人认为上述执行查询方式跟java.sql. PreparedStatement差不多都是要为指定的“参数”赋值;如p1,p2,p3,array啦,map啦其中存放的都是前面需要指定的参数的值,跟PreparedStatement它们的顺序要和定义参数的顺序一样。 数据挖掘研究院

要注意的是

数据挖掘论坛

l         Array参数集合中数组的顺序很定义参数的顺序要一致。 数据挖掘论坛

l         Map参数集合中的key为参数的名称,value为参数的值

 

数据挖掘交友

  数据挖掘交友

上边已经开始提及带参数的查询了,是的,Query接口中定义了引入参数的方法: 数据挖掘交友

       public void declareParameters(java.lang.String parameters) 数据挖掘论坛

如果事多了参数的情况要用逗号隔开。

数据挖掘工具

  数据挖掘工具

JDO的查询方式不光可以引入参数,同时可以引入变量以及其他的类,下面分别是引入变量和引入类的方法,其语法和一般JAVA语法没什么差别:

数据挖掘实验室

    引入变量,当引入多个变量的时候中间用分号隔开

 

    public void declareVariables(java.lang.String variables) 数据挖掘交友

    例子:public void declareVariables(“Student students;Teacher teacher1”); 数据挖掘论坛

  数据挖掘交友

    引入类,当引入多个类的时候,跟字符串的连接方式差不多,不好说明,看例子吧: 数据挖掘研究院

public void declareImports(java.lang.String imports)

数据挖掘实验室

例子:public void declareImports(“import java.util.Date;”+”import com.yourname.Student”); 数据挖掘研究院

  数据挖掘论坛

       既然查询就要存在查询条件,Query接口定义了过滤条件的方法:serFilter() 数据挖掘论坛

       public void setFilter(java.lang.String filter)

数据挖掘研究院

       filter的写法跟sqlwhere语句中的条件写法思想应该一样的,如查询条件为:找出学生中姓李的,那么写法如下:

       query.setFilter(“name.startsWith(startname)”);

数据挖掘研究院

并同时找出性别等于女的,写法改为: 数据挖掘实验室

       query.setFilter(“name.startsWith(startname) && sex==it_sex”); 数据挖掘论坛

  数据挖掘交友

       JDO中关于字符串的操作函数,我怎么只见startsWithendsWith啊,这样的话如何对字符串进行更模糊的查询啊?望指教? 数据挖掘论坛

  数据挖掘实验室

       JDO查询中同样也提供了排序方法,setOrdering 如下: 数据挖掘论坛

       Public void setOrdering(java.lang.String ordering) 数据挖掘实验室

       如按照学生的年龄排序: 数据挖掘工具

       query.setOrdering(“age ascending”); 升序 数据挖掘研究院

       query.setOrdering(“age descending”);降序 数据挖掘研究院

       如果多个排序条件,如按年龄的大小,身高的高低:

数据挖掘交友

    query.setOrdering(“age ascending,”+” stature descending”); 数据挖掘工具

 

java.jdo.Extend

======================== 数据挖掘论坛

       该接口的实例代表当前数据库中存在的所有的类对象。它也是由接口PersistenceManager来创建的,如下: 数据挖掘研究院

   public Extent getExtent(Class persistenceCapableClass, boolean subclasses)

       参数subclass的真假表示含有第一个参数类的子类:真,表示包括子类;假,不包括子类。 数据挖掘研究院

       可能有两个地方要用到Extend实例 数据挖掘研究院

l         得到特定持久类的一个集合。 数据挖掘实验室

l         针对数据库中所有特定持久类进行查询

 

数据挖掘工具

[数据挖掘专家] [数据挖掘研究院] [数据挖掘论坛] [数据挖掘实验室]
上一篇:Turbine实战(中)
下一篇:Turbine实战(上)
最新评论共有 0 位网友发表了评论 , 查看所有评论
发表评论( 不能超过250字,需审核,请自觉遵守互联网相关政策法规。 )
匿名?
数据挖掘网站导航 数据挖掘论坛导航
  • 数据挖掘工具
  • 数据挖掘论坛
  • DataCruncher - Cognos
  • MineSet - MathSoft
  • Intelligent Miner - GainSmarts
  • Sqlserver - SAS - Clementine
  • CART - Weka - WizSoft
  • NeuroShell - ModelQuest
  • data mining tools - Darwin
  • 数据挖掘交友
  • 数据挖掘博客
  • 数据挖掘工具
  • 数据挖掘资源
  • 数据挖掘技术算法
  • 数据挖掘相关期刊、会议
  • 研究院联盟合作专区
  • 数据挖掘基础与相关技术
  • 数据挖掘厂商与就业
  • 数据挖掘研究者乐园
  • 知名厂商数据挖掘工具资料
  • 国内数据挖掘实验室
  • Foreign Data Mining Lab
  • 热点关注
  • 尚学堂J2EE和MLDN的J2EE视频教程哦
  • 有谁知道ERROR:JDWP Unable to get
  • com.microsoft.sqlserver.jdbc.SQLServerEx
  • 急~Eclipse3.3语言包,VEP插件
  • 毕业5年了,大家一个月全部收入能拿多少(税
  • org.hibernate.exception.ConstraintViolat
  • hibernate抛出could not fetch initial val
  • hibernate left outer join 出错 Path expe
  • myeclipse5.1.0和myeclipse6.0有什么区别。
  • spring如何动态获取bean,如何动态调用getB
  • 论坛最新话题
  • Foundations of Statistical Natural Langu
  • Game Theory meet Data Mining: A Recent P
  • System Building: How does it help or hin
  • 数据挖掘与Clementine培训
  • 新手报到
  • 求 SASEM 客户流失预测分析
  • 数据挖掘工程师/搜索研究院—北京——无线
  • 数据挖掘入门介绍(如何着手数据挖掘)
  • Information Overload Survey Results
  • The INEX 2005 Workshop on Element Retrie
  • 相关资讯
  • 不安装jre能运行JAVA程序吗?
  • Java的模板引擎Velocity用户手册
  • 成为java高手的八大条件
  • 简化Java代码的技巧
  • JAVA的网络功能与编程
  • 用java读取各种计算机文件系统的文件列表
  • 怎样拿下SUN公司的SCJP认证?
  • Borland以全额现金交易收购VMGEAR
  • 用JNI技术提高Java的性能
  • 用Java编写HTML文件分析程序
  • 数据挖掘实验室资料
  • 数据挖掘博客地址
  • 数据挖掘实验室网站地址
  • Prepare for Medicare audits by using dat
  • 注册成为SAS用户与爱好者俱乐部会员
  • 水南梅
  • 明日烟
  • 新人报道
  • 下载
  • 厦门服务器托管,450元/月—0592-5177319 高
  • 买空间送域名--0592-5177319 高静