Cómo usar la base de datos SQLite en la aplicación SAP BTP Java

Llega oferta, cava amigos a recoger! Estoy participando en el evento de registro de reclutamiento de primavera de 2022, haga clic para ver los detalles del evento .

La recomendación para el modelo de programación de aplicaciones en la nube de SAP es separar las definiciones de los modelos de servicio y modelo.

Por lo tanto, definimos el modelo modelo en la carpeta db.

Crear un nuevo schema.cdsarchivo :

    namespace sap.capire.products;

    using { Currency, cuid, managed, sap.common.CodeList } from '@sap/cds/common';

    entity Products : cuid, managed {
        title    : localized String(111);
        descr    : localized String(1111);
        stock    : Integer;
        price    : Decimal(9,2);
        currency : Currency;
        category : Association to Categories;
    }

    entity Categories : CodeList {
        key ID   : Integer;
        parent   : Association to Categories;
        children : Composition of many Categories on children.parent = $self;
    }
复制代码

El contenido es el siguiente:

Aquí se entitydefinen . Entre ellos, los tipos estándar como Moneda, cuid y Lista de códigos son de @sap/cds/common:

localizedLas palabras clave se pueden utilizar para marcar elementos que deben traducirse. CDS maneja automáticamente la capacidad de almacenar traducciones para diferentes idiomas y almacenar traducciones de respaldo predeterminadas.

Asociaciones 和 Composiciones

associationsy compositionsse puede utilizar para definir relaciones entre entidades. Por lo general, le permiten definir estas relaciones sin usar explícitamente claves externas.

Mientras que las asociaciones definen un acoplamiento bastante flexible entre entidades, las composiciones definen relaciones de contención. También se puede pensar en la composición como una definición de estructuras profundas. Se pueden realizar inserciones profundas y upserts a lo largo de estas estructuras.

En el modelo de dominio, la entidad de categoría define los elementos principal y secundario. Esto permite una jerarquía de categorías. La entidad secundaria de una clase se modela como una composición. Una categoría que contiene todas las subclases define una estructura profundamente anidada. Al eliminar una categoría, se eliminarán automáticamente todos sus elementos secundarios. Sin embargo, el padre de una categoría se modela como una asociación. Obviamente, eliminar una clase no debería eliminar su clase principal.

Tanto cuid como Managed aspect, este último amplía la entidad con elementos adicionales. El aspecto cuid agrega un ID de elemento clave de tipo UUID a la entidad.

El aspecto administrado agrega campos como marcas de tiempo de creación y modificación a la entidad.

Mantenemos pulsada la tecla ctrl + tecla izquierda para ver las correspondientes implementaciones de estos aspectos:

CodeLists se puede usar para almacenar definiciones traducibles globalmente basadas en códigos como moneda, país o idioma. Especialmente para la interfaz de usuario, CodeList se puede usar para proporcionar ayuda valiosa para algunos campos de entrada.

CurrencyLa definición es un tipo. Define la asociación con la entidad monetaria. La entidad Monedas se basa en ISO 4217 y utiliza un código alfabético de tres letras como clave, por ejemplo, EUR o USD, y ofrece la posibilidad de almacenar el símbolo de moneda correspondiente (por ejemplo, € o $).

En la definición del servicio, se exponen algunos campos en el modelo de dominio:

A continuación, debemos implementar el modelo de dominio en sqllite.

Primero instale usando la línea de comando sqlite:

npm install --save-dev sqlite3

Ejecute la siguiente línea de comando para inicializar sqlite con el modelo de dominio usando la línea de comando:

despliegue de cd --to sqlite

A continuación, debemos asociar la aplicación Spring Boot con la base de datos SQLite.

Abra el archivo main/resources/application.yaml:

---
spring:
  profiles: default
  datasource:
    url: "jdbc:sqlite:/home/user/projects/products-service/sqlite.db"
    driver-class-name: org.sqlite.JDBC
    initialization-mode: never
    hikari:
      maximum-pool-size: 1
复制代码

Inserte una nueva pieza de datos usando curl:

curl -X POST http://localhost:8080/odata/v4/AdminService/Categories \
-H "Content-Type: application/json" \
-d '{"ID": 1, "name": "TechEd", "descr": "TechEd related topics", "children": [{"ID": 10, "name": "CAP Java", "descr": "Run on Java"}, {"ID": 11, "name": "CAP Node.js", "descr": "Run on Node.js"}]}'
复制代码

Luego use la siguiente URL para acceder con éxito a los datos de las categorías que acaba de insertar:

espacios de trabajo-ws-pdwk4-app1.us10.trial.applicationstudio.cloud.sap/odata/v4/Ad…

Supongo que te gusta

Origin juejin.im/post/7080324332945145886
Recomendado
Clasificación