JPA是Java Persistence API的简称,中文名Java持久层API,
可以通过 注解或XML描述对象-关系表的映射关系。
简单来说,你声明了一个实体类,可以通过注解的方式,实现
- 将注解类和数据库中是数据表关联,一一对应
- 将实体类的属性和数据列关联,一一对应
- 将实体类和实体类关联,外键
以上功能 sql 将会自动生成,而不需要手写 sql 。
jpa 这种方式有利有弊。相对于 mybatis 来说,隐去了维护 sql 的麻烦,方便支持多数据库平台,
缺点是性能差,不利于像 mybatis 一样可以通过插件拓展功能。
但是一般来说,mirai-console 插件 并不需要过多关注数据库性能。
可作为前置插件的成品,带有一个消息记录器持久化消息到数据库
https://github.com/cssxsh/mirai-hibernate-plugin
首先在 dependencies 中加入相关依赖
从我的前置插件中获得
dependencies {
implementation("xyz.cssxsh.mirai:mirai-hibernate-plugin:2.4.4")
}
mirai {
jvmTarget = JavaVersion.VERSION_11
}
或者你可以从原始库中获得
dependencies {
// SQL/ORM
api("org.hibernate.orm:hibernate-core:6.1.3.Final")
api("org.hibernate.orm:hibernate-hikaricp:6.1.3.Final")
api("org.hibernate.orm:hibernate-community-dialects:6.1.3.Final")
// 连接池
api("com.zaxxer:HikariCP:5.0.1")
// 数据库驱动
api("com.h2database:h2:2.1.214")
api("org.xerial:sqlite-jdbc:3.39.3.0")
api("mysql:mysql-connector-java:8.0.30")
api("org.postgresql:postgresql:42.5.0")
testImplementation(kotlin("test"))
testImplementation("org.slf4j:slf4j-simple:2.0.0")
testImplementation("net.mamoe:mirai-logging-slf4j:2.12.3")
testImplementation("net.mamoe:mirai-core-utils:2.12.3")
}
mirai {
jvmTarget = JavaVersion.VERSION_11
}