タグ

2010年1月25日のブックマーク (6件)

  • 第3回 Java標準のO/Rマッピング機能「Java Persistence API」

    前回はEJB 3.0のインターセプタ機能を使ったセッションBeanとコンテナ管理によるトランザクションについて説明しました。今回はJava EE(Enterprise Edition)やJava SE(Standard Edition)におけるO/Rマッピングの標準になる「Java Persistence API」*1を紹介しましょう。 Java Persistence APIを使うメリットは大きく二つあります。一つ目は,少ないプログラム・コードでデータにアクセスできることです。Java Persistence APIは,Javaオブジェクトをデータベースに格納したり,データベースのデータをJavaオブジェクトへ変換したりする処理を自動化してくれます。したがって,データベース・アクセス用のAPIであるJDBCを直接使ったアプリケーションよりも少ないプログラム・コードでデータベースへのアクセ

    第3回 Java標準のO/Rマッピング機能「Java Persistence API」
  • Java: PreparedStatement で like を扱う時の注意点 - toyfish.blog

    JDBC には PreparedStatement クラスが用意されていて、SQL 文の一部をパラメータ化することができる。 パラメータ部分のエスケープ処理は JDBC ドライバが行ってくれるので、SQL インジェクション対策として最近では必須になりつつあるこのクラス。しかし、like 演算子を使う場合は、ちょっと注意が必要だ。 Lv 1 ネットで検索してみると、失敗例としてひっかかってくるのがこのパターン。 Statement stmt = conn.prepareStatement("select * from items where name like '?%'"); stmt.setString(1, "hatena"); ResultSet rs = stmt.executeQuery();name が "hatena" で始まる行を選択しようとしているわけだけど、これだと例外が

    Java: PreparedStatement で like を扱う時の注意点 - toyfish.blog
    threeMonths
    threeMonths 2010/01/25
    アンスコや%をエスケープするには。
  • StringBuilderの初期化 続き - すぎゃーんメモ

    StringBuilderの初期化 - すぎゃーんメモについて、id:todogzmさんコメントありがとうございました。 AbstractStringクラスというのはググっても見当たらないですが、とにかくchar[]を内部で持っているものだと解釈していいんですかね? 新しいインスタンスを生成することによる速度的なコストと、 上書きされて参照されなくなったオブジェクトがどこでGCに回収されるのか、 というところがまた知りたいところです。。 配列のサイズが増えても減りはしないということが問題になるとすると、 ・大きなサイズの文字列を入れた後に、短い文字列を何度も使いまわすためにずっとインスタンスを保持する という場面では確かにメモリ効率が悪くなりそうですね。 逆に、 ・似たようなサイズの文字列を短期間の間に使いまわす といった用途であればsetLength(0)で問題ない、と考えたのですがいか

    StringBuilderの初期化 続き - すぎゃーんメモ
  • StringBuilderの初期化 - すぎゃーんメモ

    StringBuilderを使いまわすために一度中身を空文字列に変えたい、というとき StringBuilder sb = new StringBuilder(); という毎回新しいインスタンスを作成する方法、 sb.delete(0, sb.length() - 1); という同じインスタンスの中で中身を全削除する方法、 sb.setLength(0); という一番ラクそうな方法、 と3つほど方法を考えてみたけど、上から順にコストがかかるのかな。 一番下ので問題ないのかな。中で何が起こることになるんだろう。 結局重要なのはcapacity()の値か。3番目の方法が一番ラクでスマートっぽいな。 clear()とかいう名前のメソッドがあれば直感的で分かりやすいと思うんだけどなー

    StringBuilderの初期化 - すぎゃーんメモ
  • ハタさんのブログ(復刻版) : JavaScriptプログラマが理解しておくべき8つのこと。の個人的補足

    もう今年はブログを書かないんだろうなーと思っていたけど、ちょっと気になるエントリを見てしまったので、書いておくよ! ref - JavaScriptプログラマが理解しておくべき8つのこと - ++iskwn - キューイチ世代 いくか(8つ?)あるから、それぞれ勝手に全レスするよ! (先に断りを入れておくと、僕は専門家でもなんでもないから、指摘があったら指摘してください) たぶん、僕の書いた記事「javascriptを初めて学ぶ人についてのおさらい。その1」と「javascriptを初めて学ぶ人についてのおさらい。その2」を読めば全部理解するはず!(嘘偽有り) JavaScriptは完全なオブジェクト指向ではない これは書かれていることそのままかな。ただ、「プロトタイプベース」「インスタンスベース」という言葉の指摘をするのであれば「オブジェクト指向プログラミング言語ではない」のが正しい

  • Perlへの懺悔 - aticoにようこそ

    ここ数年Rubyを使っています。 Rubyこそ最高のスクリプト言語だと思っていました。 Rubyの名前の由来もよりよいPerl (pearlは6月の誕生石、ruby は7月の誕生石 ) という意味を意識してのものです。 そのため、Rubyが盛隆になった今、Perlを使っている人は、Rubyに乗り遅れて、Perlの知識にしばられているだけ。そう思っていました。 でも、その思いは間違っていました。 PerlにはPerlのよさがあり、Rubyにけっして劣っていない。と最近そう確信するにいたりました。 そこで懺悔の意味をこめて、Rubyに比べたPerlのよさを述べたいと思います。 1.参照回数によるオブジェクト破棄のため、破棄時が明確である。 perlは対象のオブジェクトのリファレンスがなくなった時に破棄が実行されるのに対し、rubyはGC(ガベージコレクター)による破棄のため、破棄がいつ行われる

    Perlへの懺悔 - aticoにようこそ