はまったヒストリー
だんだん寒くなってきましたねー
最近喉が痛いですよ。
つかれたーつかれたー
1日1プチハックを目指してなんかしよーとか思ってたりするので、どうでもいいことだけど書き残しておく。
今日のはまったHistory
Hibernateで集計
public Boolean checkRegistByIsbn(String isbn) { Session session = getSession(); // 検索条件 Criteria criteria = session.createCriteria(Book.class); criteria.add(Restrictions.eq("isbn", isbn)); // Projections、射影、 Long rowCount = (Long) criteria.setProjection(Projections.rowCount()) .uniqueResult(); if (session != null) { session.close(); } return (rowCount.intValue() != 0); }
なんと、rowCountの結果はHibernateのバージョンによってIntegerだったりLongだったりするらしい。
困ったもんだ。
HQL(Hibernate)でcount(*)の扱い方: ギジュツメモ
http://bellks-tec.cocolog-nifty.com/blog/2007/07/hqlhibernatecou_120a.html
例外処理は後でやろう
jQueryのクロスドメイン通信ではまったんですけどorz
function requestBookInfomation(isbn) { $("#hoge").html("問い合わせ中"); // isbn = "4894712636"; var developerId = "Developer ID取得してくださいな"; var url = "http://api.rakuten.co.jp/rws/3.0/json?operation=BooksBookSearch&version=2011-07-07"; url += "&developerId" + developerId; url += "&isbn=" + isbn; url += "&callBack=?"; $.ajax({ cache: false, type: "GET", url: url, timeout: 7000, // timeout設定しないとerrorに設定した関数をコールできない件 dataType:"json", beforeSend: function() { // alert("通信するよー"); }, complete: function() { // alert("通信おわたー"); }, success: function(data){ if(data.Header.Status === "Success") { // なんか色々やろう $("#title").val(data.Body.BooksBookSearch.Items.Item[0].title); $("#author").val(data.Body.BooksBookSearch.Items.Item[0].author); $("#publisher").val(data.Body.BooksBookSearch.Items.Item[0].publisherName); $("#price").val(data.Body.BooksBookSearch.Items.Item[0].listPrice); $("#saleDate").val(data.Body.BooksBookSearch.Items.Item[0].salesDate); $("#image").val(data.Body.BooksBookSearch.Items.Item[0].largeImageUrl); $("#caption").html(data.Body.BooksBookSearch.Items.Item[0].itemCaption); $("#image").html('<img src="'+ data.Body.BooksBookSearch.Items.Item[0].largeImageUrl + '" />'); } else { $("#hoge").html("ISBNコードを確認してくださいな"); } }, error: function(){ $("#hoge").html("サーバーとかネットワークとか確認してくださいな"); } }); }
あーこれ動くわー(多分)
getJSONがエラー処理できないと知ったときは、あれ、XHR自分で組んだほうがいいんじゃね?とか思いそうになったけどjQuery.ajaxはデキる子だった。
callBack=?を書くのがみそらしい。
うん、仕組みよくわかってない。多分自動JSONP。
仕組み追うべきだと思うけど、うわーうわー
ちょっとこれは謎だ。非常に謎だ。
クロスドメイン通信できねー!前できた気がするけどなぁ…と思い、
とゆーproxy的な事しようかなーと思ったけど、callBack=?を書けばおkらしい。
access-control-allow-origin?いつから有るの?昔から?
未熟過ぎる
未熟すぎるんです、私。
ライブラリに生かされています。
生かされています!
でも生かされててもいい。貴方様のおかげですでいい。
そのかわり、中身を理解したい。中身を理解して使うことが礼儀(そうなの)
分かってあげたい!
…いや、中身理解は嘘。できないorz 外部インターフェースレベルで挙動を理解しよう。
でも自分が好きなモノは中身まで理解したいなー
Linuxのソースコードを読もう、なんてのは辛すぎるんだけど、jUnitのコード読もう、Strutsのコード読もう、Springのコード読もうTomcat、Struts2,Java…ならちょと挑戦したい。したい!DIの実装理解したい…AOPはバイトコード改造?なんだその魔術は…
うん、コードリーディング挑戦しよう、いつか。そう、いつか。
(いちょjQueryの中身も読んでみる価値あるきがするー)
そんなことを思ったり思わなかったりする一日でした。
クロスドメイン通信のセキュリティってどうなっていくんだろうなぁ