-
Notifications
You must be signed in to change notification settings - Fork 28
Database CRUD
龙卷锋 edited this page May 12, 2020
·
3 revisions
dub add hunt-entity
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
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;
}
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)
{
}
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 );