Что такое JPA
JPA (Java Persistence API) - это спецификация настойчивости Java, официально предложенную Sun. Он предоставляет разработчикам Java инструмент отображения объектов/ассоциации для управления реляционными данными в приложениях Java. Его появление в основном для упрощения существующих усилий по постоянным развитию и интеграции технологии ORM
Spring Data JPA - это структура приложения JPA, инкапсулированную Spring, основанную на ORM Framework и спецификациях JPA, которая позволяет разработчикам доступ и эксплуатировать данные с использованием минималистского кода. Он предоставляет общие функции, включая дополнения, удаления, модификации и поиски, и его легко расширить! Обучение и использование Spring Data JPA может значительно повысить эффективность разработки!
Используйте JDBCTemplate для доступа к базе данных в Spring Boot
Конфигурация источника данных
Во -первых, чтобы подключиться к базе данных, вам необходимо ввести поддержку JDBC, и в pom.xml введена следующая конфигурация.
<Depeication> <groupid> org.springframework.boot </GroupId> <artifactid> Spring-boot-starter-jdbc </artifactid> </dependency>
Встроенная поддержка базы данных
Встроенные базы данных обычно используются в средах разработки и тестирования. Spring-Boot предоставляет автоматические встроенные базы данных конфигурации, включая H2, HSQL и Derby, которые вам не нужно предоставлять какую-либо конфигурацию подключения для использования.
Такие как зависимость H2
<depervice> <groupid> com.h2database </groupid> <artifactid> h2 </artifactid> <cracpe> runtime </scope> </deperency>
Поддержка базы данных MySQL
<depervice> <groupid> mysql </Groupid> <artifactid> mysql-connector-java </artifactid> <sersive> 5.1.38 </version> </dependency>
Редактировать информацию о конфигурации
Настройка информации источника данных в src/main/resources/application.properties
spring.datasource.url = jdbc: mysql: // localhost: 3306/testspring.datasource.username = rootspring.datasource.password = ourtspring.datasource.driver-class-meme = com.mysql.jdbc.driver
Используйте JDBctemplate для работы с базой данных
Spring JDBctemplate автоматически настроен, вы можете использовать @Autowired, чтобы ввести его в свой собственный боб.
Реализация операций доступа к данным, определенная в DemoService через JDBCTEMPLATE
@Servicepublic class demoserivce {@autowired private jdbctemplate jdbctemplate; public void create (string name, integer age) {jdbctemplate.update («Вставка в демо (имя, возраст) значения (?,?)», имя, возраст); } public void deleteByName (String name) {jdbctemplate.update ("delete from demowhere name =?", name); } public integer getAlldemo () {return jdbctemplate.queryForObject («Выберите счет (1) из демонстрации», integer.class); } public void deletealLdemo () {jdbctemplate.update ("удалить из демонстрации"); }}Создайте модульные тестовые примеры для пользовательского обслуживания, чтобы проверить правильность операций базы данных путем создания, удаления и запроса.
Тестовые примеры должны увеличивать зависимости
<Depective> <groupId> org.springframework.boot </GroupId> <artifactid> spring-boot-starter-test </artifactid> <cerpope> test </scope> </depertive>
Тестовый код
@Runwith (springjunit4classrunner.class) @SpringApplicationConfiguration (main.class) открытый класс ApplicationTests {@autowired Private Demoserivce demoserivce; @Before public void setup () {// Подготовка, очистить таблицу demoserivce.deletealldemo (); } @Test public void -test () бросает исключение {// вставить 5 demoserivce.create ("a", 1); demoserivce.create ("b", 2); demoserivce.create ("c", 3); demoserivce.create ("D", 4); demoserivce.create ("e", 5); Assert.assertequals (5, demoserivce.getalldemo (). Intvalue ()); demoserivce.deletebyname ("a"); demoserivce.deletebyname ("e"); // глядя на базу данных, должно быть 5 assert.assertequals (3, demoserivce.getalldemo (). Intvalue ()); }}Использование Spring-Data-JPA в Spring Boot
Чтобы решить эти большие объемы операций с скучными операторами данных, первое, о чем мы думаем, - это использовать структуру ORM, такую как: Hibernate. После интеграции Hibernate мы наконец -то сопоставляем изменения данных в таблице баз данных по пути манипулирования объектами Java.
Чтобы решить базовую «добавление, удаление, модификацию и поиск» операции абстрагирования каждого объекта Java, мы обычно инкапсулируем шаблон общим способом, чтобы абстрагировать и упростить его, но это все еще не очень удобно. Нам нужно написать интерфейс, унаследованный от общего шаблона в определенной сущности, а затем написать реализацию интерфейса. Хотя некоторый базовый доступ к данным может быть использован хорошо использован, в структуре кода будет множество интерфейсов и реализаций для каждого объекта в структуре кода.
Из -за реализации шаблонов слои этих конкретных сущностей стали очень «тонкими». Реализации некоторых конкретных сущностей могут быть совершенно простым прокси для шаблонов, и часто такие классы реализации могут появляться на многих организациях. Появление пружины-дата-JPA может сделать такой уже «тонкий» уровень доступа к данным стать способом написать слой интерфейсов.
Как использовать
Добавить зависимости
<segependent <groupid> org.springframework.boot </GroupId> <ArtifactId> Spring-Boot-Starter-Data-JPA </artifactid> </depervice>
Редактировать информацию о конфигурации
Настройка информации источника данных в src/main/resources/application.properties
spring.datasource.url = jdbc: mysql: // localhost: 3306/testspring.datasource.username = rootspring.datasource.password = Rootspring.datasource.driver-class-name = com.mysql.jdbc.driverspring.jpa.properties.hibernate.hbm2ddl.auto = обновление
spring.jpa.properties.hibernate.hbm2ddl.auto - это свойство конфигурации Hibernate. Его основная функция - автоматически создавать, обновлять и проверить структуру таблицы баз данных. Несколько конфигураций этого параметра следующие
Создать сущность
@EntityPublic Class Demoentity {@ID @GeneratedValue Private Long ID; Приватная строка название; частный строковый контент; public demoentity () {} public demoentity (название строки, строковое содержание) {this.title = title; this.content = content; } // Получить установленную установку}Создайте DAO
Общественный интерфейс DemorePository расширяет jparePository <demoentity, long> {demoentity findbytitle (строка названия); Демонтность FindBytitLeandContent (название строки, строковое содержимое); // @Query («Выберите u из демонстрации u, где u.content =: content") @Query ("From DemoEntity u, где u.content =: content") demoEntity sqlfind (@param ("content") String Content);};};};};};};};};Не пишите имена таблиц в SQL, но имена объектов, он автоматически преобразует их в имена таблиц.
Создать запрос, анализируя имя метода
Приведенный выше FindBytitle (название строки) и FindBytitLeandContent (заголовок строки, строковое содержимое) не записаны, но фреймворк автоматически создаст SQL в соответствии с именем вышеуказанной пары.
ЕДИНЦИОННЫЕ Тестирование
@Runwith (springjunit4classrunner.class) @SpringApplicationConfiguration (main.class) открытый класс Unittest {@autowired DemorePository DemorePository; @Test public void test () {for (int i = 0; i <10; i ++) {demorepository.save (новая демонстрация ("title"+i, "content"+i)); } Assert.assertequals (10, demorepository.findall (). Size ()); } @Test public void testfindbytitle () {demoentity res = demorepository.findbytitle ("title8"); Assert.assertequals ("title8", res.gettitle ()); } @Test public void testfindbytitleAndcontent () {demoentity res = demorepository.findbytitleAndcontent ("title9", "content9"); Assert.assertequals ("title9", res.gettitle ()); Assert.assertequals ("content9", res.getContent ()); } @Test public void testSqlfind () {demoEntity res = demorePository.sqlfind ("content7"); Assert.assertequals ("content7", res.getContent ()); }}Суммировать
Выше приведено введение редактора в использование Spring-Data-JPA в Spring Boot для облегчения и быстрого доступа к базе данных. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!