データストア query.addFilterは非推奨 【google app engine for java】

クエリを用いて条件検索する方法

 

// インポート文

import com.google.appengine.api.datastore.DatastoreService;
import com.google.appengine.api.datastore.PreparedQuery;
import com.google.appengine.api.datastore.Query;
import com.google.appengine.api.datastore.Query.FilterOperator;

 

private static DatastoreService datastoreService = DatastoreServiceFactory
.getDatastoreService();

 

Query query = new Query("テーブル名");

query.setFilter(FilterOperator.EQUAL.of("検索するカラム名","検索したい文字列"));

PreparedQuery pQuery = datastoreService.prepare(query);

for(Entity entity: pQuery.asIterable()){
    xx = entity.getProperty("取得したいカラム名").toString();

}

 

・実行SQL

SELECT 取得したいカラム名 FROM テーブル名 WHERE 検索するカラム名 = "検索したい文字列";

 

WEBアプリ DB移行の際に発生した問題 (CHAR編)

「事象」

DB2:後方トリム(半角スペースを除去)して検索処理を行う。
oracle後方トリムせず厳密に、検索処理を行う。

 

「例」CHAR(5)

【カラム】XX
【 値 】abc__

DB2の場合
selest * from テーブル名 where = "abc";
⇒ヒットする。
selest * from テーブル名 where = "abc__";
⇒ヒットする。

oracleの場合
selest * from テーブル名 where = "abc";
⇒ヒットしない。
selest * from テーブル名 where = "abc__";
⇒ヒットする。

※ "_"は半角スペース


「環境情報、DB情報」

・java7

 ・DriverManager.getConnection

・jdk1.7

・tomcat7

struts

 ・ibatisなし

・ojdbc14

・oracle11g

 

Oracle SQL Developerで検索したら後方トリムして検索してくれるのに、

AP経由だと取得できないのはなぜだろう。

ojdbcのバージョンがいけないのか? ibatis使ったら上手くいった。なぞ。

【Excel】 読み取れない内容が含まれています。このブックの内容を回復しますか?

▼こんなエラーが出て、図形がすべて消えたときの復旧方法▼

 

"読み取れない内容が含まれています。このブックの内容を回復しますか?ブックの発行元が信頼できる場合は[はい]をクリックして下さい。"

f:id:hatehate_masaki:20160406224427j:plain

f:id:hatehate_masaki:20160406224433j:plain

 

OpenOfficeで開く(インストール済みであること)

②xlsx形式で別名保存

③別名保存したファイルをエクセルで開く

 

図形の位置がずれていたり、文字フォントが変わってしまっていますが

復旧できました!

 

【Excel】 やらかしました。。[作業グループ編]

今日、仕事でやらかしました。

あるシートを修正していたのですが、右隣シートの同じセルも勝手に修正されているではありませんか。元の内容が上書きされているではありませんか。

(※ctr押しながらシートの複数選択など決してしていません。)

しかも ctr + s でこまめに保存しているから戻れもしない。

 

このミスの原因は、[ shift + ctr + PgDn ]のショートカットキーと判明。

入力したセルは、飛び飛びで登場箇所が不規則でしたので[ shift + ctr + ↓ ]で確認していってました。

その際に誤って[ shift + ctr + PgDn ]を押し、”作業グループ”を発動させてしまったのでしょう。

いやはや恐ろしい。

f:id:hatehate_masaki:20160321004229p:plain

 

【Excel】 シートがバラバラ! そんなときは

マクロです。

目次シートのシート名一覧の順番に並べかえ。

f:id:hatehate_masaki:20160229225050j:plain

Sub sort()

Dim sortedSheetName As String
Dim temp As String
Dim Range As String

' 1. 目次のシート順をセル(B2:B6)から取得
For i = 0 To 4

'2. 文字列sortedSheetNameに格納
Range = "B" & (i + 2)
temp = Sheets("目次").Range(Range).Value
If (i < 4) Then
temp = temp + ","
End If

sortedSheetName = sortedSheetName + temp
Next

' 3. 文字列:sortedSheetNameから配列:sheetNameに変換
Dim sheetName As Variant
sheetName = Split(sortedSheetName, ",")

' 4. 0から4以下の間でループ
For i = 0 To UBound(sheetName) - LBound(sheetName)

' 5. 取得したシートをコピーして、最後のシートの後ろに追加
Worksheets(sheetName(i)).Copy After:=Worksheets(Worksheets.Count)

' 6. 配列:sheetNameのi番目のシートを削除する(コピーしておいているので大丈夫)
Application.DisplayAlerts = False
Worksheets(sheetName(i)).Delete
Application.DisplayAlerts = True

' 7. 新しく追加したシートのシート名を変更
Worksheets(Worksheets.Count).Name = sheetName(i)
Next

End Sub

 

※取り急ぎ書いたメモ程度。後日、時間があるときにきれいにします。

オーバーライド

わかりやすい説明があったのでメモ。

 

・オーバーライド

メソッド引数リストがまったく同じであること、

戻り値は同じかもしくはその戻り値の型がサブクラスであればオーバーライドとみなされる。また、アクセス修飾子は、スーパークラスと同じものか、それよりも公開範囲が広いものを使用しなくてはならない。」

 

参考:オラクル認定資格書 Java プログラマ Silver SE 7

議事録のコツ(仮)自分用 - 追記

前回の続きです。

 

前回作成した議事録の赤入れがありました。

全体の流れは掴めていたとのことで

指摘事項としては、"スケジュール感"を意識して書くこと。

とあった。

議事録を作成しながら自身で気がついていた点であった。

あとは、すっぽかしてしまっていた内容が二つ。。

言われたら思い出す。

 

そんなこんなの反省を生かしつつ、

今日は初日よりかは上手く書けたでしょう。(主観)

 

会議参加の二日目にして、進行をやってみないかとのこと! 驚

。。。

 

続く