Skip to content

Database CRUD

龙卷锋 edited this page May 12, 2020 · 3 revisions

Add dependency for dub exec command

dub add hunt-entity

Config

config file in hunt:

config/application.conf

set values:

hunt.database.default.driver=postgresql
hunt.database.default.host=127.0.0.1
hunt.database.default.port=5432
hunt.database.default.database=test
hunt.database.default.username=root
hunt.database.default.password=
hunt.database.default.charset=utf8
hunt.database.default.enabled=true

Create model

source file:

source/app/model/User.d

source code:

module app.model.User;

import hunt.entity;

@Table("users")
class User : Model
{
    mixin MakeModel;

    @AutoIncrement
    @PrimaryKey
    int id;

    string name;

    string email;
}

Create Repository

Easy query result, we need to create UserRepository. source file:

source/app/repository/UserRepository.d

source code:

module app.repository.UserRepository;

import app.model.User;

import entity;

class UsersRepository : EntityRepository!(User, int)
{
}

Query database result

easy to query.

int id = 100;
string name = "hunt";
auto repository = new UserRepository;
auto user = repository.findById( id );

import hunt.entity.domain.Condition;
auto user1 = repository.find(new Condition("%s = %s AND %s = %s", repository.Field.id, id, repository.Field.name, name));

easy to delete.

int id = 100;
auto repository = new UserRepository;
repository.removeById( id );

easy to insert.

auto repository = new UserRepository;
User user = new User;
user.name = "Hunt";
user.email = "[email protected]";
auto user = repository.save( user );
repository.insert( user );

easy to update.

int id = 100;
auto repository = new UserRepository;
auto user = repository.findById( id );
user.name = "Hunt-framework";
repository.save( user );
repository.update( user );
Clone this wiki locally