Q宠大乐斗现在还能玩吗_Q宠大乐斗游戏攻略介绍
提到Q宠大乐斗大家是否还能回忆起那款经典的QQ空间小游戏呢,它于2010年开发,伴随了90后和00后的童年,是当时非常火的网页小游戏,随着大众电子设备使用习惯的...
2024-11-16
能嵌入JAVA代码被调用,又能进行数据计算的开源库,数据库类的有/Derby/H2等。这几个和的毛病一样,入库过程非常繁琐,要检查表名是否重复、建表结构、读文件、解析字段、插入记录、建索引等,而且没法处理不规则的文本和特殊数据源;至于近年来计算库逐渐被重视的功能-- *** ON计算,虽然内嵌数据库也是赶鸭子上架,但这几个还不如内嵌数据库。类的计算库有/ / 等,在多层 *** ON(半结构化数据)的读取和计算上,它们比数据库要方便多了,但二维记录(结构化数据)的计算又远不如数据库。
二维记录和多层 *** ON的计算都足够强,又支持多种数据源,可处理不规则文本的嵌入式JAVA开源库,集算器SPL是个更好的选择。
JAVA调用SPL只需JDBC接口,基本看一遍就会。比如把tab分隔的文本文件.txt按列顺序排序,按列逆序排序:
…
Class.forName("com.esproc.jdbc.InternalDriver");
Connection connection =DriverManager.getConnection("jdbc:esproc:local://");
Statement statement = connection.createStatement();
String str="=T(\"D:/Orders.txt\").sort(Client,- Amount)";
ResultSet result = statement.executeQuery(str);
…
一个T函数就相当于内嵌数据库入库那一整套过程,比那些内嵌的数据库方案要方便多了。
为了数据库程序员的方便,SPL也支持SQL语句,比如上面的排序可改写为:
str="$select * from d:/Orders.txt order by Client, Amount desc"
再讲讲刚才的sort函数,这样的基本计算函数SPL有上百个,可以直接完成大多数常规计算。下面试举一些:
条件查询
str="=T(\"D:/Orders.txt\").select(Amount>1000 && Amount<=3000 && like(Client,\"*S*\"))";
分组汇总
str ="=T(\"D:/Orders.txt\").groups(year(OrderDate);sum(Amount))";
关联
str ="=join(T (\"D:/Orders.txt\"):O,SellerId; T(\"D:/data/Employees.txt\"):E,EId).new(O.OrderID,O.Client,O.SellerId,O.Amount,O.OrderDate, E.Name,E.Gender,E.Dept)";
处理过的数据还可以持久化为btx集文件,不仅计算性能高,而且体积更小。比如将两个同构的文本文件写在一个btx里,并去掉两者重复的行:
AB
=[T("d:/.csv"), T("d:/.csv")].merge@u()
/对记录做并集
file("d:/fast.btx").@b(A1)
/写入集文件
之后就可以像普通文件那样使用:
str="=T(\"D:/fast.btx\").sort(Client,- Amount)"
str="$select * from d:/fast.btx order by Client, Amount desc"
btx还可以预先进行有序化处理,从而获得更高计算性能,比如进行二分查找,详情参考官网。
为了降低耦合性,SPL算法可外置于JAVA代码。比如,找出销售额累计占到一半的前n个大客户,并按销售额从大到小排列。先将SPL脚本存为文件.dfx:
AB
= T("D:/data/sales.csv").sort(:-1)
取数并逆序排序
=A1.()
计算累计序列
=A2.m(-1)/2
最后的累计值即是总和
=A2.(~>=A3)
超过一半的位置
=A1(to(A4))
按位置取值
再在JAVA代码中以存储过程的方式调用脚本文件:
…
Class.forName("com.esproc.jdbc.InternalDriver");
Connection connection =DriverManager.getConnection("jdbc:esproc:local://");
Statement statement = connection.createStatement();
ResultSet result = statement.executeQuery("call bigCustomer ()");
...
有些运算较复杂,比如涉及分组后计算、有序计算、 *** 计算,即使用存储过程也难以解决,更别说连存储过程都不支持的内嵌数据库了。SPL提供了强大的语法和丰富的库函数,可以大幅简化复杂运算逻辑。比如:计算某支股票最长的连续上涨天数,SPL只需两行:
AB
=T("d:/AAPL.xlsx")
读Excel文件,首行为列名
=a=0,A1.max(a=if(price>price[-1],a+1,0))
求最长连续上涨天数
有些运算代码较长,或有分支和循环,SPL提供了专用的IDE,可以方便地跟踪调试,观察每一步的计算结果:
对于不规则的文本, SPL同样可以处理。简单的比如以双竖线||为分隔符,可用如下SPL语句读取:
= file("D:/.txt").@t(;,"||")
复杂些的不规则的文本,参考
SPL支持多种数据源,除了文本文件,还有Excel、数据库、各类NoSQL、、等。比如:返回多层 *** ON,用来描述多个员工和员工的多个订单,需要查询出所有价格在500-2000,且客户名包含bro字样的订单。SPL代码如下:
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,请告知我们,本站将立刻删除涉嫌侵权内容。
相关文章
提到Q宠大乐斗大家是否还能回忆起那款经典的QQ空间小游戏呢,它于2010年开发,伴随了90后和00后的童年,是当时非常火的网页小游戏,随着大众电子设备使用习惯的...
2024-11-16
喜欢天天酷跑的微信小伙伴有福了,天天酷跑最近与嘀嘀打车软件合作推出了一个礼包积分狂送活动,只要你使用嘀嘀打车成功打车一次,就可以免费获得8888积分、8888金...
2024-11-16
RPCS3团队今日宣布《小小大星球(Little Big Planet)》现可在他们的PS3模拟器上流畅运行,并且还发布了一段演示视频,下面让我们一起来看看吧!...
2024-11-16
毕业狂欢季史诗之路重磅来袭海量福利限时派送,活动在今天正式开启。活动时间:22024年10月17日0点至2024年11月27日24点1.小队人数达到3人即为满员...
2024-11-16
古墓丽影有裸体代码?10个关于游戏的经典流言,古墓丽影初代裸体版身为游戏史上最成功的女性角色之一,尽管初代古墓丽影里面的劳拉现在看起来惨不忍睹,完...
2024-11-16
热评文章
2022年专属火龙之神途新版
1.80龙神合击传奇
1.76永恒小极品+5复古传奇
1.76双倍魔天大极品第三季单职业
1.76神梦传奇三职业
1.80聖统圣统合击三职业传奇