首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏技术趋势

    dump文件通过OQL查询文件信息

    OQL是什么? OQL 是一种类似 SQL 的查询语言,用于查询 Java 堆。OQL 允许从 Java 堆中过滤/选择所需的信息。 虽然 VisualVM 已经支持诸如“显示 X 类的所有实例”之类的预定义查询,但 OQL 增加了更多的灵活性。OQL 基于 JavaScript 表达式语言。 OQL 查询的形式如下: https://htmlpreview.github.io/? (注意管理员运行) 然后输入:http://localhost:7000/ 展示如下: 下面通过OQL语句查询,上面哪些可以自行了解。 不过OQL的学习还是需要了解一些sql基础语法,有sql经验的同学更易上学。 参考文章 https://htmlpreview.github.io/?

    1.3K10编辑于 2022-04-26
  • 来自专栏程序员的SOD蜜

    ORM查询语言(OQL)简介--实例篇

    相关文章内容索引: ORM查询语言(OQL)简介--概念篇 ORM查询语言(OQL)简介--实例篇 ORM查询语言(OQL)简介--高级篇:脱胎换骨 ORM查询语言(OQL)简介--高级篇(续):庐山真貌 [OQL原理] .表达式的链式调用        OQL的设计完全基于面向对象的实体查询,OQL的使用采用对象表达式的方式,内部实现原理是一系列的“链式方法调用”。 ,比如OQL调用返回OQL1对象的方法,而OQL1对象又调用返回OQL2级对象的方法。     方法返回的对象是OQL1,而不是OQL,所以需要调用End 属性,返回本次操作OQL的当前对象实例,下面的方法实现能够说明这个原理: public OQL END { 一级表达式     --返回OQL1对象的方法或者属性调用,该级别的方法由OQL根级表达式生成并使用。

    5.9K60发布于 2018-02-27
  • 来自专栏程序员的SOD蜜

    ORM查询语言(OQL)简介--概念篇

    相关文章内容索引: ORM查询语言(OQL)简介--概念篇 ORM查询语言(OQL)简介--实例篇 ORM查询语言(OQL)简介--高级篇:脱胎换骨 ORM查询语言(OQL)简介--高级篇(续):庐山真貌 几乎在与Linq同一时期,PDF.NET也发明了自己的ORM查询语言,称为OQL。下面提到的OQL,都是指的PDF的OQL。 (图2:PDF.NET OQL 架构)   如果仅从查询调用端来观察,我们发现OQL,跟SQL逻辑上是等价的,一个是“对象化”的查询,一个是“结构化”的查询: 对象化查询:OQL->ORM-> Entity 1,数据查询: OQL q=OQL.From(entityObject) [. ([<entityObject.Property1>[,entityObject.Property2][,…]]|[OQL2]|[OQLCompare]) .End; 3,数据更新: OQL q=OQL.From

    2.9K100发布于 2018-02-27
  • 来自专栏程序员的SOD蜜

    ORM查询语言(OQL)简介--高级篇(续):庐山真貌

    相关文章内容索引: ORM查询语言(OQL)简介--概念篇 ORM查询语言(OQL)简介--实例篇 ORM查询语言(OQL)简介--高级篇:脱胎换骨 ORM查询语言(OQL)简介--高级篇(续):庐山真貌 注意:图上的表达式中的形参 parent 其实是OQL对象,这里表示父级OQL对象,它参与构造它的子OQL对象。 (图4:高级子查询) ? PDF.NET的ORM查询语言OQL很早就注意到了这个问题,所以它的Select方法采用了非泛型化的设计,例如单个实体类属性字段选取: OQL q = OQL.From(user) 关联的OQL对象为空! 附录1:OQL测试完整源码 附录2:OQL测试程序输出的SQL信息

    2.6K90发布于 2018-02-27
  • 来自专栏程序员的SOD蜜

    使用OQL+SQLMAP解决ORM多表复杂的查询问题

        一般情况下,使用ORM框架来完成单个实体的查询是很方便的,但如果有复杂的查询条件,普通的ORM组件比较困难,PDF.NET数据开发框架的ORM实体类查询语言--OQL,使得构造复杂的查询条件成为可能 查询条件: OQL oql=GetOQLbyBussiness();//这个方法有4000行代码; string sql=oql.ToString();//大致是 select * from table1 ) 即可获得 List<EntityModelClass>,但现在为了添加另外一个表的查询,将oql转换成了sql语句,怎么能够再次生成实体类呢?     请注意,我们把oql的参数对象DataParameters 传递给了DAL方法,用于构造参数化查询。 总结: 结合使用PDF.NET框架的OQL+SQLMAP,可以在不放弃实体类的便利情况下,进行复杂的多表查询!

    1.5K60发布于 2018-02-26
  • 来自专栏程序员的SOD蜜

    ORM查询语言(OQL)简介--高级篇:脱胎换骨

    相关文章内容索引: ORM查询语言(OQL)简介--概念篇 ORM查询语言(OQL)简介--实例篇 ORM查询语言(OQL)简介--高级篇:脱胎换骨 ORM查询语言(OQL)简介--高级篇(续):庐山真貌 在写了《ORM查询语言(OQL)简介--概念篇》、《ORM查询语言(OQL)简介--实例篇》之后,觉得本篇文章应该是前2篇的延续,但又不是一般的延续,因为今天要写的这篇内容,是基于对框架OQL完全重构之后来写的 一、OQL之前生 1.1,内容回顾:     OQL是我设计用来处理PDF.NET开发框架的ORM查询的,因此叫做ORM查询语言。 而OQL之前的版本,是不支持表的别名的,因此,对于连接查询,OQL生成的可能是这样子的SQL语句: SELECT teacher. OQL3 GroupBy(object field); //OQL4 Having(object field); //OQL4 OrderBy(object field)

    3.2K70发布于 2018-02-27
  • 来自专栏程序员的SOD蜜

    使用OQL“语言”构造ORM实体类的复杂查询条件

    OQL”语言“ 是PDF.NET数据开发框架的实体对象查询语言,一直以来,ORM的复杂查询条件都是困扰ORM的问题,所以很多时候不得不舍弃ORM,直接手工拼接SQL。 我们来看看OQL是怎么解决这些问题的,现在举一个今天同事遇到的问题: 有这样一个实体类 MyEntity,实体类的具体定义在此忽略,有兴趣的朋友请看我的博客。  F2='2')    And    (F3='a' OR F3='b' OR F3='c' )    And    (F5='A' OR F5='B' OR F5='C' ) 下面我们来看看怎么使用OQL 语句: //e 是前面的实体类对象实例 OQL q=OQL.From(e).Select().Where(cmpResult).End; 当然也可以这样写,但没有上面简单: OQL q=new OQL( e); q.Select().Where(cmpResult); 如果只想查询F1,F2属性的值,这样写: OQL q=new OQL(e); q.Select(e.F1,e.F2).Where(cmpResult

    2K60发布于 2018-02-26
  • 来自专栏程序员的SOD蜜

    OQL上使用UPDLOCK锁定查询结果,安全的更新实体数据

    下面我们来看看用SOD框架的OQL怎么处理。 <Pro_Products>() .With(OQL.SqlServerLock.UPDLOCK) .Select db.Commit(); 上面的操作,首先在AdoHelper对象上开启事务,然后查询投资产品实体的时候在With方法上加上 OQL.SqlServerLock.UPDLOCK 更新锁,接着进行复制的业务处理 我们看到,OQL的这种更新锁操作,跟直接写SQL语句操作很类似,OQL执行的时候也是这样输出SQL语句的,这样确保数据记录在并发的时候,安全的更新。 注意:OQL更新锁目前只支持SqlServer数据库。

    2.8K10发布于 2018-08-20
  • 来自专栏程序员的SOD蜜

    使用PDF.NET数据开发框架的实体操作语言OQL构造复杂查询条件

    ,下面我们使用OQL来构造一个复杂的实体查询。  oql = OQL.From(user).Select().Where(result).END;             Console.WriteLine("OQL To SQL is:\r\n"  ();             LocalDB.Table_Order order = new LocalDB.Table_Order();             OQL q_order = OQL.From "OQL To SQL is:\r\n" + oql.ToString());             /*              *  OQL To SQL is: SELECT UID,Name 对象: OQL oql;//用户相关的OQL对象; OQL q_order //订单相关的OQL对象; 关键点在于q_order 对象作为oql对象的 IN 查询的参数,实现了SQL的IN子查询: oql.Select

    2.1K50发布于 2018-02-26
  • 来自专栏程序员的SOD蜜

    一行代码调用实现带字段选取+条件判断+排序+分页功能的增强ORM框架

    () { return EntityQuery<T>.QueryList(q); } public static OQL From<T>() 曙光:V5版本     PDF.NET Ver 5.0 在经过了脱胎换骨般的重构后,OQL增加了大量特性,OQL方法支持Lambda表达式语法,支持泛型,我们前面的代码有望得到简化: Users user 还有各种好处呢,PDF.NET基于实体类的实例调用特性,构筑起了OQL支持复杂查询的特性(参见 《ORM查询语言(OQL)简介--高级篇(续):庐山真貌》 ),SQL能够支持的,OQL基本上都能够支持了 oql,T entity) 15 { 16 this.currentOQL = oql; 17 this.currentEntity = 收工,PDF.NET 顺利实现一行代码查询数据的功能,除了Where 条件的复杂写法不那么优美,总体上GOQL,OQL可以媲美EF了!    

    1.7K90发布于 2018-02-26
  • 来自专栏程序员的SOD蜜

    .NET ORM 的 “SOD蜜”--零基础入门篇

    : User li_si = new User() { Name = "li si", Pwd = "123" }; OQL insertQ= OQL.From 方式更新指定的数据 li_si.Pwd = "123456"; OQL updateQ= OQL.From(li_si) .Update(li_si.Pwd) //仅仅更新密码 = null; //查询到用户实体类,表示登录成功 } 这里我们使用了SOD框架的ORM查询语言--OQL,它的结构非常类似于SQL,你可以认为OQL就是对象化的SQL语句。 = null; //查询到用户实体类,表示登录成功 }  3.6,使用泛型OQL查询(GOQL) 使用泛型OQL查询(GOQL),对于单实体类查询最简单的使用方式,缺点是不能进行“连表查询 同样,框架也为你提供了OQL对象扩展方法来直接查询列表数据。

    1.4K70发布于 2018-02-27
  • 来自专栏程序员的SOD蜜

    左求值表达式,堆栈,调试陷阱与ORM查询语言的设计

    对象上,都有关联的SOD框架的实体类,它有一个“属性访问事件”,OQL对象订阅了该事件: public class OQL { ///

    /// 字段堆栈 OQLCompare(OQL oql) { if (oql == null) throw new ArgumentException ("OQLCompare 关联的OQL对象为空!") =new User(); OQL q=OQL.From(user) .Select(user.ID,user.Name) .Where(cmp=>cmp.Comparer(user.Age,"> 这是一个“巧妙”的运用,OQL避开了反射,也没有使用"表达式树",所以OQL生成SQL的过程非常高效,不会有EF的第一次查询非常慢的问题。

    1.1K60发布于 2018-02-27
  • 来自专栏程序员的SOD蜜

    PDF.NET数据开发框架操作MySQL实体类操作实例

     q = OQL.From(u).Select().Where(new OQLCompare(u).Comparer(u.Age, OQLCompare.CompareType.NoSmaller, 15 )).END ;             OQL q = new OQL(u);             //使用OQL2 作为条件对象             q.Select().Where(q.Condition.AND , PWMIS.Common.enumCompare.NoSmaller, 15) }).OrderBy(u.Age, "asc");              Console.WriteLine("OQL  to SQL:\r\n"+q.ToString ());                          //*************构建 OQL 查询表达式 ******* end ****** 实体类查询OQL表达式可以有多种Where条件构造方式,具体请看上面的代码。

    1.2K90发布于 2018-02-26
  • 来自专栏孟君的编程札记

    Java自带的性能监测工具之jhat

    Tool)工具来玩~ jhat (Java Heap Analyse Tool) 是用来分析java堆的命令,可可以将对中的对象以html的形式展示,包括对象的数量、大小等信息,并支持对象查询语言 (OQL Queries”一栏中点击不同的链接可以展示不同的内容,如 点击“Show heap histogram” 链接,展示堆快照直方图~ 点击“Execute Object Query Language (OQL ) query”链接,可以使用OQL查询~ OQL查询语法与Visual VM的OQL类似~ 基本语法如下: select <JavaScript expression to select> identifier> [ where <JavaScript boolean expression to filter> ] ] 可以点击此连接(oqlhelp.html)获取Visual VM OQL 更多信息~ 如,”获取所有ClassLoader类的名字“的OQL查询如下: select classof(cl).name from instanceof java.lang.ClassLoader

    2K20编辑于 2023-02-23
  • 来自专栏程序员的SOD蜜

    如何用ORM支持SQL语句的CASE WHEN?

    OQL如何支持CASE WHEN? 今天,一个朋友问我,OQL可否支持CASE WHEN语句? 所以,对SOD框架而言,对应ORM如何支持CASE WHEN,就等于是问OQL如何支持CASE WHEN了。 注意“新的方案”这个提法,我是不打算让OQL支持CASE WHEN这个特性的,为何要这样做呢? OQL只解决 80%的普通查询,其它复杂的查询,应该依托于其它技术,否则会增加OQL的复杂性; 复杂的查询,可以借助于SOD框架的SQL-MAP技术,将SQL语句写在SqlMap.config文件中; 因此,在SOD框架上使用“计算属性”,有一个必须注意的原则:“计算属性”不可以出现在OQL语句中。

    2.7K80发布于 2018-02-26
  • 来自专栏程序员的SOD蜜

    PDF.NET数据开发框架实体类操作实例

    ,22) });                          //             User u = new User();             //*************构建 OQL  q = OQL.From(u).Select().Where(new OQLCompare(u).Comparer(u.Age, OQLCompare.CompareType.NoSmaller, 15 )).END ;             OQL q = new OQL(u);             //使用OQL2 作为条件对象             q.Select().Where(q.Condition.AND , PWMIS.Common.enumCompare.NoSmaller, 15) }).OrderBy(u.Age, "asc");              Console.WriteLine("OQL  to SQL:\r\n"+q.ToString ());                          //*************构建 OQL 查询表达式 ******* end ******

    1.2K60发布于 2018-02-26
  • 来自专栏IT技能应用

    Spring认证中国教育管理中心-Apache Geode 的 Spring 数据教程二十三

    属性名称必须与 Repository 查询方法的名称匹配,并且属性值是调用 Repository 查询方法时要执行的 OQL 查询。 10.3.执行 OQL 查询 Spring Data for Apache Geode Repositories 支持定义查询方法,以便针对托管实体映射到的区域轻松执行 Apache Geode OQL 如果支持的关键字不足以声明和表达您的 OQL 查询,或者方法名称变得过于冗长,那么您可以使用@Query如第三和第四种方法所示的注释查询方法。 下表提供了可在查询方法中使用的受支持关键字的简要示例: 10.4.使用注解的 OQL 查询扩展 许多查询语言,例如 Apache Geode 的 OQL(对象查询语言),具有 Spring Data 为了支持 Apache Geode 的 OQL 查询语言扩展并保持跨不同数据存储的可移植性,Spring Data for Apache Geode 通过使用 Java 注释添加了对 OQL 查询扩展的支持

    55010编辑于 2022-01-04
  • 来自专栏程序员的SOD蜜

    PDF.NET 数据开发框架 许可限制 框架源码的获取

    本套框架的思想是借鉴Java平台的Hibernate 和 iBatis 而来,兼有ORM和SQL-MAP的特性,同时还参考了后来.NET的LINQ(本框架成型于2006年,当时还未听说过LINQ)使用风格,设计了 OQL ) DAL层SQL语句和.NET数据访问代码映射(查看 SQL-MAP 原理) 详细说来,框架还包含以下特色功能: 类似LINQ的支持ORM实体类查询的OQL表达式(有了LINQ为啥还要搞一个OQL? 本框架 OQL的基本设计在LINQ或者说本人知道 LINQ之前,另外,.NET3.5框架才正式支持LINQ,而我们公司的一个产品却因为采用了3.5框架安装部署不方便成为市场和客服常常抱怨的理由。 :借鉴了它的ORM原理和HQL语言,使用了类似的简单的ORM功能; iBatis:借鉴了其SQL-MAP功能,对其复杂性进行了大力精简; LINQ/Entity Framework:提供类似LINQ的OQL 语法 框架功能演示 表单数据绑定,分页显示-- 数据映射,查询-- SQL-MAP演示(请查看DAL层代码)--  OQL查询(演示请看TestSqlMapEntity 项目) 支持工具,提供代码生成器和

    1.6K60发布于 2018-02-26
  • 来自专栏程序员的SOD蜜

    使用操作符重载,生成ORM实体类的SQL条件语句

    OQLCompare ,它就是根据“组合模式”设计的,我们来看看怎么由它来构造这个查询条件: 1,采用AND,OR重载: FundReviews p = new FundReviews();//实例化一个实体类 OQL  q = new OQL(p);               //实例化一个OQL对象 Console.WriteLine("OQLCompare 复杂比较条件表达式测试---------"); OQLCompare 我们看到OQL采用了类似函数式的语法风格,但在[条件表达式]的构造过程中,还是显得很冗长,我们可以继续对OQLCompare对象进行重构: /// 

            /// 设置等于某个实体属性的比较条件                ( cmp2.Equal(p.FundCode,"KF008")  | cmp2.Equal(p.BankCode,"008")  ); q.ReSet();//重新初始化OQL ------------------------------------------------------------------------- 注:本文介绍的这个OQL特性仅在PDF.NET Ver

    1.1K100发布于 2018-02-26
  • 来自专栏Java后端技术栈cwnait

    给,你们想要的内存溢出MAT排查工具

    OQL ? MAT 支持一种类似于 SQL 的查询语言OQL(Object Query Language),这个查询语言 VisualVM工具也支持。 OQL将类表示为表,对象表示为行,字段表示为列。 name="name"> [ WHERE <filter-expression> ] </filter-expression></class> 用F5或者Ctrl+enter或者点击红色的感叹号立即执行OQL 更多OQL相关的操作,推荐看官网: https://help.eclipse.org/2020-09/index.jsp?

    85220发布于 2020-11-30
领券