Springboot極簡チュートリアル010-データベース準備

15641 ワード

Springboot極簡教程001-でも最初に言及しましたが、MySQLのブランチバージョンMariaDBを使用して学習することをお勧めします.多くのオンラインの生産環境が使用されているので、学習段階で熟知することができます.直接ネットでMariaDBを検索してダウンロードしてインストールすればいいです.
注意すべき点
  • MariaDBをインストールした後、インストールディレクトリの下のbinディレクトリパス(つまりmysql.exeが存在するディレクトリ)をPATH環境変数に追加することができ、後で直接mysqlコマンド
  • データベーステーブルを作成するときはできるだけutf 8フォーマット(utf 8 mb 4を推奨するものもある)を使用し、以下のSQL:
  • MySQL5.5バージョンのデフォルトのデータベース・ストレージ・エンジンはInnoDBで、コミット、ロールバック、クラッシュ・リカバリ機能を備えたトランザクション・セキュリティです.しかし、MyISAMストレージエンジンよりもInnoDB書き込みの処理効率が悪く、データとインデックスを保持するためにより多くのディスク領域を消費します.MyISAMはMySQL 5.5以前のバージョンのデフォルトのデータベース・ストレージ・エンジン.MYISAMは高速ストレージと検索、全文検索能力を提供し、データウェアハウスなどのクエリーの頻繁な応用に適している.ただし、トランザクションはサポートされておらず、外部キーもサポートされていません.MyISAMフォーマットの重要な欠点は、テーブルが破損した後にデータを復元できないことです.
  • --   utf8mb4       test
    create database test default character set utf8mb4;
    
    --    score     utf8
    alter table score default character set utf8;
    

    共通コマンド
    データベース接続コマンド
    mysql -uroot -proot
    

    MySQLの再起動
    service mysqld restart
    

    SQLファイルのインポート
    mysql>source d:/student.sql
    

    MySQLの現在のデフォルトのストレージエンジンの表示
    mysql> show variables like '%storage_engine%';
    

    データベースの作成
    DROP DATABASE IF EXISTS student;
    CREATE DATABASE student DEFAULT CHARACTER SET utf8;
    

    テーブルの作成
    参考後の**【テスト用データベーステーブルおよびSQL】**
    データベースの表示
    show databases;
    

    テーブルの作成情報の表示
    show create table user;
    

    テーブルのストレージエンジンの変更
    ALTER TABLE user ENGINE=INNODB;
    

    データベーステーブル全体のストレージエンジンを変更する場合は、一般的に1つのテーブル1つのテーブルの変更が必要で、煩雑で、まずデータベースをエクスポートしてSQLを得て、MyISAMをすべてINNODBに置き換えて、データベースをインポートする方法を採用することができます.変換が完了したらmysqlを再起動します.
    検索
    レコードの挿入
    レコードの削除
    レコードの変更
    テスト用データベーステーブルおよびSQL
    student.sql:
    DROP DATABASE IF EXISTS student;
    CREATE DATABASE student DEFAULT CHARACTER SET utf8;
     
    use student;
     
    CREATE TABLE student(
      id int(11) NOT NULL AUTO_INCREMENT,
      student_id int(11) NOT NULL UNIQUE,
      name varchar(255) NOT NULL,
      age int(11) NOT NULL,
      sex varchar(255) NOT NULL,
      birthday date DEFAULT NULL,
      PRIMARY KEY (id)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
     
     
    insert into student(student_id, name, age, sex, birthday) value(2018001, "Alice", 28, " ", "1990-10-18");
    insert into student(student_id, name, age, sex, birthday) value(2018002, "Bob", 27, " ", "1991-10-18");
    insert into student(student_id, name, age, sex, birthday) value(2018003, "David", 26, " ", "1992-10-18");
    insert into student(student_id, name, age, sex, birthday) value(2018004, "Jim", 38, " ", "1980-10-18");
    insert into student(student_id, name, age, sex, birthday) value(2018005, "Mark", 18, " ", "2000-10-18");
    

    SpringbootでMySQLを使用
    依存の追加
    SpringbootでMySQLを使用する場合は、依存を追加する必要があります.
    
    <dependency>
        <groupId>mysqlgroupId>
        <artifactId>mysql-connector-javaartifactId>
        <version>5.1.21version>
    dependency>
    

    データ・ソースの構成
    アプリケーションでデータソースを構成する必要があります.ymlに構成を追加するには:
    spring:
      datasource:
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://127.0.0.1:3306/student?characterEncoding=UTF-8
        password: "root"
        username: "root"
    

    データソースのテスト
    データソースが正しいかどうかをテストします.ユニットテストにテストを追加できます.
    @RunWith(SpringJUnit4ClassRunner.class)
    @SpringBootTest(classes = MyspringbootApplication.class)
    public class TestDataSource {
     
        @Autowired
        private ApplicationContext applicationContext;
     
        @Test
        public void test(){
            DataSource dataSource = applicationContext.getBean(DataSource.class);
            System.out.println(dataSource);
           }
    }
    

    可能性のある問題
    一般的なデータソース接続に問題があるのはアプリケーションであることが多い.ymlの構成が間違っているので、よくチェックする必要があります.例えば、私はこのようなエラーに遭遇したことがあります.
    Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
    

    原因はspringです.datasource.url構成のデータベースが間違っています.自分で作成したデータベース名に変更します.あるいはデータベースが存在しない場合は、手動で作成する必要があります.