CDM
全称 common database manager, Java™ orm 框架。
maven链接
GitHub链接
Sanen CDM 官方链接
环境搭建
maven环境
只需在pom中添加(这里用的2.0.5版本,请以maven仓库最新版本为准)
<!-- https://mvnrepository.com/artifact/online.sanen/cdm-core -->
<dependency>
<groupId>online.sanen</groupId>
<artifactId>cdm-core</artifactId>
<version>2.0.5</version>
</dependency>
非maven环境
下载最新jar导入项目
mhdt-common.jar
cdm-api.jar
cdm-core.jar
cdm-template
BootStrap
全局引导器,用于控制CRUD的入口。
工厂创建Bootstrap实例
Bootstrap bootstrap = BootStrapFactoty.load(config->{
config.setDriver(Driven.SQLITE);
config.setUrl("jdbc:sqlite:test.sqlite");
});
BasicBean
实体类映射基础接口
public interface BasicBean {
String primarykey();
}
只有一个待实现方法primarykey,返回对象表主键字段。
package com.example.demo;
import com.mhdt.annotation.NoInsert;
import online.sanen.cdm.basic.BasicBean;
public class User implements BasicBean {
@NoInsert
/** 插入操作时,忽略该字段(id) */
int id;
String name;
String sex;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", sex=" + sex + "]";
}
@Override
public String primarykey() {
return "id";
}
}
自动建表
bootstrap.query(new User()).create();
插入
创建User实例
调用bootstrap.query(user).insert();
SimpleRandom ran = new SimpleRandom();
for(int i=0;i<10;i++) {
User user = new User();
user.setName(ran.nextLetter(4));
user.setSex(ran.nextInt(1)==0?"男":"女");
bootstrap.query(user).insert();
}
查询列表
bootstrap.query(User.class).addEntry(User.class).list();
addEntry方法: 设置实体类映射
list方法:返回列表
List<User> list = bootstrap.query(User.class).addEntry(User.class).list();
System.out.println(list);
主键操作
查询
bootstrap.query(User.class,1).find();
删除
bootstrap.query(User.class,1).delete();
修改
bootstrap.query(User.class,2).find()
User.class: 实体类类型
find方法: 主键查询
User user = bootstrap.query(User.class,2).find();
user.setName("Tom");
bootstrap.query(user).update();
网友评论