Слияние кода завершено, страница обновится автоматически
Hunt-entity — это объектно-реляционный отображающий инструмент для языка программирования D. Основывается на концепциях JPA.
import hunt.entity;
@Table("user")
class User
{
mixin MakeModel;
@PrimaryKey
@AutoIncrement
int id;
string name;
double money;
string email;
bool status;
}
void main()
{
auto option = new EntityOption;
option.database.driver = "mysql";
option.database.host = "localhost";
option.database.port = 3306;
option.database.database = "test";
option.database.username = "root";
option.database.password = "123456";
option.database.charset = "utf8mb4";
option.database.prefix = "hunt_";
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("default", option);
EntityManager em = entityManagerFactory.createEntityManager();
// начинаем транзакцию
em.getTransaction().begin();
// определим существующий в базе данных идентификатор строки здесь
int id = 10;
auto user = em.find!User(id);
log("Имя пользователя: ", user.name);
// завершаем транзакцию
em.getTransaction().commit();
em.close();
entityManagerFactory.close();
}
auto user = new User();
user.name = "Brian";
user.email = "brian@huntlabs.cn";
user.money = 99.9;
// вставка пользователя
em.persist(user);
log("ID пользователя: ", user.id);
int n = em.remove!User(id);
log("Количество удалённых пользователей: ", n);
```## Обновление строки
```D
auto user = em.find!User(id);
log("Имя пользователя: ", user.name);
user.name = "zoujiaqing";
em.merge!User(user);
log("Количество обновлённых пользователей: ", n);
// Создание объекта CriteriaBuilder из em
CriteriaBuilder builder = em.getCriteriaBuilder();
// Создание объекта CriteriaBuilder из em
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery!User criteriaQuery = builder.createQuery!User;
Root!User root = criteriaQuery.from();
Predicate p1 = builder.lt(root.field(User.id), 1000); // ID пользователя меньше 1000.
Predicate p2 = builder.gt(root.field(User.money), 0); // Деньги пользователя больше 0.
Predicate p3 = builder.like(root.field(User.name), "z%"); // Префикс имени пользователя начинается с z.
TypedQuery!User typedQuery = em.createQuery(criteriaQuery.select(root).where(builder.and(p1, p2), p3));
User[] users = typedQuery.getResultList();
log("Количество найденных пользователей: ", users.length);
Идентификатор | Описание |
---|---|
HUNT_SQL_DEBUG | Используется для логирования отладочных сообщений о работе с SQL |
HUNT_SQL_DEBUG_MORE | Используется для логирования более подробных отладочных сообщений о работе с SQL |
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )