Cdm Framework
English | 简体中文
A simple to use, zero configuration, high rate of fault tolerance, the efficiency of the Java ™ ORM database framework.
Easy Without relying on any third party, one line of code can initialize the database connection. To call the interface, you only need to remember one Bootstrap, one BootstrapFactory and two interfaces (BasicBean, Behavior).
Zero configuration If configuration parameters are required, use annotations instead of configuration files.
High fault tolerance rate A non-fatal error automatically executes the default scheme.
Efficiency Save time and while SQL writing is supported, most of the time it is not necessary.
Support common database Mysql, Sqlite, Oracle, SqlServer.
In contrast to Mybatis, there is no configuration file and a few parameters that need to be configured are implemented by annotations.
Small, easy to use, learn to use only need to see examples.
In most cases, combining functions to replace SQL (support complex conditional queries, limit, sort, etc.) is good for database portability.
It won't introduce many bugs due to complicated configuration.
Support batch modification and deletion.
Built-in caching makes execution faster.
Although it is an orm framework, SQL is still recommended to solve complex problems. Compared with SQL, a one-to-many relationship similar to Hibernate will make the problem more complex and difficult to maintain.
Please refer to the Wiki for continuous updates.
Import Maven rely on.
<dependency>
<groupId>online.sanen</groupId>
<artifactId>cdm-core</artifactId>
<version>2.0.5</version>
</dependency>
compile group: 'online.sanen', name: 'cdm-core', version: '2.0.5'
Bootstrap bootstrap = BootstrapFactoty.load("sqlite", obstract -> {
obstract.setDriver(Driven.MYSQL);
obstract.setUrl("jdbc:mysql://127.0.0.1:3306/test?useSSL=false");
obstract.setUsername("root");
obstract.setPassword("root");
obstract.setFormat(true);
});
Bootstrap bootstrap = BootstrapFactoty.load("oracle", obstract -> {
obstract.setDataSouseType(DataSouseType.Dbcp);
obstract.setDriver(Driven.ORACLE);
obstract.setUrl("jdbc:oracle:thin:@//127.0.0.1:1521/orcl");
obstract.setUsername("username");
obstract.setPassword("password");
});
Bootstrap bootstrap = BootstrapFactoty.load("defaultBootstrap",obstract -> {
obstract.setDriver(Driven.SQLITE);
obstract.setUrl("jdbc:sqlite:test.sqlite");
});
Bootstrap bootstrap
``` **BootstrapFactory.load(абстрактный объект -> {**
абстрактныйОбъект.setDriver("com.microsoft.sqlserver.jdbc.SQLServerDriver");
абстрактныйОбъект.setUrl("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=testDb");
абстрактныйОбъект.setUsername("username");
абстрактныйОбъект.setPassword("password");
});
# Интерфейс
## BasicBean.java
Основной интерфейс, который должен быть реализован классом сущности, можно вызвать через bootstrap. Например:
> bootstrap.query(User.class)
> bootstrap.query("user").addEntry(User.class)
**Пример:**
1. Класс сущности реализует интерфейс **BasicBean**:
```java
class User implements BasicBean{
int id;
String name;
@Override
public String primarykey() {
return "id";
}
}
bootstrap.query(user).insert();
bootstrap.query(user).delete();
bootstrap.query(user).update();
// Первичный ключ/запрос списка
bootstrap.query(User.class,2).find();
bootstrap.query(User.class).addEntry(User.class).list();
// Условия запроса
Условие condition = C.buid("name").eq("zhang san");
// Создание условий
bootstrap.query("user").addEntry(User.class)
.addCondition(condition).sort(Sorts.DESC, "id")
.limit(0,10).list();
Режим гиперемии (DDD), сам класс сущности может иметь поведение CRUD.
Пример:
@Table("user") // По умолчанию устанавливается имя класса в качестве имени таблицы
@BootStrapID("defaultBootstrap") // Определяет идентификатор начальной загрузки
public static class User implements Behavior<User>{
@NoInsert
int id;
String name;
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + "]";
}
@Override
public String primarykey() {
return "id";
}
}
User user = new User();
user.name = "zhangsan";
user.createTable();
int id = user.insert();
List<User> list = Behavior.specify(User.class).list();
System.out.println(list);
user = new User(id).findByPk().get();
user.name = "Li si";
user.update();
Condition condition = C.buid("name").eq("Li si");
list = Behavior.specify(User.class).addCondition(condition).limit(0,10).list();
System.out.println(list);
user.delete();
🌙 Можно перейти на Github cdm-core, чтобы задать вопросы или внести предложения ISSUES.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )