创建项目
创建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结合使用 单独使用 Java jimmer-spring-boot-starter jimmer-sql Kotlin jimmer-sql-kotlin
相比于独立使用而言,和Spring-Boot结合使用更简单,因此本教程一律使用jimmer-spring-boot-starter
进行演示。
修改gradle或maven文件,加入依赖
- Maven
- Gradle
- Gradle(kts)
- Gradle插件
- Gradle插件(kts)
<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>
ext {
jimmerVersion = "0.9.20"
}
dependencies {
implementation "org.babyfish.jimmer:jimmer-spring-boot-starter:${jimmerVersion}"
...省略其他依赖...
}
val jimmerVersion = "0.9.20"
dependencies {
implementation "org.babyfish.jimmer:jimmer-spring-boot-starter:${jimmerVersion}"
...省略其他依赖...
}
plugins {
// 从 Gradle 7.0 开始,可以使用 "latest.release" 代替具体的版本号,代表使用最新版本
// 也可以使用 '+' 字符代表从 '+' 字符开始匹配最新的版本号
id "tech.argonariod.gradle-plugin-jimmer" version "latest.release"
... 省略其它插件 ...
}
jimmer {
// 设定 jimmer 依赖版本,此处也可以使用 "latest.release" 或 "0.+" 等版本范围表达式
version = "0.9.20"
}
plugins {
// 从 Gradle 7.0 开始,可以使用 "latest.release" 代替具体的版本号,代表使用最新版本
// 也可以使用 '+' 字符代表从 '+' 字符开始匹配最新的版本号
id("tech.argonariod.gradle-plugin-jimmer") version "latest.release"
... 省略其它插件 ...
}
jimmer {
// 设定 jimmer 依赖版本,此处也可以使用 "latest.release" 或 "0.+" 等版本范围表达式
version = "0.9.20"
}
如果你使用的构建工具是Gradle,也可以使用社区提供的第三方Gradle插件 tech.argonariod.gradle-plugin-jimmer
,自动识别项目类型,自动添加依赖。
tech.argonariod.gradle-plugin-jimmer
插件由社区提供和维护用以简化 Jimmer 项目配置,非 Jimmer 官方维护。
kotlin需要的额外配置
如果开发人员选择了kotlin,需要修改spring-boot的配置文件,这点非常重要。
Kotlin项目必须配置jimmer.language
- application.properties
- application.yml
jimmer.language = kotlin
jimmer:
language: kotlin
其他有用的配置
除了kotlin项目必需的jimmer.language
外,还有其他配置。
这里再介绍几个很用的基本配置,对Java和Kotlin都有效
属性名 | 类型 | 默认值 | 描述 |
---|---|---|---|
jimmer.dialect | string | org.babyfish.jimmer.sql.dialect.DefaultDialect | 数据库方言类名 |
jimmer.show-sql | boolean | false | 如果为true,自动打印被执行的SQL |
jimmer.pretty-sql | boolean | false | E确保打印的sql是格式良好的 (默认是紧凑的) |
jimmer.database-validation-mode | NONE|WARNING|ERROR | NONE | 如果非NONE,验证数据库结构和代码实体类型结构的一致性,如果不一致,WARNING导致日志告警,ERROR导致报错 |
完整的配置,请参考Spring篇/附录
- application.properties
- application.yml
jimmer.dialect = org.babyfish.jimmer.sql.dialect.MySqlDialect
jimmer.show-sql = true
jimmer.pretty-sql = true
jimmer.database-validation-mode = ERROR
...省略其他配置...
jimmer:
dialect: org.babyfish.jimmer.sql.dialect.MySqlDialect
show-sql: true
pretty-sql: true
database-validation-mode: ERROR
...省略其他配置...
添加除Jimmer外的其他必要依赖
除了Jimmer外,还需要一些其他必要的依赖,比如spring-web,JDBC驱动。
修改gradle或maven文件,加 入依赖
- Maven
- Gradle
- Gradle(kts)
<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>
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
runtimeOnly 'mysql:mysql-connector-java:8.0.30'
...省略其他依赖...
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-web")
runtimeOnly("mysql:mysql-connector-java:8.0.30")
...省略其他依赖...
}