Introduction
ようこそチューリップ・プログラミングスクールの自習室へ。 ここでは、Android、VBA、Database、ネットワークなどのトピックについての自習教材を利用できます。
- Mount Everest
Java言語
Androidアプリの開発は、JavaまたはKotlinで開発します。このページでは Javaの基本文法 について説明します。
変数
変数は、Javaプログラムの実行中にデータを保存する入れ物です。すべての変数には、保持できる値の型と量を指定するデータ型が割り当てられます。また変数は、データのメモリ位置名でもあります。そして、メモリの場所に与えられる名前です。
Javaには、次のようなさまざまな種類の変数があります。
変数 | 説明 |
---|---|
String | 「こんにちは」などのテキストを保存します。文字列の値は二重引用符で囲まれています |
int | 123や-123などの小数点以下のない整数(整数)を格納します。 |
float | 19.99や-19.99などの小数点を含む浮動小数点番号を格納します |
char | 「a」や「B」などの単一の文字を格納します。文字の値は単一の引用符で囲まれています |
boolean | trueまたはfalseの2つの状態の値を格納します。 |
変数の宣言
変数型 変数名;
int height;
char c;
変数の宣言は次のように記述します。
変数の代入
変数名 = 値;
height = 170;
c = 'a';
変数の代入は次のように記述します。
定数
定数は基本的に、値を変更できない変数です。C/C++では、キーワードconstはこれらの定数変数を宣言するために使用されます。Java では、キーワード final を使用します。ただし、ここで導入されたツールは単なるプリミティブ変数ではなく、実際のオブジェクトインスタンスです。
クラス
public class Main {
int x = 5;
public static void main(String[] args) {
Main myObj = new Main();
System.out.println(myObj.x);
}
}
クラスは、オブジェクトが作成されるユーザー定義の雛形またはプロトタイプです。これは、1つのタイプのすべてのオブジェクトに共通するプロパティまたはメソッドのセットを表します。
- クラスは、共通の特性/動作と共通のプロパティ/属性を共有するオブジェクトのセットです。
- クラスは現実世界の実体ではありません。オブジェクトが作成されるテンプレート、雛形、またはプロトタイプにすぎません。
- クラスはメモリを占有しません。
- クラスは、異なるデータ型とメソッドのグループの変数のグループです。
Javaのクラスには以下を含めることができます。
- データメンバー
- 方法
- コンストラクタ
- ネストされたクラスとインターフェース
オブジェクト
オブジェクトは、オブジェクト指向プログラミングの基本的な単位であり、実際の実体を表しています。典型的なJavaプログラムは、多くのオブジェクトを作成し、ご存知のように、メソッドを呼び出すことによって相互作用します。オブジェクトは以下で構成されています。
- 状態: オブジェクトの属性で表されます。また、オブジェクトの特性も反映しています。
- 動作: オブジェクトのメソッドで表されます。
- アイデンティティ: オブジェクトに一意の名前を与え、1つのオブジェクトが他のオブジェクトと対話できるようにします。
Import文
import package.JavaClass;
import package.*;
importはJavaキーワードです。インポートステートメントの下のコードで使用するJavaクラスを宣言します。Javaクラスが宣言されると、クラスが属するパッケージを指定せずに、クラス名をコードで使用できます。「*」文字を使用して、パッケージに属するすべてのクラスを宣言します。
Package
package com.test.Customer
Javaのパッケージは、クラス、サブパッケージ、およびインターフェイスのグループをカプセル化するメカニズムです。パッケージは例えば次のために使用されます。
- 名前の競合を防ぎます。たとえば、com.test.Customer とcom.test.Customer の2つのパッケージに Customer という名前の2つのクラスがあります。
- クラス、インターフェイス、列挙、注釈の検索/検索と使用を容易にする
- パッケージは、データカプセル化(またはデータ非表示)と見なすことができます
Android Studio
ディレクトリ構造
Androidの1アプリに対し、通常1つのプロジェクトを作成します。 ここではそのプロジェクトのファイルの構成について、どこに何があるのか説明します。
- プロジェクトツールウィンドウ
appフォルダ
アプリに関するソースコードなどすべてのファイルが入っているフォルダです。ソースコードは自分で書くものと、プロジェクトの新規作成時に自動的に生成されるものの二種類があります。
manifestフォルダ
Android Studioで自動生成された、AndroidManifest.xml ファイルが配置されています。このファイルは、アプリに関する重要な情報を Android ビルドツール、Android オペレーティング システム、Google Play に対して説明するものです。 これは、Android OSとアプリケーションの間の仲介者として機能します。
javaフォルダ
Javaフォルダには、他のテストファイルを含め、アプリ開発中に作成したすべてのjavaのソースコード(.java)ファイルが含まれています。
resフォルダ
リソースフォルダは、アプリの画像、XMLレイアウト、UI文字列などのすべての非コードソースが含まれています。
assetsフォルダ
アセットは、テキスト、XML、HTML、フォント、音楽、ビデオなどの任意のファイルをアプリケーションに追加する方法を提供します。 Android Studioで新しいプロジェクトを作成すると、最初はプロジェクト内には assets フォルダがありません。 このフォルダには、静的な画像や動画、DBファイルなどを配置します。 この assets フォルダですが、慣例的に app フォルダの直下に配置することが多いようです。
assetsフォルダを作成するには
- appフォルダで右クリックすると表示されるメニューより、New → Folder → Assets Folder の順に選択する
- 表示されたダイアログで Target Source Set 選びます。開発中は main を選んでください。最後に Finish ボタンを押すとフォルダが作成されます。
Gradle Scripts
Gradleは、ビルド、テスト、デプロイなどを自動化するために使用されるビルドシステム(オープンソース)です。 一連のプログラムを集めたものが、Gradle Scriptsです。
すべてのAndroidプロジェクトには、プロジェクトの.javaファイルと.xmlファイルからapkを生成するためのGradleが必要です。gradleはすべてのソースファイル(javaとXML)を受け取り、適切なツールを適用します。たとえば、Javaファイルをdexファイルに変換し、それらをすべて実際に使用されているapkと呼ばれる単一のファイルに圧縮します。
- apkファイルとは、Androidアプリの実行ファイルです
エミュレータ
AndroidStudioで開発中に、開発したアプリを動作させるには実機の他に次の2つがあります。
- Andorid Studio 上で動作する エミュレータ
- 単体で動作する エミュレータ
実機相当の動作環境をソフトウェアで実現したものをエミュレータと呼びます。 ここでは上記2の単体でも動作する NoxPlayer について、Windowsでの利用を例に説明します。
NoxPlayerとは、AndroidゲームやアプリをWIN・MACで楽しめる無料エミュレーターです。
NoxPlayerのインストール
次のURLにアクセスし、ダウンロードボタンを押し、ダウンロードしてください。 ダウンロードが終わると、「nox_setup_v7.0.3.6_full_intl.exe」のようなファイルができます。exeファイルを起動し、インストールを進めてください。
NoxPlayerの起動
NoxPlayerを起動します。
NoxPlayerを起動するには
- メニューより「Nox」を選択します
- Noxが起動します。
- 起動が完了すると、Androidのデスクトップが表示されます。
Andorid Studio で NoxPlayer をエミュレータにする
AndroidStudio のエミュレータで NoxPlayer を選ぶには、次の手順を実行します。 (NoxPlayer が起動した状態でしたら、一度終了させてください)
NoxPlayer をエミュレータにするには
- AndroidStudio を起動します
- NoxPlayer を起動します
- AndroidStudio でエミュレータを選択します
- AndroidStudio でアプリケーションを起動する
データベース
データベースには色々な種類がありますが、無料で業務用途にも十分耐えうる MySQL についてインストール方法や利用方法を説明します。
MySQLをサービスの提供と利用という切り口で見ると、次の2種類があります。
- サービスを提供する「サーバ」機能
- サービスを利用する「クライアント」機能
機能についてこの2つに大きく分類し、詳細を説明します。
サーバ
MySQLサーバは、データベース接続・データ入出力などのサービスをクライアントに提供します。
MySQLサーバのインストール方法
まずはじめに、MySQLのインストーラを入手するため、次のURLにアクセスします
https://dev.mysql.com/downloads/mysql/OSにWindowsを選び、Go to Download Page ボタンを押します
Downloadボタンを押します
No thanks,,,を選ぶと、msiファイルがダウンロードされます
ダウンロードが終わったら、インストーラーを起動します
画面に従ってインストールを進めます。このような画面が出たら、「はい」を選択してください。
Setup Type を選びます。「Developer Default」を選択してください。
Check Requirements では、Next で次に進みます
確認メッセージが出たら「Yes」を選びます
Executeボタンを押すと、インストールが始まります
サーバのインストールが終わりました。続いて設定へと進みます。Nextボタンを押してください。
上記のインストールに続いて、サーバの設定を進めます。
MySQLサーバの設定方法
開始ページです。Nextボタンを押してください。
サーバのタイプとネットワークについて設定します。Config Typeは「Development Computer」で設定します。
認証方法について選択し、Nextボタンを押します。
このページでサーバにアクセスするユーザについて、アカウントと役割について設定します。
- MySQL Root Password を設定します。(ルートユーザ(root)とは、すべての権限を持つユーザです)
- MySQL Root Password を設定します。(ルートユーザ(root)とは、すべての権限を持つユーザです)
次に、上記画面上の「Add User」ボタンを押して、開発時の接続アカウントやアプリケーションに埋め込むDB接続アカウントを設置します。ここではひとまず開発用の接続アカウントを作成してみましょう。
次の図のように、ルートとユーザアカウントの作成ができたら、Nextボタンを押します。
次に Windows起動時に MySQLサーバがどのような名前で起動するかを設定します。
最後に、上記設定内容の確認ページが表示されます。「Execute」ボタンを押すことで設定を実行します。
設定画完了したら、右下の「Finish」ボタンを押すと画面が閉じます。以上で MySQLnサーバのインストールが完了しました。
クライアント
TablePlusとは?
TablePlustとは、直感的な GUI ツールを備えたDBクライアントです。2022年時点で英語版しかありませんが、シンプルな操作体系でおすすめです。 MySQL、PostgreSQL、SQLite、Microsoft SQL Server、Amazon Redshift、MariaDB、CockroachDB、Vertica、Redis などの複数のリレーショナル データベースを作成、アクセス、クエリ、編集することができます。
ダウンロード
ダウンロードは、TablePlusの公式ページからできます。 次のリンクを開いてください。
ページを開くと次のような画面になります。 Windows版であれば「Download for Windows」を選びます。
ページを開くと次のような画面になります。
Windows版であれば「Windows 64/32 bit」を選ぶと、インストーラー(exeファイル)のダウンロードが始まります。
TablepPlusのインストール
ダウンロードしたインストーラーを起動して、画面に従ってインストールしてください。
DB接続設定
MySQLへのDB接続設定について説明します。
新しい接続の作成は、TablePlus起動後に表示される下図の画面で、「Create a new connection …」を押下します。
リストが表示されるので「MySQL」を選択します。
新しい接続を作成します。設定ができればまず「Test」ボタンを押してみましょう。「connection is ok」と表示されれば接続成功です。「Save」ボタンで接続設定を保存してください。
項目 | 説明 |
---|---|
Name | 接続名(任意) |
Host | DBサーバのIPアドレス |
Port | 3306 |
User | DB接続ユーザー |
Password | DB接続パスワード |
「Save」ボタンで保存すると、起動時の画面に接続アイコンが表示されます。 接続アイコンをクリックしてDBを開いてみましょう。
DBが開きました。接続成功です。
ツールバーの説明
TablePlusの画面上部ツールバーの説明をします。
各部の説明
番号 | 説明 |
---|---|
1 | DB接続先を選択します |
2 | 変更をキャンセルします |
3 | SQLの実行前に実行のプレビューを表示します |
4 | 変更をコミットします |
5 | セーフモードの設定をします |
6 | DBを選択します |
7 | SQLエディタを開きます |
8 | 表示中のワークスペースを更新します |
9 | コマンド入力パレット表示 |
10 | メニューを表示します |
データベースの新規作成
CREATE DATABASE TestDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
初めてデータベースを作成する際には、Create Databaseクエリを発行します。
テーブルの新規作成
CREATE TABLE `test` (
`id` int NOT NULL,
`name` varchar(45) COLLATE utf8mb4_general_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
画面左側にある「Tables」の上で右クリックすると、ショートカットメニューが表示されます。
New > Table の順に項目を選択すると、テーブルの新規作成画面になります。
この画面城の Name で テーブル名を設定します。
このように画面で操作もできますが、Create Tableクエリの実行でテーブルを新規作成することもできます。
テーブルへの列の追加
初めてテーブルを作った時には、画面上にあるように、先頭の列が初期値として追加されていますので、列名などを設定してください。
2列目以降は、画面下部の「+Column」ボタンを押すと、新しい列が追加されますので、同様に列名などを設定してください。
テーブルへの列の変更
既存のテーブルの列名や列の属性を変更したい場合には、画面左側よりテーブル名を選択後、画面下の「Structure」ボタンを選択してください。
テーブルの検索
テーブル内のデータを検索するには、SQLのSelect文を実行します。
全ての列を取得するには
selectの後に * を指定します。
id が 10 のレコードについて 全ての列 を取得
select * from Customer where id = 10;
idが 2以上5以下 のレコードを全列取得
select * from Customer where 2 >= id and id <= 5;
select * from Customer where id between 2 and 5;
一部の列を取得するには
selectの後に 取得したい列名 を指定します。
id が 10 のレコードについて name列 を取得
select `name` from Customer where id = 10;
idが 2以上5以下 であるレコードの name列 のみ取得
select `name` from Customer where 2 >= id and id <= 5;
select `name` from Customer where id between 2 and 5;
画面
操作
番号 | 説明 |
---|---|
1 | 対象テーブルを選択します |
2 | 「Structure」ボタンを押します |
CSVインポート
TablePlusを使って、DBにCSVファイルからテーブルにインポートする手順を説明します。
- TablePlusでDBを開きます。
- 画面左側にある「Tables」で右クリックします。「Import」>「From CSV..」を順に選択します。
- CSVファイルを選択し開きます
- インポートダイアログが表示されるので、「Create new table」を選びます。これを選ぶとインポートと同時にテーブルをファイル名で作成します。チェックをOFFにすると、既存のテーブルにインポートできます。最後に「Import」ボタンを押すと、インポートが始まります。
- インポートが成功すると次のダイアログが表示されます。
CSVエクスポート
TablePlusを使って、DBのテーブルからCSVファイルにエクスポートする手順を説明します。
- TablePlusでDBを開きます。
- 画面左側にある「Tables」で右クリックします。「Export」を選択します。
- ダイアログが表示されるので、内容を確認し「Export..」ボタンを押します。
- CSVファイルの保存先を選択します。
- エクスポートが成功すると次のダイアログが表示されます。
エラー事例集
Can’t connect to MySQL .. と表示される
このような画面が表示されて接続できない場合、接続設定の Host の IPアドレスが間違っている可能性があります。
接続の編集画面で、「Host」の IPアドレス を変えてみましょう。HostのIPアドレスは、DBサーバーをインストールしたコンピュータのIPアドレスです。
TablePlusを起動したら表示される画面で、作成済みの接続を右クリックします。そして「Edit」を選択します。
接続の編集画面が表示されるので、HostのIPを変更します。
変更ができたら、ダイアログ下部の「Test」を押してください。
下図のように「connection is ok」のメッセージが表示されたら、接続成功です。
メッセージダイアログの「OK」ボタンをしてダイアログを閉じます。
最後に上記編集画面にある「Save」で設定を保存し、「Connect」でDBに接続します。
Excel VBA
ExcelVBAについて、MySQLとの接続を中心に説明します。
ExcelとMySQLはどうやって接続されるのか?
ExcelVBAからMySQLのデータベースへ接続するには、ODBCという仕組みを使います。
ODBC ドライバーは、DBMS データベースへの標準的で一様な SQL アクセスをアプリケーション・プログラムに提供します。 ODBC ドライバーによって、アプリケーション・プログラムの設計者とユーザーは、 各種の DBMS システム間での SQL の相違を無視することができます。(参考)
ODBCドライバーは、ExcelVBAとDBの間に立ってデータのやり取りをする存在です。 動作させるためには、次の条件を満たす必要があります。
- Excel が 32bit版であれば、ODBCドライバーも 32bit版にする
- Excel が 64bit版であれば、ODBCドライバーも 64bit版にする
ODBC接続とは
ODBC(Open Database Connectivity)とは、アプリケーションがデータベース管理システム(DBMS)などに接続し、データの取得や書き込み、操作などを行うルールです。このルールはマイクロソフトが定めています。
MySQLに接続するには、MySQL用のODBCドライバーが必要です。DBに接続するアプリケーションは、このODBCという仕組みを利用し、DBにアクセスしデータを入出力します。
この文書では、32bit版のMySQL用ODBCドライバーのインストールについて説明します。
アンインストール
すでに64bit版のODBCがインストールされている場合、アンインストールしてください。
手順:
コントロールパネルを開き「アプリ」を選択します。
「odbc」と入力し検索すると、インストール済みのドライバーが表示されるので、アンインストールしてください。
確認ダイアログで「はい」を選びます。
ODBC接続の準備
MySQLのDBとODBC接続をするため、MySQLのサイトよりODBCドライバーをダウンロード、インストールします。 MySQL用ODBCドライバーは次のページよりダウンロードできます。
- Select Operating System で、「Microsoft Windwos」を選びます
- Select OS Version で、「x86, 32bit」を選びます
- Other Downloads の、「MSI Installer」にある「ダウンロード」ボタンを押します
- ダウンロードページに移動するので(Oracleのアカウントがない場合には)、「No thanks, just start my download.」を選ぶとダウンロードが始まる
ODBCドライバーのインストール
上記ODCBドライバーのダウンロードができたら、次に開発PC(Windows)にインストールしてみましょう。
.msi ファイルを開きます。
セキュリティの警告ダイアログが出た場合、「実行」を選択します。
「this application requires visual studio 2019 x64 redistributable..」のようなメッセージが表示された場合、次のファイルをダウンロードしてください。 C++ 再配布可能パッケージ(32bit版)
参考
ダウンロードすると exe ファイルが出来上がりますので、起動しインストールしてください。
インストールができたら、再度上記手順1から順に進めてください。
次のような画面になります。Nextを押してください。
ライセンスを確認し Nextを押してください。
Setup type で Complete を選び Next 押してください。
インストール内容を確認し Next 押してください。
インストールが終了しました。Finishボタンを押してください。
これで ODBCドライバーがインストールできました。
インストールしたODBCドライバーの確認
インストールしたODBCドライバーが、32bit版か64bit版かを確認してみましょう。
- Windowsのスタートボタンを押して「odbc」と入力してください
- ODBCデータソースの 32bit と 64bit 版が表示されます
- それぞれ起動します
- どちらも 32bit 版になっていれば、32bit版がインストールされています
- どちらも 64bit 版になっていれば、64bit版がインストールされています
DBへのODBC接続の実例
アプリケーションからのODBC接続を使ってMySQLに接続する方法を2つご紹介します。
- DSNを使わない接続
- DSNを使う接続
下記サンプルはIDなど必要な部分を書き換えてエディタでファイルに保存し、アイコンをダブルクリックして実行してみましょう。
あらかじめ testDB が必要です。次の資料よりそれぞれ事前に作成してください。
「testDB」テーブル:
https://tulipsoft.com/reference/docs/sql/createdb/
「test」テーブル:
https://tulipsoft.com/reference/docs/sql/createtable/
DSNを使わない接続
Filename : bydriver.vbs
Option Explicit
Dim oConn, oRs
Dim qry, connectstr
Dim db_name, db_username, db_userpassword
Dim db_server,fieldname,tablename
db_server = "localhost"
db_name = "testdb"
db_username = "usrname"
db_userpassword = "password"
fieldname = "name"
tablename = "test"
connectstr = "Driver={MySQL ODBC 8.0 Unicode Driver};SERVER=" & db_server & ";DATABASE=" & db_name & ";UID=" & db_username & ";PWD=" & db_userpassword
Set oConn = CreateObject("ADODB.Connection")
oConn.Open connectstr
qry = "SELECT * FROM " & tablename
Set oRS = oConn.Execute(qry)
if not oRS.EOF then
while not oRS.EOF
msgbox ucase(fieldname) & ": " & oRs.Fields(fieldname)
oRS.movenext
wend
oRS.close
end if
Set oRs = nothing
Set oConn = nothing
こちらは、IDやパスワードなどDB接続に必要なDB接続文字列について、全てコードに記述し実行する方法です。
下記はサンプルコードです。コードを実行すると、コード内に指定された DriverやServer情報などが接続文字列に追加されます。その後、DBに接続し指定のテーブルよりデータを取得しメッセージボックスで表示します。
15行目で接続文字列を変数にセットし、これをDB接続時に利用しています。
DSNを使う接続
DSNを呼び出す方法とは、あらかじめ保存しておいたDSNをコード実行時に呼び出す方法です。 上記の 接続文字列を全てコードに記述との違いは次の通りです。
項目 | DSNを使わない接続 | DSNを使う接続 |
---|---|---|
DB接続文字列 | 全てコードに書く | DSNに書き呼び出す |
アプリケーション間での共有 | × | ◯ |
DSNを使わない接続は、アプリケーション内にDB接続文字列を全て書いて埋め込んでいるのに対し、DSNを使う方法ではあらかじめアプリケーション外のDSNに保存しておいたものを読み込みます。 DSNを使う接続は、コンピュータ上の複数のアプリケーションで使いまわすことができます。
DSNの保存
DSN(Data Source Name)とは、IDやパスワードなどDB接続に必要なDB接続文字列についてあらかじめ保存しておいたものです。 DSNを使ったDB接続をするために、DSNを保存する方法をご紹介します。
DSNを保存するには、Windowsボタンを押して「odbc」と検索し、表示された「ODBCデータソース(32ビット)」を選択します。
(あらかじめ、上記の ODBCの 接続準備 を実行しておいてください)
「ODBCデータソース(32ビット)」が起動すると、次のような画面になります。
「システムDSN」タブを選び、「追加」ボタンを押してください。
「MySQL ODBC 8.0 Unicode Driver」を選択し、「完了」ボタンを押してください。
接続文字列の新規登録画面が表示されますので、入力し「OK」ボタンを押してください。
- Data Source Name:アプリケーションから呼び出す際にコードに記述するDSNの名前です。分かりやすい名前に自由に付けてください。
- Server:MySQLのサーバが起動しているコンピュータのIPアドレスです。
- User:DB接続時のユーザIDです。DBサーバで設定したもものを記載します。
- Password:DB接続時のパスワードです。DBサーバで設定したもものを記載します。
- Database:接続先のDB名です。DBサーバに作成したものを記載します。
OKボタンを押すと入力した内容が登録されています。この例では保存された DSN は「mysql-dsn」です。この名前でコードより DSN を指定すると保存した内容が接続文字列にセットされます。
🍵以上で、DSNの保存ができました。
DSNを呼び出してODBC接続する
Filename : bydsn.vbs
Option Explicit
dim strConn
strConn = "DSN=mysql-dsn"
dim oConn
Set oConn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
oConn.ConnectionString = strConn
oConn.Open
dim rs
rs.Open "SELECT * from test where id = 2", oConn
MsgBox(rs.Fields("name"))
rs.Close
set rs = Nothing
oConn.Close
set oConn = Nothing
上記で保存したDSNを使ってDB接続をするサンプルコードを示します。
3行目であらかじめ保存しておいた DSN を変数に保存します。
9行目で保存した DSN を接続文字列としセットしています。
DB接続に成功すると、13行目でレコードを取得しています。