Tomohiro のアーカイブ

SQLで任意の行を優先して表示する

2017年2月21日

SQLで、並べ替えを行うとき、ORDER BY句を使うが、特定の文字列を含む行は優先して上に表示したいときはCASE句も組み合わせる。 ``` SELECT * FROM テーブル名 ORDER BY CASE 文字列を含むカラム名 WHEN 'ABC' THEN 1 ELSE 2 END, 日付 DESC" ``` こうすると、ABCという文字列を含む行があったとき、その行を優先して上に表示し、その他の行については日付順で並ぶようにできる。
続きを読む

Ubuntu16.04にAipo8の開発環境を構築その1

2017年2月15日

https://doc.aipo.com/startguide/ の開発環境構築をubuntu16.04でやろうって話。 今回はVMware上にUbuntu16.04をインストールし、そこにインストールを行う。 # JDKのインストール Oracleのサイトhttp://www.oracle.com/technetwork/java/javase/downloads/index.html からlinux用のJDKをダウンロードする。端末を開いてダウンロードしたフォルダに
続きを読む

MySQLがエラーになっているとき(再起動)

2017年2月6日

MySQLの現在の状態はターミナル上で ``` mysql -uroot -p ``` と打つと調べることが出来る。正常に動作しているとWelcome的なメッセージが出るが、今回エラーになってしまい、データベースに接続することができなくなってしまった。そこで一旦MySQLを停止し、再起動を試みる。停止コマンドは ``` brew services stop mysql ``` 開始コマンドは ``` brew services stop mys
続きを読む

全角スペースに気を付けよう・・・・

2017年1月30日

コードを正しく書けているつもりでも、半角スペースと全角スペースの違いで正常な動作をしないことは多々ある。 Javaとかのソースコード内でのミスならコンパイルエラーになるけど、Velocityとかで全角スペースを使っていて気づかないと、コンパイルは正常に通るけど正しく動作しない・・・といったことになる。 Eclipseだと、半角スペースはドット(.)、全角スペースだと小丸(。)で表示されるので確認するようにしたい
続きを読む

CayenneModelerで項目を追加する時の注意

2017年1月23日

http://hacknote.jp/archives/7106/  にも書かれているけど補足。 CayenneModelerで既存のテーブルに新しい項目を追加するとき、テーブルに項目を追加後、既存クラスと同期する機能(左右の矢印のアイコン)を押すことでクラスに項目が追加されるが、この時今ある項目消していいか?みたいなことを聞かれる。これを読まずにOKを押してしまうと生成されたクラスから今まであった項目が一部消えてしまい、ビルド時にエラーになってしまう。これを防ぐために、
続きを読む

socketでうまくリアルタイムに更新されないとき

2017年1月16日

端末やエミュレータ上でsocketを用いた通信を行うとき、設定によってはリアルタイム通信ができず、メッセージを送っても通知が来ないことがある。hostsファイルをいじることにより改善が図れる。windowsでは http://i-think-it.net/windows10-hosts-easy-edit-two-ways/ の方法で書き換えられる。Macの場合、ターミナルで ``` sudo vim /private/etc/hosts ``` と入
続きを読む

子ディレクトリも含めて特定のファイルを見つけて削除する

2016年12月26日

ターミナル操作で、子ディレクトリのファイルも含めてある条件に当てはまるファイルを見つけ出して何かしたいことがある。ここでは拡張子が.jpgのファイルを探し出して削除するのを例として説明する。 まずは親ディレクトリ上でターミナルを開き、以下のコマンドを入力する。 ``` find ./ -name "*.jpg" -print ``` すると、瞬時に子ディレクトリも含めて階層下から拡張子が.jpgのファイルを見つけ出してきて一覧が出力される。表示されたファ
続きを読む

JavaScriptを無効にするとどうなる

2016年12月19日

普段何気なくネットサーフィンしているが、ページのどの部分にどんな技術が使われているか意識することは少ない。そんな技術の一つ、"JavaScript"を無効化してみると発見があるかもしれない。ほとんどのブラウザは設定画面からJavaScriptを無効にすることが出来る。一昔前だとセキュリティの向上策の一つとしてあったが、今だとどうなるのか・・・・試してみた 結論から言うと、まともにページが表示できなくなるサイトがほとんどだった。JavaScriptを無効にするという
続きを読む

GitのCheckoutConflictionエラー

2016年12月13日

ローカルでファイルを変更して、そのファイルをプッシュせずに別のプロジェクトをプルしようとしたら、CheckoutConflictionエラーが出てしまった。ログを取るためにプロパティファイルを一時的に書き換えたりしてそのままにすると、エラーになってしまうため、元に戻すことを忘れないように気をつける必要がありそう。 http://www.kakiro-web.com/memo/eclipse-git-client-2.html マージを行うことでも解消できる。
続きを読む

ステップインとステップオーバー

2016年12月12日

デバッグをするときの2つの進め方、基本的ではあるけどちゃんと理解しておきたい。 **ステップイン** ソースコードを1行単位で実行できる。関数が含まれているとその関数に飛んで引き続き1行ずつ実行される **ステップオーバー** ソースコードを1行単位で実行するのは同じだが、関数があるとその関数が実行されて次の行へ飛ぶ。 細かくデバッグできるのはステップインだが、ジャンプされるとかえってわかりにくくなることもあるのでステップオーバーも活用できる
続きを読む

Eclipseで目的のファイルを早く見つける

2016年12月6日

Eclipseでたくさんのファイルを擁するプロジェクトから〇〇というファイルを探したいけどどこに保存してあるか分からない・・・ そんな時、普通の検索機能(Control+H)を使っても良いけど大量のファイルがあると非常に検索に時間がかかる。そこでファイル名の検索に特化した検索機能を用いる。インデックスが予め作成されているのでサクサク検索できる。ファイル検索に特化した検索機能は **コマンド+シフト+R** で開ける。ちなみにクラス名も **コマンド+シフト+T**
続きを読む

SQLをお家で学習

2016年12月5日

Javaのプログラムの練習だとメモ帳とJVMがあれば出来るけど、データベースの練習は土台のデータも必要だし家のPCに環境構築するのも敷居が高い作業である。お家で簡単?にSQLの練習ができる2つの方法を発見したので取り上げてみた。 1.Raspberry Piにインストール http://make.bcde.jp/raspberry-pi/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%82%92%E4
続きを読む

SQLとJavaの関係

2016年12月5日

SQLの文をプログラムで書くとき、保守性の観点からJavaのソースコードに直接SQL文を書くことはおすすめしない。 Cayeneeというツールを使うとデーターベースをオブジェクトとして扱うことができる。 http://www.atmarkit.co.jp/fjava/products/cayenne/cayenne_1.html ツールを使うと自動でクラスも作成できるようです。 https://doc.aipo.com/create_app/05.html
続きを読む

SQLのPreparedStatement

2016年11月28日

SQLで、可変な値をSQL文中に使っているとき、パラメータとして文を書き、値を後から代入することにより、スッキリとしたソースコードになり、実行速度も上がる。 ``` SELECT name FROM students WHERE id= ? ``` studentsのデータベースから生徒の名前を取り出したいが、生徒のIDはいろいろ変化する可能性があるとき、可変な値をクエスチョンマーク(?)にしておく。値をセットするときは、Javaプログラム上で、 ```
続きを読む

Date型にnullは入らない

2016年11月21日

データベース上に保存されている日付をDate型として取り出すときに、データベースの日付データが空っぽ(何も記載されていない)ときの反応を決めたいとき、最初は ``` if((データベースの日付をData型に変換した変数) == null) ``` みたいに、空っぽ=nullみたいな認識でコードを書いていたが、ClassCastExceptionでエラーになってしまった。どうやらJava(に限らず他の言語でも)はDate型に何も入っていない(null)というのは
続きを読む

Javaの三種類のデータ構造を使い分ける

2016年11月15日

Javaには三種類のデータ構造があり、目的に応じて使い分けることができる。 1.配列 基本データ型(intとか)、参照型(Stringとか)両方を扱うことができる。 作成時は ```  String[] moji = new String[3]; ``` と書く。作成時に配列の大きさが固定される。 2.リスト 配列と似ているが、参照型のみ格納でき、配列と違って大きさが可変であるという特徴がある。作成時は ``` List name = n
続きを読む

Eclipseのimport自動挿入、削除

2016年11月14日

Javaでプログラムを書いたり消したりしていると、つい確認を忘れがちなimport文。 Eclipseには自動でimport文を挿入してくれたり、削除してくれる機能が搭載されている。 import文を整理したいと思った場合、メニューの ``` ソース→インポートの編成 ``` もしくはショートカットキーで「コマンド+シフト+o」と打つと、要らないimport文を消すことができる。 http://yyama1556.hateblo.jp/entry/2
続きを読む

ターミナルを使いこなす

2016年11月8日

Eclipseで作業をしているとき、ターミナルが使いこなせると複数プロジェクトにまたがる開発でも捗る。 Aipoだと、~/Documents/aipo/GitHub/にプロジェクトがまとめられているので、 ターミナルでこのフォルダを開いてからプロジェクトのフォルダに cdコマンドで移動するとコンパイルがやり易い。 前のフォルダは ``` cd - ``` で戻ることができる。Gitを利用している場合、ブランチの切り替えもターミナル上で行うことができる。
続きを読む

HTMLのタグの閉じ忘れを確かめる

2016年11月7日

長いHTMLコードになったり、いろいろ書き換えたりしていると、タグの閉じ忘れや消し忘れが発生する。 ブラウザ上で表示する分には特に問題ないことも多いが、「綺麗なコード」を目指す上では好ましくない。 目視でチェックするのも良いが、Chromeだと拡張機能を用いて構文をチェックできる。 [HTMLエラーチェッカー](https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8
続きを読む

Aipoのアプリ内の印刷機能

2016年11月1日

Aipoのアプリ内での印刷機能を実装するにあたって、関係するファイルをまとめた。 testアプリの場合 **ajax-test-detail.vm** 詳細画面の表示をレイアウトするファイル。印刷ボタンを実装するときに用いる **ajax-test-detail-print-vm** 印刷ボタンを押した後に表示される画面のレイアウト **TestScreenPrint.java** 印刷画面に遷移する際に鍵となるクラス。ここが正しく記述されて
続きを読む