20190318のMySQLに関する記事は8件です。

検索したデータの形成 SQL

 データの結合

  • CONCAT関数
ターミナル
SELECT CONCATfamily_name,first_name FROM users;
#こうするとfamily_nameとfirst_nameが結合する。
#このようにいくつかのデータを用いて1つのデータを作りたいときにCONCAT関数を使う。
#ただ検索結果のカラム名はSQL文そのままとなっているので少し見にくくなる。

 検索結果のカラム名の変更

  • AS句

SELECT句でデータを取得するとき、AS句を併用するとそのカラムに別名をつけられる。

ターミナル
SELECT CONCAT(family_name,first_name) AS "氏名" FROM users;
#こうすることでfamily_nameとfirst_nameが連結し、連結したカラム名が"氏名"になる。
#またAS句は省略することができる。

SELECT CONCAT(family_name,first_name) "氏名" FROM users;
#AS句を省略した記述。

 重複する行の除外

  • DISTINCTキーワード
ターミナル
SELECT DISTINCT カラム名; #重複していれば一つしか表示しない。

 レコードのグループ化

  • GROUP BY句 指定したカラムが同じ値を持つデータを一つのグループとしてまとめることができる。
ターミナル
GROUP BY カラム名;
#実行するとDISTINCTと同じような結果が返ってくるが、表示されていないだけで内部ではグループ化されたデータが存在する。

 レコードの数を数える

  • COUNT関数

COUNT関数はグループ化されたデータに対して使用することができる集計関数の一つ。
グループ化されたデータに使用できる集計関数は他に、AVG(平均を求める),MAX(最大値を求める),MIN(最小値を求める)がある。
COUNT関数はカラムを指定して使用することで、そのカラムの値がNULLでないデータの行数を取得することができる。
GROUP BY句を併用している場合は、各グループがレコードを何個持っているかというデータを取得することができる。

ターミナル
SELECT COUNT(カラム名); #グループ化されているカラムを記述する。

SELECT COUNT(*); #ワイルドカードも使用できる。

テーブルの結合

  • JOIN

JOINを使用すると、指定したそれぞれのテーブルのカラムの値が一致するデータを結合することができる。
JOINはFROM句の後に記述し、結合の対象となるテーブルを指定する。

ターミナル
FROM テーブル名1 JOIN テーブル名2 ON テーブル名1.カラム名1 = テーブル名2カラム名2;

#例えば
FROM shifts JOIN users ON shifts.user_id = users.id

#ONの後が冗長になるのでシンプルに書くなら
FROM shifts s JOIN users u ON s.user_id = u.id
#shiftsをs、usersをuと別名をつける。
#別名をつけることができるAS句は省略することができる。

例文
(わかりやすく短文で区切ります)

ターミナル
SELECT
    CONCAT(family_name, first_name) "名前", #shiftsテーブルのfamily_nameと、first_nameを結合させ、名前という別名をつけ、表示させる。
    COUNT(*) "コマ数" #グループ化したデータの行数を表示する。(この場合user_idがグループ化されているので同じuser_idが何行あるのかが表示される。)ワイルドカード(*)を使用することでNULLであるレコードも含めて表示する。
FROM shifts s #shiftsテーブルから検索する。(shiftsテーブルにsという別名をつける。)
JOIN users u ON s.user_id = u.id #JOINで連結させたいusersテーブルを選択、ONで一致するカラムを選択し、連結させる。(usersテーブルにもuという別名をつけ、ONで別名を使用しカラム同士を連結させる。)
WHERE date = "2015-07-01" #dateカラムが2015-07-01のものを検索している。
GROUP BY user_id; #複数あるuser_idがグループ化される。

検索した結果からさらに検索

  • サブクエリ

例えば

ターミナル
SELECT DISTINCT user_id FROM shifts WHERE date = "2015-07-01";

のような検索結果があったとする。
まず上記のコードの説明。
FROM shiftsでshiftsテーブルを検索対象とし、WHEREでshiftsテーブルのdateカラムが2015-07-01のものを探し、SELECT DISTINCT user_idで重複しているuser_idを一つだけ表示させている。
つまり、dateカラムが2015-07-01に当てはまるuser_idを表示する。
この検索結果を踏まえて逆に2015-07-01に当てはまらないuser_idを調べたい。

その時の検索の仕方がこうだ。

ターミナル
SELECT * #カラムを全て取得
FROM users #usersテーブルの検索
WHERE id NOT IN ( #NOT IN()を使用し、()内の検索結果に当てはまらないレコードを取得する
  SELECT DISTINCT user_id
  FROM shifts
  WHERE date = "2015-07-01"
);

こうすることで()内に記述された検索結果に含まれないusersテーブルのレコードを取得できる。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Djangoをtutorialの流れを書いてみた。~ing

現在の環境

  • python 3.7
  • Django 2.1.7
  • mysql

基本setting

  1. $django-admin startproject shop
    • project start!
    • shop = project name
  2. shop/setting.py からのsetting
    • LANGUAGE_CODE = 'ja-jp'
    • TIME_ZONE = 'Asia/Tokyo'
  3. $python manage.py startapp board
    • app start!
    • board = app name
  4. shop/setting.py へapp登録
    • INSTALLED_APPS = [
      'board', <-作ったapp name ......
      ]
  5. shop/setting.py
    • DATEBASEのsetting
DATABASES = {
    'default': {
        'ENGINE': 'mysql.connector.django',
        'NAME': '',       #DB Schema name
        'USER': '',       #DB user
        'PASSWORD': '',   #DB password
        'HOST': 'localhost',
        'PORT': '3306',
    }
}
  1. $python manage.py createsuperuser

    • admin siteで使うid/password を設定
    • Passwordが易しすぎるのはNG!
  2. $python manage.py runserver

    • server testing

掲示板 (Model 作業)

  1. shop/urls.py でappのviewsとの繋ぎ
from shop import views
urlpatterns = [
url('admin/', admin.site.urls),
url('', views.index, name='index'),
]
  • / url(初期画面)で接続したときにshopのviewsに書いているindex methodを呼ぶ
  1. board/views.py
from django.http import HttpResponse
# Create your views here.

def index(request):
   return HttpResponse('Welcome to my shop!')
  • viewsにindex methodを追加
  • HttpResponse moduleをimport

Model - Template - Views

  • Model : board/models.py
    • POST classを作ってformの項目setting
from django.db import models
from django.utils import timezone

class Post(models.Model):
    author = models.CharField(max_length=20)
    email = models.CharField(max_length=50)
    title = models.CharField(max_length=50)
    text = models.TextField()
    published_date = models.DataTimeField(
            default = timezone.now)

    def publish(self):
        self.published_date = timezone.now()
        self.save()

    def __str__(self):
        return self.title
  1. $python manage.py makemigrations board

    • DBへ反映できるようにmigration fileを用意
  2. $python manage.py migrate board

    • DBにtableが作られて内容がsaveされるようにする
  3. adminからboardを管理できるように登録

    • board/admin.py
from django.contrib import admin
from .models import Post

admin.site.register(Post)

App内 Urls ----- Views 作業

  1. board/urls.py 作成
    • /board/ に掲示板を表示するためのURLをsetting
from django.urls import path
from . import views

urlpatterns = [
    path('', views.post_list, name = 'post_list'),
]
  1. board/views.py 作成
    • 先のpost_listの定義をsetting
def post_list(request):
    return render(request, 'board/post_list.html', {})
  1. template 作業
    • board/template/board forlder作成(boardはApp name)
    • board/template/board/post_list.html (作成するhtml)
<html>
  <p>Hi there!</p>
  <p>Here is post_list page</p>
</html>
  1. $python manage.py runserver でcheck!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

joinがなんもわからんくなってしまった

table

image.png

image.png

join

image.png

image.png
image.pngimage.png

image.png

取り出す

image.png

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【MySQL】MySQL入門

はじめに

環境構築はこちら
「とりあえず動作確認して学びたい!」そんな方向けのページです
データサイエンティスト育成プログラムにおいてIT講師を務めました
大文字でも小文字でも影響はない
が,SQLではなんか大文字の風潮があるので大文字で記述することにします

初級編

MySQL呼び出し

(ルートなのでユーザ,パスワードなし)

$ mysql -u root

データベース参照

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

データベース作成

データベース名「chintai」を作成

mysql> CREATE DATABASE chintai;

データベースが作られたか確認します.できてますね

+--------------------+
| Database           |
+--------------------+
| chintai            |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

データベース選択

mysql> USE chintai;

テーブル作成

データベース「chintai」に「suumo」というテーブルを作成します.

mysql> CREATE TABLE chintai. suumo(id INT(20) NOT NULL PRIMARY KEY AUTO_INCREMENT , name VARCHAR(100) , price INT(20) , toilet VARCHAR(100) , station VARCHAR(100) , type VARCHAR(100));
id name price toilet station type
説明 ID(重複なし) 物件名 家賃 トイレ・バス別(separated)か 最寄駅 木造・鉄筋コンクリ
INT VARCHAR INT VARCHAR VARCHAR VARCHAR

NOT NULL PRIMARY KEY AUTO_INCREMENTをつけると,指定しなくても自動でID(INT型)が付与されます.
・カラム「ID」なしに中身を追加することはできない訳です.
・顧客のデータ管理などにおいて,異なるお客様のIDが同じIDにタグ付いたら大変なことになっちゃいますよね笑
・今はまだカラム(の名前と型)を宣言しただけで,このテーブルの中身は空っぽです.

データベースに存在するテーブル一覧を参照

mysql> show tables;
+-------------------+
| Tables_in_chintai |
+-------------------+
| suumo             |
+-------------------+

chintaiというデータベースの中にsuumoというテーブルが存在していることになります

テーブルの中身の追加

作ったカラムに対応したValue(中身)を追加します

mysql> INSERT INTO suumo VALUES (1,'宇都宮タワマン',75000,'S','宇都宮','RC');

または

mysql> INSERT INTO suumo (id, name, price, toilet, station, type) VALUES (1,'宇都宮タワマン', 75000,'S','宇都宮','RC');

テーブルの中身参照

SELECT * FROM suumo;
+----+-----------------------+-------+--------+-----------+------+
| id | name                  | price | toilet | station   | type |
+----+-----------------------+-------+--------+-----------+------+
|  1 |    宇都宮タワマン        | 75000 |  S     |  宇都宮    | RC   |
+----+-----------------------+-------+--------+-----------+------+

・S: Separated(トイレ・バス別)
・NS: Not Separated(トイレ・バス一緒)
・RC: Reinforced Concrete(鉄筋コンクリ)
・W: Wood(木造)

てなかんじで自分なりのsuumo作ってみた
sql1.png

テーブルの削除

DROP TABLE suumo;

データベースの削除

DROP DATABASE chintai;

中級編

・具体例の方がわかりやすいと思うので初級編で作ったsuumo使ってやります
suumo
sql1.png

idprice(家賃)のカラムのみ表示したい

mysql> SELECT id, price FROM suumo;

sql2.png

price(家賃)の安い順に表示したい

mysql> SELECT * FROM suumo ORDER BY price;

実際のSUUMOとかでも「家賃の安い順」みたいなボタン押しますよね!
あんなかんじです
sql3.png

今後も追加予定(2019/03)

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【MySQL】MySQLに関するメモ

はじめに

環境構築はこちら
データサイエンティスト育成プログラムにおいてIT講師を務めました
大文字でも小文字でも影響はない
が,SQLではなんか大文字の風潮があるので大文字で記述することにします

初級編

MySQL呼び出し

(ルートなのでユーザ,パスワードなし)

$ mysql -u root

データベース参照

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

データベース作成

データベース名「chintai」を作成

mysql> CREATE DATABASE chintai;

データベースが作られたか確認します.できてますね

+--------------------+
| Database           |
+--------------------+
| chintai            |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

データベース選択

mysql> USE chintai;

テーブル作成

データベース「chintai」に「suumo」というテーブルを作成します.

mysql> CREATE TABLE chintai. suumo(id INT(20) NOT NULL PRIMARY KEY AUTO_INCREMENT , name VARCHAR(100) , price INT(20) , toilet VARCHAR(100) , station VARCHAR(100) , type VARCHAR(100));
id name price toilet station type
説明 ID(重複なし) 物件名 家賃 トイレ・バス別(separated)か 最寄駅 木造・鉄筋コンクリ
INT VARCHAR INT VARCHAR VARCHAR VARCHAR

NOT NULL PRIMARY KEY AUTO_INCREMENTをつけると,指定しなくても自動でID(INT型)が付与されます.
・カラム「ID」なしに中身を追加することはできない訳です.
・顧客のデータ管理などにおいて,異なるお客様のIDが同じIDにタグ付いたら大変なことになっちゃいますよね笑
・今はまだカラム(の名前と型)を宣言しただけで,このテーブルの中身は空っぽです.

データベースに存在するテーブル一覧を参照

mysql> show tables;
+-------------------+
| Tables_in_chintai |
+-------------------+
| suumo             |
+-------------------+

chintaiというデータベースの中にsuumoというテーブルが存在していることになります

テーブルの中身の追加

作ったカラムに対応したValue(中身)を追加します

mysql> INSERT INTO suumo VALUES (1,'宇都宮タワマン',75000,'S','宇都宮','RC');

または

mysql> INSERT INTO suumo (id, name, price, toilet, station, type) VALUES (1,'宇都宮タワマン', 75000,'S','宇都宮','RC');

テーブルの中身参照

SELECT * FROM suumo;
+----+-----------------------+-------+--------+-----------+------+
| id | name                  | price | toilet | station   | type |
+----+-----------------------+-------+--------+-----------+------+
|  1 |    宇都宮タワマン        | 75000 |  S     |  宇都宮    | RC   |
+----+-----------------------+-------+--------+-----------+------+

・S: Separated(トイレ・バス別)
・NS: Not Separated(トイレ・バス一緒)
・RC: Reinforced Concrete(鉄筋コンクリ)
・W: Wood(木造)

てなかんじで自分なりのsuumo作ってみた
sql1.png

テーブルの削除

DROP TABLE suumo;

データベースの削除

DROP DATABASE chintai;

中級編

・具体例の方がわかりやすいと思うので初級編で作ったsuumo使ってやります
suumo
sql1.png

idprice(家賃)のカラムのみ表示したい

mysql> SELECT id, price FROM suumo;

sql2.png

price(家賃)の安い順に表示したい

mysql> SELECT * FROM suumo ORDER BY price;

実際のSUUMOとかでも「家賃の安い順」みたいなボタン押しますよね!
あんなかんじです
sql3.png

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【初心者向け入門】PHPからMySQLを利用する

1. はじめに

PHPからMySQLへ接続し,ブラウザ上にデータベースの内容を表示する.
例として,商品表を扱う.

前提条件

  • MAMPが起動済み(PHPとMySQLの利用が可能である)
  • データベースtestが作成済み
  • テーブルshouhinが作成済み
  • サーバはlocalhostとする
  • MySQLのユーザ名とパスワードはともにrootとする(mampのMySQLにおけるデフォルトのもの)

PHPでのエラーチェック

PHPでエラーが発生した際にブラウザ画面に表示する関数を記載しておく.
ただし,表示されないエラーもあるため注意すること.

<?php
    ini_set('display_errors',1);
?>

参考

2. 内容

2.1. データ

テーブル shouhin には以下のデータが登録されている.
numと列hinmeiはTEXT型,列kakakuはINTEGER型である.

num hinmei kakaku
010 pc 80000
011 display 35000
020 printer 25000
025 keyboard 1000
030 mouse 3000

2.2. ソースコード

2.2.1. 先頭1行目のデータを表示

showtable.php
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="utf-8">
    <title>商品表</title>
    <style></style>
</head>
<body>
    <?php
        //MySQLのデータベースサーバへ接続(サーバ名,接続ユーザ名,パスワード,データベース名 の順に指定)
        $link=mysqli_connect("localhost","root","root","test");

        //SQL文を指定
        $query="SELECT * FROM shouhin";

        //PHPからSQL文を実行(接続名 $link に対して $query のSQL文を実行)
        //結果は$resultに格納される
        $result=mysqli_query($link,$query);

        //$result から1行取り出して,1項目ごとに配列 $row (フィールド名をキーとした連想配列)に格納
        $row=mysqli_fetch_assoc($result);

        //$row 配列の中身を表示
        echo "番号:".$row['num']."<br>";
        echo "品名:".$row['hinmei']."<br>";
        echo "価格:".$row['kakaku']."<br>";
    ?>
</body>
</html>

2.2.2. 全データを表示

showtable.php
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="utf-8">
    <title>商品表</title>
    <style>
            table,th,td {
                border-collapse:collapse;
                border:1px solid black;
                line-height:1.5;
            }
        </style>
</head>
<body>
    <h1>商品表</h1>
    <?php
        $link=mysqli_connect("localhost","root","root","test");
        $query="SELECT * FROM shouhin";
        $result=mysqli_query($link,$query);

        echo "<table>";
        echo "<tr bgcolor=#87cefa>
                  <th>番号</th>
                  <th>品名</th>
                  <th>価格</th>
              </tr>";
        while($row=mysqli_fetch_assoc($result)){
            echo "<tr>
                      <td>{$row['num']}</td>
                      <td>{$row['hinmei']}</td>
                      <td>{$row['kakaku']}</td>
                  </tr>";
        }
        echo "</table>";
    ?>
</body>
</html>

※関数はmysql_・・・ではなくmysqli_・・・であることに注意
※本来はtry-catch文で例外(MySQLへ正常に接続できなかった場合)を考慮するが,分かりやすくするためにあえて例外を考慮しない
※区別しやすくするためにあえて字下げしている.タグごとにecho文で分けても良い.

全てを1つのecho文にまとめた例と分けた時の例を下に示す.どちらも同じ意味を持つ.

<?php
    echo "<div><p>あいうえお</p></div>";
?>
<?php
    echo "<div>";
    echo "<p>";
    echo "あいうえお";
    echo "</p>";
    echo "</div>";
?>

3. おわりに

さらに,

  • データ登録画面
  • データ削除画面
  • データ更新(編集)画面
  • hinmeikakakuの絞り込み検索機能(表示画面に追加)

などがあると便利ですね.気が向いたら記事を作成します.
プログラムは既に作成してあるんですけどね・・・.

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

PHPからMySQLを利用する

1. はじめに

PHPからMySQLへ接続し,ブラウザ上にデータベースの内容を表示する.
例として,商品表を扱う.

前提条件

  • MAMPが起動済み(PHPとMySQLの利用が可能である)
  • データベースtestが作成済み
  • テーブルshouhinが作成済み
  • サーバはlocalhostとする
  • MySQLのユーザ名とパスワードはともにrootとする(mampのMySQLにおけるデフォルトのもの)

PHPでのエラーチェック

PHPでエラーが発生した際にブラウザ画面に表示する関数を記載しておく.
ただし,表示されないエラーもあるため注意すること.

<?php
    ini_set('display_errors',1);
?>

参考

2. 内容

2.1. データ

テーブル shouhin には以下のデータが登録されている.
numと列hinmeiはTEXT型,列kakakuはINTEGER型である.

num hinmei kakaku
010 pc 80000
011 display 35000
020 printer 25000
025 keyboard 1000
030 mouse 3000

2.2. ソースコード

2.2.1. 先頭1行目のデータを表示

showtable.php
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="utf-8">
    <title>商品表</title>
    <style></style>
</head>
<body>
    <?php
        //MySQLのデータベースサーバへ接続(サーバ名,接続ユーザ名,パスワード,データベース名 の順に指定)
        $link=mysqli_connect("localhost","root","root","test");

        //SQL文を指定
        $query="SELECT * FROM shouhin";

        //PHPからSQL文を実行(接続名 $link に対して $query のSQL文を実行)
        //結果は$resultに格納される
        $result=mysqli_query($link,$query);

        //$result から1行取り出して,1項目ごとに配列 $row (フィールド名をキーとした連想配列)に格納
        $row=mysqli_fetch_assoc($result);

        //$row 配列の中身を表示
        echo "番号:".$row['num']."<br>";
        echo "品名:".$row['hinmei']."<br>";
        echo "価格:".$row['kakaku']."<br>";
    ?>
</body>
</html>

2.2.2. 全データを表示

showtable.php
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="utf-8">
    <title>商品表</title>
    <style>
            table,th,td {
                border-collapse:collapse;
                border:1px solid black;
                line-height:1.5;
            }
        </style>
</head>
<body>
    <h1>商品表</h1>
    <?php
        $link=mysqli_connect("localhost","root","root","test");
        $query="SELECT * FROM shouhin";
        $result=mysqli_query($link,$query);

        echo "<table>";
        echo "<tr bgcolor=#87cefa>
                  <th>番号</th>
                  <th>品名</th>
                  <th>価格</th>
              </tr>";
        while($row=mysqli_fetch_assoc($result)){
            echo "<tr>
                      <td>{$row['num']}</td>
                      <td>{$row['hinmei']}</td>
                      <td>{$row['kakaku']}</td>
                  </tr>";
        }
        echo "</table>";
    ?>
</body>
</html>

※関数はmysql_・・・ではなくmysqli_・・・であることに注意
※本来はtry-catch文で例外(MySQLへ正常に接続できなかった場合)を考慮するが,分かりやすくするためにあえて例外を考慮しない
※区別しやすくするためにあえて字下げしている.タグごとにecho文で分けても良い.

全てを1つのecho文にまとめた例と分けた時の例を下に示す.どちらも同じ意味を持つ.

<?php
    echo "<div><p>あいうえお</p></div>";
?>
<?php
    echo "<div>";
    echo "<p>";
    echo "あいうえお";
    echo "</p>";
    echo "</div>";
?>

3. おわりに

さらに,

  • データ登録画面
  • データ削除画面
  • データ更新(編集)画面
  • hinmeikakakuの絞り込み検索機能(表示画面に追加)

などがあると便利ですね.気が向いたら記事を作成します.
プログラムは既に作成してあるんですけどね・・・.

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

VaporとMySQLの接続時に出たエラーの解消法

1. はじめに

VaporとMySQLの接続方法については以下の記事、サイトを参照しました。
Tutorial: How to use MySQL
VaporとMySQLを接続する。その1
VaporとMySQLを接続する。その2
Vapor公式ドキュメント

環境は以下の通り
MySQL: 8.0.15
Swift: 4.2.1
Xcode: 10.1
Vapor Toolbox: 3.1.10
Vapor Framework: 3.2.2

2. エラー

エラーメッセージ

stackoverflowの投稿を参照。

引用
From MySQL 8 if you want to use it on localhost (unsecured connection) then you need to disable the MySQL transport layer security. Use unverifiedTLS for transport in MySQLDatabaseConfig initializer.


MySQL8からlocalhost(安全ではない接続)でそれを使う場合、TLS(Transport Layer Security)を無効化する必要がある。MySQLDatabaseConfigを初期化しトランスポートにunverifiedTLSを使用する。

TLS:暗号鍵を使いデータを暗号化し、メッセージ認証コードを使用し改ざんを検出し、デジタル署名で正当な相手との通信をする
unverifiedTLS:TLS(Ver1.1)のミニマムバージョンを必要とするTLSを有効にするが、証明書検証を無効にする。

日本語訳が若干怪しいですが、まとめるとMySQLの直近Verでlocalhostを利用する場合、セキュリティの設定を変更する必要があるみたいです。
セキュリティが脆弱化すると思われますがローカル環境でやる分には大丈夫でしょう。
解決方法は以下の通り。

configure.swiftにtransport: MySQLTransportConfig.unverifiedTLS を追加

   <configure.swift>

    let mysql = MySQLDatabase(config: MySQLDatabaseConfig(
        hostname: "localhost",
        port: 3306,
        username: "root",
        password: "******",
        database: "database",
        transport:  MySQLTransportConfig.unverifiedTLS
    ))
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む