阅读更多

28顶
3踩

开源软件

原创新闻 Nutz1.b.38发布 - Dao更快速的插入

2011-07-18 09:42 by 正式记者 zozoh 评论(30) 有15327人浏览
Nutz1.b.38发布:Dao更快速的插入



--------------------------------------------------------------------------------

1.b.38 发行注记

Nutz 1.b.37 发布以来,时隔近3个月。为什么间隔这么时间涅? 因为我们做了很多重大的调整:


  1. 重构了 Dao -- 兑现了我们之前的承诺
  2. 重构了 EL
  3. Nutz 的源码管理迁移到了 Github

以后,希望大家报 Issue 到 Nutz Github 的问题列表 中。Google Code 的问题列表还有66个 Issue 没有处理,我们会在后续的版本中尽快修复。如果都修复了,我们就会关闭 Google Code 的问题列表,只维护 Github 的问题列表

另外,如果你在 Github 上有帐号,欢迎随时 fork Nutz,请记住我们的口号就是: 喜欢 Nutz,就 Fork 它

当然,Nutz 的下载地址仍然一直会是 Google Code 下载列表,并且 Nutz 在 Google Code 的项目主页 也会一直维护。

同时,我想提醒大家注意一下 Nutz 的官网,我们会不断的充实它的内容,比如最近做的



说到小白测试,不得不提一下 Dao 重构。我们这次重构 Dao 后总是不放心,其实我们在今年 5 月初就重构完了,然后我们测试呀,测试,毕竟是重构 Dao 了嘛,但是我们还是不放心,于是又测试呀测试... 但是我们还是不放心...

于是 Juqkai 同学在我和 Wendal 的撺掇下痛下决心,写了这个应用:

Nutz 小白测试计划

我们希望这个计划,能让更多人方便的参与测试,提交测试结果,这样我们就能为更多的人提供更稳定的 Jar 包。同时,我们也能更准确的统计贡献者名单。

当然如果没有人参与这个测试计划,最差的结果就是维持现状。令人欣慰的是,还是有4位同学(包括我)参加了1.b.38测试的小白测试

那么,让我们看看,以后的版本参加的人是会越来越多,还是越来越少 ^_^!

--------------------------------------------------------------------------------

Dao 兼容性问题

作为一篇发行注记,这次我们要上点干货了

1.b.38 的 Dao 与之前的 Dao 使用上的主要区别

  • 更快的批量操作 -- 比如大数据量的插入
  • 提供了 Criteria 接口,扩展了 Condition 接口,这样查询的时候,可以用 PreparedStatement 参数
  • 同时 Criteria 接口也非常方便你组织更复杂的 SQL 条件
  • 自定义 SQL 可以设置 fetchSize,但是依然不能支持 pager,你还得自己用 SQL 方言来翻页
  • 重新设计的 Entity ,可以方便的扩展,这样有些偏爱 JPA 或者配置文件的同学,可以扩展自己的实体配置方式
  • 重新设计的 LOG,可以让 SQL 打印的更清晰
  • 你甚至可以 dao.insert 或者 dao.update 一个 Map
  • 支持 dao.create/dao.drop 方式来建表和删表
  • org.nutz.dao.Dao 原有的接口函数统统保持不变,从而保证了兼容性不会有太大问题。


为了上述的优点,我们放弃了一点点兼容性,你的项目如果用 Nutz.1.b.38 可能需要少量修改几行代码。

--------------------------------------------------------------------------------

Cnd 类的兼容问题

当然,如果你直接实现 Condition 接口也不会有问题。

  • Cnd.exp 的返回值类型变成了 SqlExpression
  • Cnd.exps 的返回值类型变成了 SqlExpressionGroup


Entity 接口的兼容问题

极个别很有 Hacking 精神的同学使用 Nutz 的时候,使用了 Entity 类,但是不幸的是现在 Entity 已经变成一个接口并且某些方法已经变了名字,但是原来 Entity 类所有的功能,现在 Entity 接口都能提供。如果你发现某些方法找不到了,耐心看看新的 Entity 接口的定义,我想你很快就能找到你要找的方法。

最重要的一个改变,就是原来的 entity.fields() 方法,变成了 entity.getMappingFields()。这个是有同学向我抱怨过,因此觉得有必要在这里特别提一下。

org.nutz.dao.tool 包的兼容问题

某些很有探索精神的同学可能偶然发现了 Nutz 还隐藏了一个 Dao 工具类的包,里面的方法可以跨数据库的建表,所以很有可能在自己的项目里也这么应用了。但是不幸的是,1.b.38 之后,这个包没了。因为我们不再需要它了。你的建表可以用:

dao.create(Pet.class, true);   // true 表示如果存在,先 DROP 掉再建, false 表示如果存在就不建了


来完成。当然,删表,可以用:

dao.drop(Pet.class);


--------------------------------------------------------------------------------

除此之外,Nutz.Dao 不会有和之前不兼容的地方了。当然如果你发现了,请随时告诉我们,应该都不是大问题。

--------------------------------------------------------------------------------

EL 兼容性问题

EL 作为比较新的一个功能,可能用的人比较少,我们之后会再各个模块里逐渐发掘 EL 的潜力。本次发布 EL 经过了重构,效率提升了将近1倍。当然,作为一个用反射实现的东东,它的还是很慢,但是我们设计 EL 的时候假定它的使用场景是配置文件,后台进程等一些不是非常需要效率的地方。它可以让你的程序更有弹性。如果非常需要效率的地方,恐怕它不是一个很好的选择。

重构后的 EL,eval 的结果不再是 ElValue,而是普通的 Object,这样,你使用的时候会更方便一些。

并且EL的预编译,不再是

BinObj exp = El.compile("3+4");


而是

El exp = new El("3+4");


看起来更清爽一些不是吗? Juqkai 同学的设计 ^_^

--------------------------------------------------------------------------------

问题修复



  • Issue 34 dao: support JPA Annotation by zozoh
  • Issue 85 NutDao 中需要提供批量更新操作的方法. by ming300
  • Issue 121 Nutz是否有根据实体上的注解来自动创建数据库表等对象的计划? by hzzdong
  • Issue 137 数据库操作是否可以增加对Blob类型的支持 by Toni.xutao
  • Issue 155 Dao 的 @Column注解可否标注在getter函数上 by jinghui70
  • Issue 192 NutDao性能问题:关于批量操作,使用PreparedStatement的Batch功能 by hzzdong
  • Issue 230 关于nutz dao能否动态根据tables.dod 更新表结构 by shao0707
  • Issue 267 NutzDao能否提供设置fetchSize的方法 by superxlm1985
  • Issue 294 Nutz Dao 大量数据插入效率问题 by fjayblue
  • Issue 332 sqlserver2005 nutz@google Junit测试 by haoyoushuai1986
  • Issue 416 建议nutz提供一个拼接复杂的查询条件的方法 by liuxiaogang1987
  • Issue 420 Sqls.create语句中包含'@'会出错。 by wangyingdong
  • Issue 426 Condition Cnd.where + orderBy by muyushi85
  • Issue 433 MVC的代码覆盖率实在太低,很多都没测试用例! by wendal
  • Issue 437 SqlLiteral中的@过滤 by zhuyingxi
  • Issue 457 Json:增加字段映射方式 by wendal
  • Issue 458 ActionChainMakerConfiguration类名拼写错误 by jentrees2008
  • Issue 466 使用MySQL数据库,使用Nutz.dao的自定义SQL报错 by mamacmm
  • Issue 469 Json.toJson 对char类型没有加引号 by lwk0571
  • Issue 471 Dao: 添加对Hsql数据库的支持 by wendal
  • Issue 473 使nutz兼容OSGi by windywany
  • Issue 478 1.b.38 的新 Dao 应该忽略 Column 不存在的情况 -- by Jay by zozoh
  • Issue 479 38 update 问题 by fjayblue
  • Issue 482 将Nutz打成jar, 2 个 Scans 的测试过不了 by zozoh
  • Issue 485 EL表达式引擎在某些情况下会出现错误 by ywjno.dev
  • Issue 487 ioc中某个属性的值是Map时,如果是null偶尔报:String can not cast to java.util.Map by superhanliu
  • Issue 489 AnnotationIocLoader类对set方法处理@Inject 有bug by feiyan
  • Issue 490 38的Dao,在DB2下,使用@Column('abc')的话,insert会报错 by wendal
  • Issue 493 Lang的str2number方法在某些情况下会出错 by ywjno.dev
  • Issue 494 自定义SQL wiki by superhanliu
  • Issue 497 Nztz.Dao 注释没写全,和注释重写 by hongchongyuan
  • Issue 500 nutz.Json 应扩展一下@JsonField注解 by conanca


--------------------------------------------------------------------------------

质量

共通过了 697  个单元测试用例,代码覆盖率达到



Nutz.Dao 经测试在如下数据库上可以工作正常



--------------------------------------------------------------------------------

文档

修改了很多文档 ...

--------------------------------------------------------------------------------

主要贡献者名单

贡献的种类:

  • 问题: 给项目的问题列表汇报一个上的问题,并且该问题被本次发布包括
  • 博客: 在本版本开发期间,写过关于 Nutz 的文章,并被 推荐列表收录
  • 代码: 提交过至少一个修订
  • Demo: 为 NutzDemo 提交过代码
  • 文档: 提交过文档,在讨论区发帖或者通过文档上的留言指出现有文档存在的问题
  • 测试: 发布前,参与测试周发布人给出的任务


如有遗漏,请提醒我们 ^_^

贡献列表,我已经写了一个小程序,根据 Issue 列表来自动统计...

贡献者           问题 博客 支持 代码 示例 文档 测试
Toni.xutao       O     -     -     -     -     -     -  
caji.net        O     -     -     -     -     -     -  
conanca          O     -     -     -     -     -     -  
feiyan           O     -     -     -     -     -     -  
fjayblue         O     -     -     -     -     -     -  
haoyoushuai1986   O     -     -     -     -     -     -  
hongchongyuan    O     -     -     -     -     -     -  
hzzdong          O     -     -     -     -     -     -  
jentrees2008     O     -     -     -     -     -     -  
jinghui70        O     -     -     -     -     -     -  
juqkai          O     -     O     O     -     O     O  
liuxiaogang1987   O     -     -     -     -     -     -  
lwk0571          O     -     -     -     -     -     -  
mamacmm          O     O     -     -     -     -     O  
ming300          O     -     -     -     -     -     -  
muyushi85        O     -     -     -     -     -     -  
shao0707         O     -     -     -     -     -     -  
shine          -     -     -     -     O     -     -  
superhanliu      O     -     -     -     -     -     -  
superxlm1985     O     -     -     -     -     -     -  
wangyingdong     O     -     -     -     -     -     -  
wendal           O     O     O     O     O     O     O  
windywany        O     -     -     -     -     -     -  
ywjno.dev        O     -     -     -     -     -     -  
zhuyingxi        O     -     -     -     -     -     -  
zozoh            O     -     O     O     O     O     O  
Jay 蓝色幽默      O     -     -     O     -     -     O  


另外,很多朋友都在:



回答新手的问题,我们现在只能根据印象草草统计,贡献列表非常不完善。我们正在想办法,争取在不远的将来,能记录下来大家每一点一滴的付出 ^_^!

欢迎访问官网,以获取 最新的快照版用户手册
28
3
评论 共 30 条 请登录后发表评论
10 楼 Leon.Wood 2011-07-18 16:50
从前,有一张叫做girls_body的表
9 楼 cxh116 2011-07-18 15:50
counters15 写道
顶~问一下,为什么放弃google code啊?github不会被墙?


  git 简单  相对SVN来说  用GIT基本上不需要GUI
8 楼 feiyan35488 2011-07-18 15:40
经历了b.36版的的bug横行,对b.38持怀疑态度,晚上回去放到应用里测试一下
7 楼 feiyan35488 2011-07-18 15:39
counters15 写道
顶~问一下,为什么放弃google code啊?github不会被墙?

你怎么不担心 google code会不会被墙
6 楼 baichuan 2011-07-18 15:02
在用,挺不错的
5 楼 joezwp 2011-07-18 13:44
             
4 楼 我心悠悠 2011-07-18 11:36
支持,顶起来 
3 楼 lschin 2011-07-18 11:19
标题引人遐想...
2 楼 topbox163 2011-07-18 10:40
正在搭建,准备试用
1 楼 counters15 2011-07-18 10:16
顶~问一下,为什么放弃google code啊?github不会被墙?

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 简单使用Nutz

    简单使用Nutz 环境准备 Maven依赖 <!--Springboot整合Nutz--> <dependency> <groupId>org.nutz</groupId> <artifactId>nutz-plugins-spring-boot-starter</artifactId> <...

  • 在Nutz[1.b.38]中使用视图对关联数据表的操作

    在上一篇《使用Nutz[1.b.38]对关联数据表的一对一/一对多操作 》中提到对象关联的排序问题,如下: -------------------------------------------------------------------------------------- 发现了dao中有一个...

  • SpringBoot-NutzDao

    注意使用的是 1.r.66 环境搭建 Maven <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <!-- UTF8大法好 -...

  • nutz dao 操作

    src/org/nutz/dao/impl/sql/SqlTemplate.java查看文件 @ b4c8c64   1 +package org.nutz.dao.impl.sql;   2 +   3 +import java.lang.reflect.Array;   4 +import ...

  • 七、Springboot 整合Nutz

    本章节基于: 六、Springboot 整合Shiro---03权限控制 Nutz 可以做什么? Dao -- 针对 JDBC 的薄封装,事务模板,无缓存 Ioc -- JSON 风格的配置文件,声明时切片... Lang -- 更简洁的 Java 函数以及更丰富...

  • spring+nutz异常场景

    spring+nutz异常场景1. MYSQ1.1. 测试环境1.2. 主键冲突或唯一性索引异常1.3. Query查询超时Update锁超时1.4. 网络断开1.5. 网络阻塞1.6. 网络丢包1.7. 网络延时1.8. 数据库CPU飙高1.9. 数据库挂机1.10. 隔离级别读...

  • Nutz自定义SQL

    Nutz自定义SQL 创建SQL对象 用户可以硬编码 SQL 语句,比如 Sql sql = Sqls.create("DELETE FROM t_abc WHERE name='Peter'"); 支持占位符的书写方式,比如 Sql sql = Sqls.create("DELETE FROM $table WHERE name=...

  • 分布式任务调度平台XXL-JOB

    - 38、刚泰集团 - 39、深圳泰久信息系统股份有限公司 - 40、随行付支付有限公司 - 41、广州瀚农网络科技有限公司 - 42、享点科技有限公司 - 43、杭州比智科技有限公司 - 44、圳临界线网络科技有限公司 - 45、广州...

  • Maven 项目依赖问题解决--ZipException: invalid LOC header (bad signature)

    报错日志六月 09, 2018 6:38:46 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst....

  • 深度学习关于分布式任务调度平台XXL-JOB框架详解

    二、快速入门 2.1 初始化“调度数据库” 2.2 编译源码 2.3 配置部署“调度中心” 步骤一:调度中心配置: 步骤二:部署项目: 步骤三:调度中心集群(可选): 2.4 配置部署“执行器项目” 步骤一:...

  • JAVA这门语言 如何从刚毕业的小菜鸟进阶成月薪15K以上的工程师

    3 最后还有1点经验和大家分享,对sun的api一定要学会活用,不论是学习还是作为参考api都有很大的帮助,在完全了解java的结构的基础上,不论什么方法都是可以通过api来找到的.所以不要怕找不到方法,了解结构,了解...

  • 转载《分布式任务调度平台XXL-JOB》

    《分布式任务调度平台XXL-JOB》 ... 一、简介 1.1 概述 XXL-JOB是一个轻量级分布式任务调度框架,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家...1、简单:支持通过Web页面对...

  • matlab实时接收蓝牙和串口数据,并实时显示.zip

    matlab

  • 共享汽车管理系统.zip

    Java项目基于Springboot框架的课程设计,包含LW+ppt

  • 面板数据-A股公司监管距离数据集-含原始数据+参考文献+处理代码(2000-2023年).txt

    因文件较多,数据存放网盘,txt文件内包含下载链接及提取码,永久有效。失效会第一时间进行补充。样例数据及详细介绍参见文章:https://blog.csdn.net/T0620514/article/details/146715315

  • 储能系统中双向DC/DC变换器并联运行的下垂控制与电流分配优化

    内容概要:本文详细探讨了储能系统中双向DC/DC变换器并联运行时的下垂控制技术及其电流分配优化方法。首先介绍了下垂控制的基本概念,即通过虚拟电阻实现电流按比例分配,避免个别变换器过载或欠载。接着讨论了电压补偿机制,用于应对负载变化引起的母线电压波动。文中提供了具体的Python代码示例,展示了如何通过虚拟电阻和下垂系数进行电流分配,并通过电压补偿保持母线电压稳定。此外,还涉及了线路阻抗对电流分配的影响以及相应的在线估算方法。最后,提出了动态虚拟阻抗和自适应控制等前沿研究方向。 适合人群:从事电力电子、储能系统设计与维护的技术人员,以及对分布式电源管理感兴趣的科研人员。 使用场景及目标:适用于需要精确控制并联运行的双向DC/DC变换器电流分配的储能系统设计和调试。主要目标是提高系统的稳定性和效率,确保电流均匀分布,防止单个变换器过载或欠载。 其他说明:文中提供的代码示例和调试技巧有助于理解和实施下垂控制技术。同时,强调了参数整定的重要性,并给出了实际调试过程中的一些经验和教训。

  • (源码)基于Python的微信智能聊天机器人.zip

    # 基于Python的微信智能聊天机器人 ## 项目简介 本项目旨在将微信打造成一个智能聊天机器人,支持多端部署,包括个人微信、微信公众号和企业微信应用。机器人能够进行智能对话、语音识别、图片生成等功能,并且支持丰富的插件扩展,如多角色切换、文字冒险、敏感词过滤等。 ## 项目的主要特性和功能 多端部署支持个人微信、微信公众号和企业微信应用等多种部署方式。 智能对话支持私聊及群聊的消息智能回复,支持多轮会话上下文记忆,支持GPT3、GPT3.5、GPT4模型。 语音识别可识别语音消息,通过文字或语音回复,支持Azure、Baidu、Google、OpenAI等多种语音模型。 图片生成支持图片生成和图生图(如照片修复),可选择DellE、Stable Diffusion、Replicate模型。 丰富插件支持个性化插件扩展,已实现多角色切换、文字冒险、敏感词过滤、聊天记录总结等插件。

  • 15kW数字充电桩开发方案:三相PFC+移相全桥电路与DSP控制详解

    内容概要:本文详细介绍了15kW数字充电桩的开发方案,重点讨论了三相PFC和移相全桥电路的设计与实现。三相PFC采用无桥维也纳结构,利用TI的DSP进行数字化控制,提高了效率并降低了直流母线电压纹波。移相全桥则通过精确的时序控制和合理的PCB布局,实现了高效的ZVS软开关。文中还探讨了双DSP架构的协同机制、散热设计、EMC优化以及通讯协议等方面的技术细节,并分享了一些开发过程中遇到的实际问题及其解决方案。 适用人群:从事电力电子、充电桩开发的技术人员,尤其是对大功率电源设计感兴趣的工程师。 使用场景及目标:适用于希望深入了解和掌握15kW充电桩开发技术的专业人士,旨在帮助他们提高设计水平,解决实际开发中的难题。 其他说明:文章不仅提供了理论指导,还结合了大量的实践经验,包括具体的电路图、代码示例和调试技巧,有助于读者更好地理解和应用相关技术。

  • 七彩汽球幼儿园教育教学课件模板.pptx

    七彩汽球幼儿园教育教学课件模板

  • 基于MATLAB Simulink自动生成TMS320F28335 DSP代码实现永磁同步电机电流环控制

    内容概要:本文详细介绍了使用MATLAB Simulink搭建模型并自动生成针对TMS320F28335 DSP的代码,用于实现永磁同步电机(PMSM)的电流环控制。主要内容涵盖硬件选择、工具链配置、PWM和ADC模块的具体应用、id=0矢量控制策略以及电流环PI控制器的设计与优化。文中强调了Simulink与DSP结合的优势,如减少手动编写寄存器配置代码的工作量,同时提供了多个实际代码片段展示生成代码的关键部分及其优化方法。 适合人群:具有一定嵌入式开发经验,特别是熟悉DSP和电机控制领域的工程师和技术爱好者。 使用场景及目标:适用于希望提高开发效率、缩短产品上市时间的研发团队。通过学习本文,读者能够掌握如何利用Simulink进行自动化代码生成功能,从而快速构建稳定可靠的PMSM控制系统。 其他说明:尽管Simulink提供的自动生成代码功能极大简化了开发流程,但在某些情况下仍需深入了解硬件特性和底层机制,以便更好地解决可能出现的问题。此外,文中提到的一些具体参数和配置可能需要根据实际情况进行适当调整。

Global site tag (gtag.js) - Google Analytics