ホームページ >データベース >mysql チュートリアル >Spring Boot JPAアクセスMysqlサンプルコードの詳細説明(画像とテキスト)

Spring Boot JPAアクセスMysqlサンプルコードの詳細説明(画像とテキスト)

黄舟
黄舟オリジナル
2017-03-20 13:44:031770ブラウズ

この記事では主に Spring Boot JPA のアクセス Mysql の例を紹介します。編集者が非常に優れていると考えたので、参考として共有します。エディターに従って見てみましょう

前の記事では、Maven を介して Spring Boot プロジェクトを構築し、Web モジュールを参照してアプリケーションを開始し、簡単な Web アプリケーション アクセスを完了する方法を説明しました。この章では、データ アクセスとポートの変更について説明します。これに基づいて追加されたコードは、デモの例と同じです (この使用例は純粋に手動でテストされ、合格したため、自由にピットに入ってください)。

デフォルトのポートを変更します

次のように srcmainresources の下に application.properties コンテンツを追加します

server.port=8888

プロジェクトディレクトリ構造


アプリケーションを起動すると、ログに次のように表示されます。ポートはすでにデフォルトの 8080 から 8888 に変更します

JPA アクセス mysql データベース

1. POM に

  <!-- Spring Boot JPA -->
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
    <version>RELEASE</version>
  </dependency>
  <!-- MYSQL -->
  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
  </dependency>
を追加します。 2. 以下の内容で srctestresources の下に application.properties を追加します (正式なアプリケーションの場合は、構成をアプリケーションに追加してください)。 srcmainresources の下のプロパティ):
server.port=8888
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=dbuser
spring.datasource.password=dbpass
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.properties.hibernate.hbm2ddl.auto=create-drop

create:

model

クラスに基づいてテーブルを生成しますが、変更がない場合でも、実行されるたびに前のテーブルが削除され、テーブルが再生成されます。 2回(実稼働環境では無効になっています。誤って使用すると泣きます...)
  1. create-drop: モデルクラスに基づいてテーブルを生成しますが、sessionFactoryが閉じられるとすぐに、テーブルは自動的に削除されます(運用環境では無効)

  2. 更新: 最も一般的に使用される属性は、モデル クラスに基づいてテーブルも生成します。テーブル構造が変更された場合でも、テーブル内の行はまだ存在し、前の行は削除されません

  3. 検証: データベース内のテーブルと比較するだけで、新しいテーブルは作成されませんが、新しい値が挿入されます

  4. 3. 新しいエンティティを作成します

  5. srcmainjavacommentityUser.java
package com.entity;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
@Entity
@Table(name="t_user")
public class User implements Serializable {
private static final long serialVersionUID = -3258839839160856613L;
  @Id
  @GeneratedValue
  private Long id;

  private String name;

  private String moblie;



  public Long getId() {
    return id;
  }

  public void setId(Long id) {
    this.id = id;
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public String getMoblie() {
    return moblie;
  }

  public void setMoblie(String moblie) {
    this.moblie = moblie;
  }
}

新しいデータアクセス
Interface

(JPA)

srcmainjavacomdaoUserRepository .java

package com.dao;

import entity.User;
import org.springframework.data.jpa.repository.JpaRepository;

/**
 * Description:
 * date: 2017/3/15 16:28
 */
public interface UserRepository extends JpaRepository<User, Long> {

  User findByName(String name);

}
ソースコードからもわかるように、JpaRepositoryにはsave(更新と保存)、delete、getOne、findAllなどのメソッドが実装されており、基本的なデータ操作については、インターフェイスを定義する必要はなく、直接使用するだけです。
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package org.springframework.data.jpa.repository;

import java.io.Serializable;
import java.util.List;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.Sort;
import org.springframework.data.repository.NoRepositoryBean;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.QueryByExampleExecutor;

@NoRepositoryBean
public interface JpaRepository<T, ID extends Serializable> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> {
  List<T> findAll();

  List<T> findAll(Sort var1);

  List<T> findAll(Iterable<ID> var1);

  <S extends T> List<S> save(Iterable<S> var1);

  void flush();

  <S extends T> S saveAndFlush(S var1);

  void deleteInBatch(Iterable<T> var1);

  void deleteAllInBatch();

  T getOne(ID var1);

  <S extends T> List<S> findAll(Example<S> var1);

  <S extends T> List<S> findAll(Example<S> var1, Sort var2);
}

4. 対応する

単体テスト

を記述して、記述した内容が正しいか検証します

POMに

   <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-test</artifactId>
   </dependency>
を追加して単体テストケースを作成します

srctestjavaUserTest.java

import com.SampleController;
import com.dao.UserRepository;
import com.entity.User;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

/**
 * date: 2017/3/15 17:21
 */
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SampleController.class)
public class UserTest {

  @Autowired
  private UserRepository userRepository;

  @Test
  public void saveTest() {
    User user = new User();
    user.setName("王大锤");
    user.setMoblie("13300000000");
    userRepository.save(user);

    Assert.assertEquals("13300000000", userRepository.findByName("王大锤").getMoblie());
  }
}

実行結果の例

以上がSpring Boot JPAアクセスMysqlサンプルコードの詳細説明(画像とテキスト)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。