阅读更多

4顶
7踩

编程语言

原创新闻 jOOQ 2.0发布,轻量级Java的ORM框架

2011-11-28 14:07 by 资深编辑 luiang1018 评论(22) 有17505人浏览
jOOQ 2.0已经正式发布。jOOQ 2.0是jOOQ的一个全新的开始,基于用户长久以来的强烈需求而开发。此次发布包括了大量的重大改进及bug修复。

jOOQ(Java Object Oriented Querying,即面向Java对象查询)是一个高效地合并了复杂SQL、类型安全、源码生成、ActiveRecord、存储过程以及高级数据类型的Java API的类库。

jOOQ 2.0中的主要改进:

  • 更多的静态API。
  • jooq-codegen(编译)现在默认将生成一个“动态的”元模型而不是之前的静态模型。
  • 不再进行异常检测。jOOQ 2.0添加了一个类似Spring中的DataAccessException层,最终则可能实现一个规范化的错误处理抽象。
  • 窗口函数现在由下层的Aggregate等函数聚合而成,就像SQL中那样。
  • 在涉及泛型类型等地方引入更多的类型安全。
  • 增加一个Sequence类型。
  • 支持数据库中的无符号数据类型。
注意,由于上述的这些改进都不兼容于jOOQ 1.x版本,因此在进行升级时应特别关注一些细节问题。详细请参见发布通告中的升级说明。完整的特性改进及bug修复列表也请参见发布通告。

另外,为防止这些不兼容问题可能对用户现有的项目造成影响,jOOQ同时发布了1.x系列的一个维护版本jOOQ 1.7,你可以暂时选择仍沿用1.x分支。不过Lukas Eder也提示,随着2.x后续版本的发布,未来升级可能更加困难。

发布通告:http://www.jooq.org/notes.php

下载地址:http://sourceforge.net/projects/jooq/files/

4
7
评论 共 22 条 请登录后发表评论
22 楼 KimHo 2011-11-30 21:34
yangguo 写道
caoyangx 写道
create.select(T_AUTHOR.FIRST_NAME, T_AUTHOR.LAST_NAME, count())
      .from(T_AUTHOR)
      .join(T_BOOK).on(T_BOOK.AUTHOR_ID.equal(T_AUTHOR.ID))
      .where(T_BOOK.LANGUAGE.equal("DE"))
      .and(T_BOOK.PUBLISHED.greaterThan(parseDate('2008-01-01')))
      .groupBy(T_AUTHOR.FIRST_NAME, T_AUTHOR.LAST_NAME)
      .having(count().greaterThan(5))
      .orderBy(T_AUTHOR.LAST_NAME.asc().nullsFirst())
      .limit(1, 2)
      .forUpdate();

这种写法很脑残,不如写语句更直观,如果语句再复杂些,根本就无法看出逻辑。
我没用过,所以当我看到这样的写法,我要吐。可能只有作者才有免疫力,从而这个框架的LOGO才如此血腥,是不是寓意着用这个写sql,就像大姨妈一样。



有这种想象力的程序员,未来应该会成为架构师
21 楼 yangguo 2011-11-30 13:05
caoyangx 写道
create.select(T_AUTHOR.FIRST_NAME, T_AUTHOR.LAST_NAME, count())
      .from(T_AUTHOR)
      .join(T_BOOK).on(T_BOOK.AUTHOR_ID.equal(T_AUTHOR.ID))
      .where(T_BOOK.LANGUAGE.equal("DE"))
      .and(T_BOOK.PUBLISHED.greaterThan(parseDate('2008-01-01')))
      .groupBy(T_AUTHOR.FIRST_NAME, T_AUTHOR.LAST_NAME)
      .having(count().greaterThan(5))
      .orderBy(T_AUTHOR.LAST_NAME.asc().nullsFirst())
      .limit(1, 2)
      .forUpdate();

这种写法很脑残,不如写语句更直观,如果语句再复杂些,根本就无法看出逻辑。
我没用过,所以当我看到这样的写法,我要吐。可能只有作者才有免疫力,从而这个框架的LOGO才如此血腥,是不是寓意着用这个写sql,就像大姨妈一样。


20 楼 caoyangx 2011-11-30 11:11
create.select(T_AUTHOR.FIRST_NAME, T_AUTHOR.LAST_NAME, count())
      .from(T_AUTHOR)
      .join(T_BOOK).on(T_BOOK.AUTHOR_ID.equal(T_AUTHOR.ID))
      .where(T_BOOK.LANGUAGE.equal("DE"))
      .and(T_BOOK.PUBLISHED.greaterThan(parseDate('2008-01-01')))
      .groupBy(T_AUTHOR.FIRST_NAME, T_AUTHOR.LAST_NAME)
      .having(count().greaterThan(5))
      .orderBy(T_AUTHOR.LAST_NAME.asc().nullsFirst())
      .limit(1, 2)
      .forUpdate();

这种写法很脑残,不如写语句更直观,如果语句再复杂些,根本就无法看出逻辑。
我没用过,所以当我看到这样的写法,我要吐。可能只有作者才有免疫力,从而这个框架的LOGO才如此血腥,是不是寓意着用这个写sql,就像大姨妈一样。

19 楼 weedria 2011-11-30 09:56
请教:
1、支持SQL的哪种标准.
2、支持跨数据库吗?
3、学习的成本高吗?
4、生产的效率和执行的效率怎样?
5、如果使用此框架,能够为企业带来什么好处??
18 楼 zdmcjm 2011-11-30 07:27
垃圾框架,一行sql就能搞定的逻辑,被搞成这种惨状,最受不了的是,一点批评意见都接受不了。
这种垃圾框架,没有存在的意义。
17 楼 aa87963014 2011-11-29 21:40
jooq做的事情让人吐血。 一条sql变成了一堆方法
16 楼 fainfy 2011-11-29 18:27
最后在补充一下:你知道一个网站为什么LOGO很重要吗?你知道人为什么形象很重要吗?因为人的第一感觉很重要。LOGO与形象就像一个招牌。你的Manual最前面的东西也是一样。如果你认为我看到了不全面,那是因为我觉得我已经看够了,不需要继续在看下去了。
15 楼 fainfy 2011-11-29 18:23
bcw104 写道
[url]如果jOOQ,只是在IDE为使用比JDBC更为方便,那便没有任何生存的意义。
因为开发没有人不采用IDE,你会采用Notepad写代码吗?如果作者只是认为在IDE中可以使用其自动提示的特性,这样效率便会高于JDBC一等,那就大错而特错了。因为在使用jOOQ编写之前,比采用JDBC要多做许多工作,比如声明变量、类型一系列的工作。[/url]
提高写代码的效率和减少出错,只是其中的一个优点罢了,非得要我一项项地列举吗?你既然说去官网看过了,为什么没看下面这些呢?
When to use jOOQ
When you love your RDBMS of choice, including all its vendor-specific features.
When you love control over your code.
When you love the relational data model (read this interesting article).
When you love SQL.
When you love stored procedures.
When you love both OLAP and OLTP

你用JDBC难道不声明变量和类型吗?你用Java用的不是OOP思想吗?没调查过就把人给否定了。


因为我看到了Manual,这个是你们自己做的,应该知道是什么东西吧。
我可没有评价jOOQ的意思。从你的回答,我只是想说,你只不过是想表现你下你的个人能力罢了,根本不了解市场,也不了解程序员,需要的是什么。

Java是OOP,JDBC你搞了这么多变量、类型来表示“列”根直接拼装SQL有区别吗?只不过是换了一个形式就想说有多么美吗?
在说这个jOOQ难道真的有实现ORM面向对象的编程吗?错,你还是过程式编程,完全面向问题编程,还说自己是一个轻量级“ORM”(说到底只是把JDBC换了一个形式表现而已)。
最后:我只是站在一个普通程序员的角度发表一下我自己的观点。没有任何要攻击的意思,但是你的回应让我很惊讶,一个做框架做开源的人,不懂的吸取一般用户的观点,只是站在自己的世界里面,那这东西还是收回去的好。
14 楼 bcw104 2011-11-29 16:04
引用
什么语气啊,一个东西出来了都不允许人批评?那你还是自己拿回去藏着的好!

批评当然可以,最好是多提一些,只是没调查过,只看个名字和介绍就开始评论实在让人受的了。
13 楼 bcw104 2011-11-29 15:59
[url]如果jOOQ,只是在IDE为使用比JDBC更为方便,那便没有任何生存的意义。
因为开发没有人不采用IDE,你会采用Notepad写代码吗?如果作者只是认为在IDE中可以使用其自动提示的特性,这样效率便会高于JDBC一等,那就大错而特错了。因为在使用jOOQ编写之前,比采用JDBC要多做许多工作,比如声明变量、类型一系列的工作。[/url]
提高写代码的效率和减少出错,只是其中的一个优点罢了,非得要我一项项地列举吗?你既然说去官网看过了,为什么没看下面这些呢?
When to use jOOQ
When you love your RDBMS of choice, including all its vendor-specific features.
When you love control over your code.
When you love the relational data model (read this interesting article).
When you love SQL.
When you love stored procedures.
When you love both OLAP and OLTP

你用JDBC难道不声明变量和类型吗?你用Java用的不是OOP思想吗?没调查过就把人给否定了。
12 楼 vb2005xu 2011-11-29 15:42
我使用 dbutil 我觉得很好使 , orm 很重我觉得
11 楼 vision2000 2011-11-29 15:08
这个创意应造一个Object Database 出来结合使用,把这个当作数据系统的查询语言,但用来做ORM,会不会用的很抓狂?
10 楼 freezing 2011-11-29 12:53
最近这框架要这里出现挺多的,但却没见过有人讨论和使用方面。
9 楼 jspc 2011-11-29 12:16
轻在什么地方,没有使用过,要是在简单的介绍一下那就好了
8 楼 KimHo 2011-11-29 11:40
虽然没用过这个框架,但经常见这个框架更新版本,比较频繁
7 楼 yxbwzx 2011-11-29 11:25
为什么这么多人热衷于写ORM
6 楼 fainfy 2011-11-29 10:03
bcw104 写道
fainfy 写道
bcw104 写道
z276356445t 写道
试问这东西能有多轻,都实现ORM了,还能有多轻?


ORM就不轻了?
你真正的研究过jooq吗,轻重都是相对的,你直接用JDBC的API吗?

http://www.jooq.org/manual-single-page/

刚才简单的看了一下官方提供的手册。从中间的代码看出,使用jOOQ所编写的代码相比JDBC也好不到哪里去,几乎都是与JDBC情况一样。
public class UAddressType extends UDTImpl<UAddressTypeRecord> {

    // The UDT meta-model singleton instance
    public static final UAddressType U_ADDRESS_TYPE = new UAddressType();

    // UDT attributes are modeled as static members. Nested UDT's
    // behave similarly
    public static final UDTField<UAddressTypeRecord, UStreetTypeRecord> STREET = // [...]
    public static final UDTField<UAddressTypeRecord, String> ZIP =               // [...]
    public static final UDTField<UAddressTypeRecord, String> CITY =              // [...]
    public static final UDTField<UAddressTypeRecord, String> COUNTRY =           // [...]
    public static final UDTField<UAddressTypeRecord, Date> SINCE =               // [...]
    public static final UDTField<UAddressTypeRecord, Integer> CODE =             // [...]
}

create.select(T_AUTHOR.FIRST_NAME, T_AUTHOR.LAST_NAME, count())
      .from(T_AUTHOR)
      .join(T_BOOK).on(T_BOOK.AUTHOR_ID.equal(T_AUTHOR.ID))
      .where(T_BOOK.LANGUAGE.equal("DE"))
      .and(T_BOOK.PUBLISHED.greaterThan(parseDate('2008-01-01')))
      .groupBy(T_AUTHOR.FIRST_NAME, T_AUTHOR.LAST_NAME)
      .having(count().greaterThan(5))
      .orderBy(T_AUTHOR.LAST_NAME.asc().nullsFirst())
      .limit(1, 2)
      .forUpdate();


上面的代码,最多只做了一个工作,隐藏SQL。相比JDBC来说,又简化了多少代码呢?

相比Hibernate这种ORM是从某个方面来说比较,但是它却提供给用户更方便简洁的API,相比IBatis,Spring JDBC以及纯JDBC,jOOQ又有何优势呢?

也许对于用记事本编程的你来说用“+”或StringBuilder不停地拼字符串跟JOOQ这种方式没什么区别,但是如果你用IDE的话就不一样了。


如果jOOQ,只是在IDE为使用比JDBC更为方便,那便没有任何生存的意义。
因为开发没有人不采用IDE,你会采用Notepad写代码吗?如果作者只是认为在IDE中可以使用其自动提示的特性,这样效率便会高于JDBC一等,那就大错而特错了。因为在使用jOOQ编写之前,比采用JDBC要多做许多工作,比如声明变量、类型一系列的工作。
5 楼 dwbin 2011-11-29 09:37
bcw104 写道
fainfy 写道
bcw104 写道
z276356445t 写道
试问这东西能有多轻,都实现ORM了,还能有多轻?


ORM就不轻了?
你真正的研究过jooq吗,轻重都是相对的,你直接用JDBC的API吗?

http://www.jooq.org/manual-single-page/

刚才简单的看了一下官方提供的手册。从中间的代码看出,使用jOOQ所编写的代码相比JDBC也好不到哪里去,几乎都是与JDBC情况一样。
public class UAddressType extends UDTImpl<UAddressTypeRecord> {

    // The UDT meta-model singleton instance
    public static final UAddressType U_ADDRESS_TYPE = new UAddressType();

    // UDT attributes are modeled as static members. Nested UDT's
    // behave similarly
    public static final UDTField<UAddressTypeRecord, UStreetTypeRecord> STREET = // [...]
    public static final UDTField<UAddressTypeRecord, String> ZIP =               // [...]
    public static final UDTField<UAddressTypeRecord, String> CITY =              // [...]
    public static final UDTField<UAddressTypeRecord, String> COUNTRY =           // [...]
    public static final UDTField<UAddressTypeRecord, Date> SINCE =               // [...]
    public static final UDTField<UAddressTypeRecord, Integer> CODE =             // [...]
}

create.select(T_AUTHOR.FIRST_NAME, T_AUTHOR.LAST_NAME, count())
      .from(T_AUTHOR)
      .join(T_BOOK).on(T_BOOK.AUTHOR_ID.equal(T_AUTHOR.ID))
      .where(T_BOOK.LANGUAGE.equal("DE"))
      .and(T_BOOK.PUBLISHED.greaterThan(parseDate('2008-01-01')))
      .groupBy(T_AUTHOR.FIRST_NAME, T_AUTHOR.LAST_NAME)
      .having(count().greaterThan(5))
      .orderBy(T_AUTHOR.LAST_NAME.asc().nullsFirst())
      .limit(1, 2)
      .forUpdate();


上面的代码,最多只做了一个工作,隐藏SQL。相比JDBC来说,又简化了多少代码呢?

相比Hibernate这种ORM是从某个方面来说比较,但是它却提供给用户更方便简洁的API,相比IBatis,Spring JDBC以及纯JDBC,jOOQ又有何优势呢?

也许对于用记事本编程的你来说用“+”或StringBuilder不停地拼字符串跟JOOQ这种方式没什么区别,但是如果你用IDE的话就不一样了。


什么语气啊,一个东西出来了都不允许人批评?那你还是自己拿回去藏着的好!
4 楼 bcw104 2011-11-29 08:33
fainfy 写道
bcw104 写道
z276356445t 写道
试问这东西能有多轻,都实现ORM了,还能有多轻?


ORM就不轻了?
你真正的研究过jooq吗,轻重都是相对的,你直接用JDBC的API吗?

http://www.jooq.org/manual-single-page/

刚才简单的看了一下官方提供的手册。从中间的代码看出,使用jOOQ所编写的代码相比JDBC也好不到哪里去,几乎都是与JDBC情况一样。
public class UAddressType extends UDTImpl<UAddressTypeRecord> {

    // The UDT meta-model singleton instance
    public static final UAddressType U_ADDRESS_TYPE = new UAddressType();

    // UDT attributes are modeled as static members. Nested UDT's
    // behave similarly
    public static final UDTField<UAddressTypeRecord, UStreetTypeRecord> STREET = // [...]
    public static final UDTField<UAddressTypeRecord, String> ZIP =               // [...]
    public static final UDTField<UAddressTypeRecord, String> CITY =              // [...]
    public static final UDTField<UAddressTypeRecord, String> COUNTRY =           // [...]
    public static final UDTField<UAddressTypeRecord, Date> SINCE =               // [...]
    public static final UDTField<UAddressTypeRecord, Integer> CODE =             // [...]
}

create.select(T_AUTHOR.FIRST_NAME, T_AUTHOR.LAST_NAME, count())
      .from(T_AUTHOR)
      .join(T_BOOK).on(T_BOOK.AUTHOR_ID.equal(T_AUTHOR.ID))
      .where(T_BOOK.LANGUAGE.equal("DE"))
      .and(T_BOOK.PUBLISHED.greaterThan(parseDate('2008-01-01')))
      .groupBy(T_AUTHOR.FIRST_NAME, T_AUTHOR.LAST_NAME)
      .having(count().greaterThan(5))
      .orderBy(T_AUTHOR.LAST_NAME.asc().nullsFirst())
      .limit(1, 2)
      .forUpdate();


上面的代码,最多只做了一个工作,隐藏SQL。相比JDBC来说,又简化了多少代码呢?

相比Hibernate这种ORM是从某个方面来说比较,但是它却提供给用户更方便简洁的API,相比IBatis,Spring JDBC以及纯JDBC,jOOQ又有何优势呢?

也许对于用记事本编程的你来说用“+”或StringBuilder不停地拼字符串跟JOOQ这种方式没什么区别,但是如果你用IDE的话就不一样了。
3 楼 fainfy 2011-11-28 19:36
bcw104 写道
z276356445t 写道
试问这东西能有多轻,都实现ORM了,还能有多轻?


ORM就不轻了?
你真正的研究过jooq吗,轻重都是相对的,你直接用JDBC的API吗?

http://www.jooq.org/manual-single-page/

刚才简单的看了一下官方提供的手册。从中间的代码看出,使用jOOQ所编写的代码相比JDBC也好不到哪里去,几乎都是与JDBC情况一样。
public class UAddressType extends UDTImpl<UAddressTypeRecord> {

    // The UDT meta-model singleton instance
    public static final UAddressType U_ADDRESS_TYPE = new UAddressType();

    // UDT attributes are modeled as static members. Nested UDT's
    // behave similarly
    public static final UDTField<UAddressTypeRecord, UStreetTypeRecord> STREET = // [...]
    public static final UDTField<UAddressTypeRecord, String> ZIP =               // [...]
    public static final UDTField<UAddressTypeRecord, String> CITY =              // [...]
    public static final UDTField<UAddressTypeRecord, String> COUNTRY =           // [...]
    public static final UDTField<UAddressTypeRecord, Date> SINCE =               // [...]
    public static final UDTField<UAddressTypeRecord, Integer> CODE =             // [...]
}

create.select(T_AUTHOR.FIRST_NAME, T_AUTHOR.LAST_NAME, count())
      .from(T_AUTHOR)
      .join(T_BOOK).on(T_BOOK.AUTHOR_ID.equal(T_AUTHOR.ID))
      .where(T_BOOK.LANGUAGE.equal("DE"))
      .and(T_BOOK.PUBLISHED.greaterThan(parseDate('2008-01-01')))
      .groupBy(T_AUTHOR.FIRST_NAME, T_AUTHOR.LAST_NAME)
      .having(count().greaterThan(5))
      .orderBy(T_AUTHOR.LAST_NAME.asc().nullsFirst())
      .limit(1, 2)
      .forUpdate();


上面的代码,最多只做了一个工作,隐藏SQL。相比JDBC来说,又简化了多少代码呢?

相比Hibernate这种ORM是从某个方面来说比较,但是它却提供给用户更方便简洁的API,相比IBatis,Spring JDBC以及纯JDBC,jOOQ又有何优势呢?

发表评论

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

相关推荐

  • 现在常用的java框架有哪些

    Unicode国际化:icu4j扩展了Java标准集合框架,高性能的库:fastutil高性能网络应用框架:NettySpringBoot+Docker集成测试:TestcontainersHTTP 请求模拟测试框架:WireMockexcel操作:poi-ooxmlJava神器动态生成类:...

  • Java 框架、库和软件的精选列表(Awesome Java)

    原创翻译,原始链接 本文为awesome系列中的awesome java 文章目录项目Bean映射构建字节码操作缓存CLI集群管理代码分析代码覆盖率代码生成器编译器计算机视觉配置约束满足问题求解器CSV数据结构数据库日期和时间依赖...

  • 业余草分享 Spring Boot 2.0 正式发布的新特性

    就在昨天Spring Boot2.0.0.RELEASE正式发布,今天早上在发布Spring Boot2.0的时候还出现一个小插曲,将Spring Boot2.0同步到Maven仓库的时候出现了错误,然后Spring Boot官方又赶紧把 GitHub 上发布的 v2.0.0....

  • Java面试复习大纲2.0(持续更新)

    Java面试复习大纲2.0(持续更新)2018-02-26 奋斗蒙 Java帮帮面试复习大纲(Java帮帮总结)【人事】31道,不准备就掉坑的问题【简历】1年简历模板一【简历】2年简历模板一【简历】3年简历模板一【面试】面试练习题...

  • 2022年面试,整理全网初、中、高级常见 Java 面试题

    面试题答案见微信小程序 “Java 精选面试题”,3000 + 道面试题。内容持续更新中包含基础、集合、并发、JVM、Spring、Spring MVC、Spring Boot、Spring Cloud、Dubbo、MySQL、Redis、MyBaits、Zookeeper、Linux、...

  • Java资源大全中文版

    awesome-java 就是 akullpp 发起维护的 Java 资源列表,内容包括:构建工具、数据库、框架、模板、安全、代码分析、日志、第三方库、书籍、Java 站点等等。伯乐在线已经把 awesome-java 资源列表翻成中文后发布于 ...

  • 2021年面试,整理全网初、中、高级常见Java面试题

    2014年4月发布第一个版本的全新开源的Spring Boot轻量级框架。它基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。 另外Spring Boot通过...

  • springboot2.0(一):【重磅】Spring Boot 2.0权威发布

    换句话说就是,当你觉得 Java 不好用的时候,我做了个轻量级的 S,让你好好用 Java。等你觉的 S 也不够轻了,我做了个 SB,让你觉得 S 还是挺轻的。 从2002年Rod Johnson的 interface21 到如今的 Spring Boot2.0 ...

  • 【重磅】Spring Boot 2.0权威发布

    也就是说Spring Boot2.0的最低版本要求为JDK8,据了解国内大部分的互联网公司系统都还跑在JDK1.6/7上,因此想要升级到Spring Boot2.0的同学们注意啦,同时支持了Java9,也仅仅是支持而已。 响应式编程 使用 Spring...

  • Spring Boot 2(一):【重磅】Spring Boot 2.0权威发布

    就在今天Spring Boot2.0.0.RELEASE正式发布,今天早上在发布Spring Boot2.0的时候还出现一个小插曲,将Spring Boot2.0同步到Maven仓库的时候出现了错误,然后Spring Boot官方又赶紧把 GitHub 上发布的 v2.0.0....

  • Spring Boot 2.0(一):【重磅】Spring Boot 2.0权威发布

    就在今天Spring Boot2.0.0.RELEASE正式发布,今天早上在发布Spring Boot2.0的时候还出现一个小插曲,将Spring Boot2.0同步到Maven仓库的时候出现了错误,然后Spring Boot官方又赶紧把 GitHub 上发布的 v2.0.0....

  • 史诗级Java资源大全中文版

    awesome-java就是 akullpp 发起维护的 Java 资源列表,内容包括:构建工具、数据库、框架、模板、安全、代码分析、日志、第三方库、书籍、Java 站点等等。 古董级工具 这些工具伴随着Java一起出现,在各自辉煌之后...

  • spring boot 2.0(一)权威发布spring boot2.0

    Spring Boot2.0.0.RELEASE正式发布,在发布Spring Boot2.0的时候还出现一个小插曲,将Spring Boot2.0同步到Maven仓库的时候出现了错误,然后Spring Boot官方又赶紧把 GitHub 上发布的 v2.0.0.RELEASE 版本进行了撤回...

  • 2021年面试,整理全网初、中、高级常见Java面试题附答案

    面试题答案见微信小程序 “Java精选面试题”,3000+道面试题。内容持续更新中包含基础、集合、并发、JVM、Spring、Spring MVC、Spring Boot、Spring Cloud、Dubbo、MySQL、Redis、MyBaits、Zookeeper、Linux、数据...

  • SpringBoot2.0(一):【重磅】Spring Boot 2.0权威发布

    就在昨天Spring Boot2.0.0.RELEASE正式发布,今天早上在发布Spring Boot2.0的时候还出现一个小插曲,将Spring Boot2.0同步到Maven仓库的时候出现了错误,然后Spring Boot官方又赶紧把 GitHub 上发布的 v2.0.0....

  • 基于FPGA的四相八拍步进电机控制系统设计:集成交付、正反转、加速减速及调速功能

    内容概要:本文详细介绍了基于FPGA的四相八拍步进电机控制系统的开发过程。主要内容包括:1. 使用VHDL和Verilog编写LED显示屏驱动代码,用于显示角度、学号和姓名等信息;2. 实现步进电机的正反转控制,通过状态机管理相序变化;3. 开发加速减速控制模块,确保电机启动和停止时的平稳性;4. 设计调速功能,通过调节脉冲频率实现速度控制。此外,文中还讨论了调试过程中遇到的问题及其解决方案。 适合人群:对FPGA开发和步进电机控制感兴趣的电子工程师、嵌入式系统开发者以及相关专业的学生。 使用场景及目标:适用于需要高精度运动控制的应用场合,如工业自动化、机器人技术和精密仪器等领域。目标是帮助读者掌握FPGA控制步进电机的基本原理和技术细节。 其他说明:文中提供了详细的代码片段和调试经验分享,有助于读者更好地理解和应用所学知识。同时,作者还提到了一些实用技巧,如通过PWM调节实现多级变速,以及如何避免步进电机的共振问题。

  • Android开发:基于SQLite的日历备忘录记事本项目详解与实现

    内容概要:本文详细介绍了基于Android Studio开发的日历备忘录记事本项目,涵盖日历查看、添加备忘录、闹钟提醒和删除备忘录等功能。项目使用SQLite数据库进行数据存储,通过CalendarView、EditText、Button等控件实现用户交互,并利用AlarmManager和PendingIntent实现闹钟提醒功能。此外,项目还包括数据库的设计与管理,如创建DatabaseHelper类来管理数据库操作,确保数据的安全性和完整性。文章还探讨了一些常见的开发技巧和注意事项,如时间戳的使用、手势监听的实现等。 适用人群:适用于初学者和有一定经验的Android开发者,尤其是希望深入了解Android开发基础知识和技术细节的人群。 使用场景及目标:该项目旨在帮助开发者掌握Android开发的基本技能,包括UI设计、数据库操作、闹钟提醒机制等。通过实际项目练习,开发者能够更好地理解和应用这些技术,提升自己的开发能力。 其他说明:文中提到一些进阶任务,如用Room替换SQLite、增加分类标签、实现云端同步等,鼓励开发者进一步扩展和优化项目。同时,项目源码公开,便于学习和参考。

  • Matlab实现基于SVM-Adaboost支持向量机结合Adaboost集成学习时间序列预测的详细项目实例(含完整的程序,GUI设计和代码详解)

    内容概要:本文档详细介绍了一个基于SVM(支持向量机)和Adaboost集成学习的时间序列预测项目。该项目旨在通过结合这两种强大算法,提升时间序列预测的准确性和稳定性。文档涵盖了项目的背景、目标、挑战及其解决方案,重点介绍了模型架构、数据预处理、特征选择、SVM训练、Adaboost集成、预测与误差修正等环节。此外,文档还探讨了模型在金融市场、气象、能源需求、交通流量和医疗健康等多个领域的应用潜力,并提出了未来改进的方向,如引入深度学习、多任务学习、联邦学习等先进技术。 适合人群:具备一定机器学习基础的研究人员和工程师,特别是那些从事时间序列预测工作的专业人士。 使用场景及目标:①用于金融市场、气象、能源需求、交通流量和医疗健康等领域的复杂时间序列数据预测;②通过结合SVM和Adaboost,提升预测模型的准确性和稳定性;③处理噪声数据,降低计算复杂度,提高模型的泛化能力和实时预测能力。 其他说明:文档不仅提供了详细的理论解释,还附有完整的Matlab代码示例和GUI设计指导,帮助读者理解和实践。此外,文档还讨论了模型的部署与应用,包括系统架构设计、实时数据流处理、可视化界面、GPU加速推理等方面的技术细节。

  • #游戏之追逐奶酪123

    #游戏之追逐奶酪123

  • 威纶通触摸屏配方管理系统解析:宏程序、数据结构与UI设计

    内容概要:本文详细介绍了威纶通触摸屏配方管理系统的实现方法及其应用场景。首先,文章讲解了配方管理的基本概念和技术背景,强调了配方管理在工业自动化中的重要性。接着,通过具体的宏程序代码示例,展示了如何实现配方的保存、加载以及安全校验等功能。文中还提到配方数据结构的设计,如使用寄存器地址偏移来确保数据不冲突,并通过CSV文件格式方便地管理和维护配方数据。此外,文章深入探讨了UI设计方面的内容,包括动态图层技术和按钮交互效果的应用,使得用户界面更加友好和直观。最后,作者分享了一些实际项目中的经验和技巧,如文件操作的异常处理和宏指令调试方法。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对触摸屏配方管理系统感兴趣的读者。 使用场景及目标:适用于需要频繁切换设备参数的生产环境,如食品加工、注塑成型等行业。通过使用威纶通触摸屏配方管理系统,可以提高工作效率,减少人为错误,同时简化设备调试和维护流程。 其他说明:附带的工具包提供了完整的宏指令注释版、图库资源和调试工具,帮助用户更好地理解和应用该系统。

Global site tag (gtag.js) - Google Analytics