跳到主要内容

创建项目

创建SpringBoot项目

使用https://start.spring.io/创建一个SpringBoot项目,你需要选择你喜欢的语言:Java或Kotlin。

项目的语言的选择很重要,Jimmer支持两套不同的API。

  • Java API: 保证尽可能多的开发人员可以使用

  • Kotlin API: 专为kotlin语言设计的API,尽可能利用kotlin的语言特性优化开发体验

加入依赖

Jimmer本身是高度中立的,可以脱离spring-boot使用;但同时也提供了良好的spring-boot集成

用户既可以选择和spring-boot结合使用,也可以单独使用。不同的选择需要添加的依赖不同。

  • groupId: org.babyfish.jimmer

  • artifactId:

    和SpringBoot结合使用单独使用
    Javajimmer-spring-boot-starterjimmer-sql
    Kotlinjimmer-sql-kotlin

相比于独立使用而言,和Spring-Boot结合使用更简单,因此本教程一律使用jimmer-spring-boot-starter进行演示。

修改gradle或maven文件,加入依赖

pom.xml
<properties>
<jimmer.version>0.9.20</jimmer.version>
</properties>

<dependencies>
<dependency>
<groupId>org.babyfish.jimmer</groupId>
<artifactId>jimmer-spring-boot-starter</artifactId>
<version>${jimmer.version}</version>
</dependency>
...省略其他依赖...
</dependencies>
信息

如果你使用的构建工具是Gradle,也可以使用社区提供的第三方Gradle插件 tech.argonariod.gradle-plugin-jimmer,自动识别项目类型,自动添加依赖。

tech.argonariod.gradle-plugin-jimmer 插件由社区提供和维护用以简化 Jimmer 项目配置,非 Jimmer 官方维护。

仓库地址:https://github.com/ArgonarioD/gradle-plugin-jimmer

kotlin需要的额外配置

如果开发人员选择了kotlin,需要修改spring-boot的配置文件,这点非常重要。

注意

Kotlin项目必须配置jimmer.language

jimmer.language = kotlin

其他有用的配置

除了kotlin项目必需的jimmer.language外,还有其他配置。

这里再介绍几个很用的基本配置,对Java和Kotlin都有效

属性名类型默认值描述
jimmer.dialectstringorg.babyfish.jimmer.sql.dialect.DefaultDialect数据库方言类名
jimmer.show-sqlbooleanfalse如果为true,自动打印被执行的SQL
jimmer.pretty-sqlbooleanfalseE确保打印的sql是格式良好的 (默认是紧凑的)
jimmer.database-validation-modeNONE|WARNING|ERRORNONE如果非NONE,验证数据库结构和代码实体类型结构的一致性,如果不一致,WARNING导致日志告警,ERROR导致报错

完整的配置,请参考Spring篇/附录

jimmer.dialect = org.babyfish.jimmer.sql.dialect.MySqlDialect
jimmer.show-sql = true
jimmer.pretty-sql = true
jimmer.database-validation-mode = ERROR
...省略其他配置...

添加除Jimmer外的其他必要依赖

除了Jimmer外,还需要一些其他必要的依赖,比如spring-web,JDBC驱动。

修改gradle或maven文件,加入依赖

pom.xml

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
<scope>runtime</scope>
</dependency>
...省略其他依赖...
</dependencies>