Kite:Kotlin/Java 通用的全自动 ORM 框架
框架特点全自动映射无需手动编写 SQLKite 会自动根据实体类生成相应的数据库操作语句支持自定义 SQL在需要时可以编写自定义 SQL 语句满足复杂查询需求还可以像写代码一样写流程控制语句多数据库支持支持 PostgreSQL、MySQL、Derby 等主流关系型数据库Kotlin/Java 双语言支持既可以在 Kotlin 项目中使用也可以在 Java 项目中无缝集成轻量级设计无过多依赖性能优秀丰富的 API提供简洁直观的 API支持各种复杂查询和操作Spring Boot 集成提供 Spring Boot Starter便于在 Spring Boot 项目中快速集成使用方法Spring Boot 集成示例Mav向项目添加以下依赖Mavendependency groupIdio.github.tangllty/groupId artifactIdkite-spring-boot-starter/artifactId version${kite.version}/version /dependencyGradleimplementation(io.github.tangllty:kite-spring-boot-starter:${kite.version})在数据库中创建表使用 MySQL 演示create table account ( id bigint not null auto_increment, username varchar(32) default , password varchar(32) default , balance decimal(10,2) default 0.00, create_time datetime default null, update_time datetime default null, primary key (id) ); insert into account (username, password, create_time, balance) values (admin, admin123, 2020-01-01 12:00:00, 1000.10), (user, user123, 2024-05-02 8:30:00, 101.00), (guest, guest123, 2022-03-03 15:00:00, 10.00), (tang, tang123, 2019-06-01 21:30:30, 1.88), (jeo, jeo123, 2024-07-01 5:59:59, 0.10);在application.yml文件中配置数据库连接信息spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/kite-test username: root password: password为account表创建模型类Javaimport com.tang.kite.annotation.id.Id; import com.tang.kite.annotation.id.IdType; import java.math.BigDecimal; import java.time.LocalDateTime; public class Account { Id(type IdType.AUTO) private Long id; private String username; private String password; private BigDecimal balance; private LocalDateTime createTime; private LocalDateTime updateTime; // Getters and Setters }Kotlinimport com.tang.kite.annotation.id.Id import com.tang.kite.annotation.id.IdType import java.math.BigDecimal import java.time.LocalDateTime class Account ( Id(type IdType.AUTO) var id: Long? null, var username: String? null, var password: String? null, var balance: BigDecimal? null, var createTime: LocalDateTime? null, var updateTime: LocalDateTime? null )继承BaseMapper接口创建 Mapper 接口Javaimport com.tang.kite.mapper.BaseMapper; import com.tang.kite.spring.annotation.Mapper; Mapper public interface AccountMapper extends BaseMapperAccount { }Kotlinimport com.tang.kite.mapper.BaseMapper import com.tang.kite.spring.annotation.Mapper Mapper interface AccountMapper : BaseMapperAccount在 Spring Boot 应用类上添加MapperScan注解Javaimport com.tang.kite.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; MapperScan(com.tang.application.mapper) SpringBootApplication public class KiteApplication { public static void main(String[] args) { SpringApplication.run(KiteApplication.class, args); } }Kotlinimport com.tang.kite.spring.annotation.MapperScan import org.springframework.boot.autoconfigure.SpringBootApplication import org.springframework.boot.runApplication MapperScan([com.tang.application.mapper]) SpringBootApplication class KiteApplication fun main(args: ArrayString) { runApplicationKiteApplication(*args) }测试 Mapper 接口Javaimport com.tang.demo.mapper.AccountMapper; import com.tang.kite.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; MapperScan(com.tang.application.mapper) SpringBootApplication public class KiteApplication { public static void main(String[] args) { var context SpringApplication.run(KiteApplication.class, args); var accountMapper context.getBean(AccountMapper.class); var accounts accountMapper.select(); accounts.forEach(System.out::println); } }Kotlinimport com.tang.demo.mapper.AccountMapper import com.tang.kite.spring.annotation.MapperScan import org.springframework.boot.autoconfigure.SpringBootApplication import org.springframework.boot.runApplication MapperScan([com.tang.application.mapper]) SpringBootApplication class KiteApplication fun main(args: ArrayString) { val context runApplicationKiteApplication(*args) val accountMapper context.getBean(AccountMapper::class.java) val accounts accountMapper.select() accounts.forEach { println(it) } }
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2476617.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!