泣き虫プログラマーのメモ書き

文系出身SEが、めそめそしながら綴るメモ。

はまった:外部プロジェクトの.jarと作成中のプロジェクトが指すSqlSessionが異なるとき

内容

batchのプロジェクトを実行したら、トランザクションエラーになった。

sorekara doshitano...
どちらかを親として、bean idが違えど、実態は同じsqlSessionにする。

■launch-context.xml

<!-- 実行するプロジェクトのsqlSession -->
<bean id="sqlSessionBatch" class="org.mybatis.spring.SqlSessionTemplate">
  <constructor-arg index="0" ref="sqlSessionFactory" />
  <constructor-arg index="1" value="BATCH" />
</bean>

<!-- 外部参照jarファイルのsqlSession -->
<bean id="sqlSession" parent="sqlSessionBatch" />

要因

launch-context.xmlに、参照する外部プロジェクト(api用)の.jarファイルで使われているsqlSessionと、実行するプロジェクトが指すsqlSessionが異なっていた。
そのことにより、jarの中で参照するDaoがトランザクションエラーになり、DBの値を取りに行くことができなかった。

異なるsqlSessionが一緒に動いてしまうから、
トランザクションエラーになるみたい。

はじめて:HULFTについて

内容

もらった大事なファイル(tsvやcsv)を相手に送りたいとき。

必要なモノ

おくるがわ:集信定義、配信定義
もらうがわ:集信定義

必要な作業
  • HULFTIDを定義するテキストファイルを作成
  • HULFTコマンドで登録

HULFTには、CUI版があるんだね。

要因

少々前に教えてもらったけど、それっきり触ることがなく
忘れてしまっていた。

はじめて:モックってなによ?

内容

モックは、@Mockで済ませるのは楽だけど、
可読性が低くなりやすいと思う。

モッククラスをつくってあげると、
junit書きやすいし、他人から見て、なにを返しているのか
分かりやすいと思いました。(素人目線から。。。)

モッククラスをつくれ、といわれたとき、
なに書きゃいいの??状態で、難しく思っていました。

でも、よくよく参考のモッククラスを読んでみると、
「このモッククラス動いたよ!!」って、ログ吐いてやってる
だけなんですね。
さらには、例外出したいテストデータの値をハードコーディングで
if文で比較してやって、例外に導いてやっているんですね。

意外と簡単だぁ!!って思ったよ!!

ただ、まだワテクシは、
java基礎ちゃんと身に沁みついてないから、
お手本がないと書けないんですね。。。

勉強します。。。

要因

junitでテストコードを書くとき、いままでモックは、
@Mockで済ましてたんだけど、
便利だなーでも、よくわかってないから
ハマりやすかったのです。

やっちまった:UPDの主キー被り

内容

SQLのINSERT文、UPDATE文にて、登録(変更)するカラムの項目に
WHERE句で指定している主キーを書いている。
同じこと書いてもいいが、無駄である。

-- psqlのはなしです
-- NG!!
UPDATE table1 t1
SET colunm1 = t2.colunm1 -- 主キー
   ,colunm2 = t2.colunm2 -- 主キー
   ,colunm3 = t2.colunm3
FROM table2 t2
WHERE t1.colunm1 = t2.colunm1
AND   t1.colunm2    = t2.colunm2; 

-- OK!!
UPDATE table1 t1
SET colunm3 = t2.colunm3
FROM table2 t2
WHERE t1.colunm = t2.colunm1
AND   t1.colunm2 = t2.colunm2; 

要因

SQLの基礎がわかってない。

忘れてた:Eclipseのデバッグ方法

内容

ブレークポイント付けてあげてから
虫のボタンを押す。

デバッグのウィンドウで、
右側の変数や式をいじりながらみると、
エラーの詳細がわかる。

要因

ど忘れ
コンソールには、エラーが吐かれなかったけど、
デバッグでみたら、トランザクションでエラーになってた。
式に気になるところを入れてあげると、分かった。

とりあえず:よく使うEclipseのショートカットキー

内容

  • ctrl + クリック = 宣言や実装に飛べる。
  • shift + ctrl + o = import文入れてくれる。
  • shift + ctrl + c = コメント化
  • ctrl + shift + r = クラスファイル検索

要因

javaに触るのが、半年ぶりで忘れていたEclipseの便利機能。
開発環境整えるのに、大変な思いをする。
お久しぶりね、javaさん。