Перейти к основному содержимому

258 записей с тегом "Persistence"

Посмотреть все теги

· 5 мин. чтения

1. Обзор

JDBC предоставляет Java API для чтения фактических данных, хранящихся в таблицах базы данных. Кроме того, тот же API можно использовать для чтения метаданных о базе данных. Метаданные означают данные о данных, такие как имена таблиц, имена столбцов и типы столбцов.

В этом руководстве мы узнаем, как извлекать различные типы метаданных с помощью интерфейса DatabaseMetaData .

2. Интерфейс базы данных метаданных

DatabaseMetaData — это интерфейс, который предоставляет множество методов для получения исчерпывающей информации о базе данных. Эта информация полезна для создания инструментов баз данных, которые позволяют пользователям исследовать структуру различных баз данных. Это также полезно, когда мы хотим проверить, поддерживает ли базовая база данных некоторые функции или нет.

· 7 мин. чтения

1. Обзор

Apache Cayenne — это библиотека с открытым исходным кодом, распространяемая по лицензии Apache, предоставляющая такие функции, как инструмент моделирования, объектно-реляционное сопоставление, также известное как ORM, для операций локального сохранения и удаленных служб.

В следующих разделах мы увидим, как взаимодействовать с базой данных MySQL с помощью Apache Cayenne ORM.

2. Зависимости Maven

Для начала нам просто нужно добавить следующие зависимости, чтобы подключить Apache Cayenne и MySQL к драйверу JDBC для доступа к нашей базе данных intro_cayenne :

· 4 мин. чтения

1. Введение

В этом кратком руководстве мы кратко рассмотрим, как аннотацию @ManyToMany можно использовать для указания этого типа отношений в Hibernate.

2. Типичный пример

Давайте начнем с простой диаграммы отношений сущностей, которая показывает связь «многие ко многим» между двумя сущностями , сотрудником и проектом:

./16177749a278f576762d3aa92aa724eb.png

· 4 мин. чтения

1. Введение

Наследование является одним из ключевых понятий в Java. Поэтому неудивительно, что большинство моделей предметной области используют его. Но, к сожалению, эта концепция не существует в реляционных базах данных, и вам нужно найти способ отобразить иерархию наследования на модель реляционной таблицы.

JPA и Hibernate поддерживают разные стратегии, которые сопоставляют иерархию наследования с различными моделями таблиц. Давайте взглянем на главу моей новой книги «Советы по Hibernate — более 70 решений распространенных проблем Hibernate», в которой я объясняю стратегию SingleTable . Он сопоставляет все классы иерархии наследования с одной и той же таблицей базы данных.

Я объясняю другие стратегии сопоставления наследования в Hibernate в моей книге Hibernate Tips . Это кулинарная книга с более чем 70 готовыми к использованию рецептами по таким темам, как базовые и расширенные сопоставления, ведение журналов, поддержка Java 8, кэширование, а также статически и динамически определяемые запросы. Вы можете приобрести его на этой неделе на Amazon по специальной стартовой цене всего в 2,99 доллара.


2. Советы по Hibernate — как сопоставить иерархию наследования с одной таблицей

· 6 мин. чтения

1. Обзор

В этом вводном руководстве мы узнаем о проекте пула соединений HikariCP JDBC . Это очень легкая (примерно 130 КБ) и молниеносная среда пула соединений JDBC, разработанная Бреттом Вулдриджем примерно в 2012 году.

2. Введение

Доступно несколько тестовых результатов для сравнения производительности HikariCP с другими платформами пула соединений, такими как c3p0 , dbcp2 , tomcat и vibur . Например, команда HikariCP опубликовала следующие бенчмарки (исходные результаты доступны здесь ):

· 10 мин. чтения

1. Обзор

Reladomo (ранее известный как Mithra) — это фреймворк объектно-реляционного отображения (ORM) для Java , разработанный в Goldman Sachs , в настоящее время выпущенный как проект с открытым исходным кодом. Фреймворк предоставляет функции, обычно необходимые для ORM, а также некоторые дополнительные.

Давайте посмотрим на некоторые из ключевых особенностей Reladomo :

  • он может генерировать классы Java, а также сценарии DDL
  • он управляется метаданными, записанными в XML-файлах
  • сгенерированный код является расширяемым
  • язык запросов является объектно-ориентированным и строго типизированным
  • фреймворк обеспечивает поддержку сегментирования (одна и та же схема, разные наборы данных)
  • также включена поддержка тестирования
  • он предоставляет полезные функции, такие как эффективное кэширование и транзакции.

В следующих разделах мы увидим настройку и несколько основных примеров использования.

2. Настройка Мавена

· 11 мин. чтения

1. Обзор

Eclipse JNoSQL — это набор API и реализаций, упрощающих взаимодействие Java-приложений с базами данных NoSQL .

В этой статье мы узнаем, как установить и настроить JNoSQL для взаимодействия с базой данных NoSQL. Мы будем работать как с коммуникационным, так и с картографическим слоем.

2. Коммуникационный уровень Eclipse JNoSQL

С технической точки зрения коммуникационный уровень состоит из двух модулей: Diana API и драйвера.

· 4 мин. чтения

1. Обзор

Это краткое введение в Grails 3 и GORM.

Мы, конечно, собираемся использовать Groovy, и — неявно — фреймворк также использует Hibernate для ORM, Spring Framework для внедрения зависимостей, SiteMash для макета и тем и т. д.

2. Конфигурация источника данных

Мы можем начать без указания какой-либо явной конфигурации источника данных — по умолчанию Grails использует базу данных HSQLDB для сред разработки и тестирования.

· 4 мин. чтения

1. Обзор

В этом руководстве мы рассмотрим различия между интерфейсами JDBC Statement и PreparedStatement . Мы не будем рассматривать CallableStatement — интерфейс API JDBC , который используется для выполнения хранимых процедур.

2. API-интерфейс JDBC

Оба оператора и PreparedStatement могут использоваться для выполнения запросов SQL. Эти интерфейсы очень похожи. Однако они существенно отличаются друг от друга по характеристикам и производительности:

  • Оператор используется для выполнения строковых SQL- запросов.
  • PreparedStatement используется для выполнения параметризованных SQL-запросов.

· 11 мин. чтения

1. Введение

Несмотря на то, что SQL Injection является одной из самых известных уязвимостей, он по- прежнему занимает первое место в печально известном списке OWASP Top 10 — теперь это часть более общего класса Injection .

В этом руководстве мы рассмотрим распространенные ошибки кодирования в Java, которые приводят к уязвимости приложения, и способы их предотвращения с помощью API, доступных в стандартной библиотеке времени выполнения JVM. Мы также расскажем, какую защиту мы можем получить с помощью ORM, таких как JPA, Hibernate и других, и о каких слепых зонах нам все еще придется беспокоиться.

2. Как приложения становятся уязвимыми для SQL-инъекций?

Атаки с внедрением работают, потому что для многих приложений единственный способ выполнить данное вычисление — это динамически сгенерировать код, который, в свою очередь, запускается другой системой или компонентом . Если в процессе генерации этого кода мы используем ненадежные данные без надлежащей очистки, мы оставляем открытой дверь для хакеров.