1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/sanen-projects-cdm

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README-en.md

Cdm Framework

Cdm Framework

Travis codecov Maven central License

English | 简体中文

A simple to use, zero configuration, high rate of fault tolerance, the efficiency of the Java ™ ORM database framework.

✨ Features

  • 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.

Compare with Mybatis

  • 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.

Compare with Hibernate

  • 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.

Document

Please refer to the Wiki for continuous updates.

Installation

Import Maven rely on.

Maven

    
<dependency>
 <groupId>online.sanen</groupId>
 <artifactId>cdm-core</artifactId>
 <version>2.0.5</version>
</dependency>
    

Gradle

    
compile group: 'online.sanen', name: 'cdm-core', version: '2.0.5'
    

Download

Maven cdm-api Maven cdm-core Maven mhdt-common

BootstrapFactory

Mysql

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);
});

Oracle

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");
});

Sqlite

Bootstrap bootstrap = BootstrapFactoty.load("defaultBootstrap",obstract -> {
    obstract.setDriver(Driven.SQLITE);
    obstract.setUrl("jdbc:sqlite:test.sqlite");
});

Sqlserver

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";
    }
         
}
  1. Операции CRUD:
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();

Behavior.java

Режим гиперемии (DDD), сам класс сущности может иметь поведение CRUD.

Пример:

  1. Класс сущности реализует интерфейс Behavior:
@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";
    }
}
  1. CRUD операции:
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 )

Вы можете оставить комментарий после Вход в систему

Введение

Фреймворк ORM для баз данных на платформе Java. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/sanen-projects-cdm.git
git@api.gitlife.ru:oschina-mirror/sanen-projects-cdm.git
oschina-mirror
sanen-projects-cdm
sanen-projects-cdm
master