タグ

s2jdbcに関するhnakamur3のブックマーク (9)

  • S2JDBCで複数DB接続する - newta(にゅーた)の日記

    SeasarのS2JDBCで複数DB 方法は2つあります。 ・JdbcManagerを2つ用意する方法。 ・SelectableDataSourceProxyを使用する方法。 まず、1つ目のJdbcManagerを2つ用意する方法から jdbc.diconを元にDataSourceを2つ定義します。 H2とOracleの設定です。DBのチョイスは適当。 ここは2つあるだけでいつもと一緒。 jdbc-a.dicon <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN" "http://www.seasar.org/dtd/components24.dtd"> <components namespace="jdbc"> <include pa

    S2JDBCで複数DB接続する - newta(にゅーた)の日記
  • Teeda向けS2JDBC-GenでのDB構成管理 - akiraneko’s blog

    S2JDBC-Genの使い方としては、想定外の使い方をしています。他にも構成管理をする方法はありますので、よく検討してから参照してください。 基概要 Teedaに限ったことではありませんが、S2JDBCを利用していないプロジェクト向けに、無理やりS2JDBC-Genを利用してDB構成管理をしてみる方法について記述しています。 そのため、S2JDBCを開発で利用している場合の想定手順と違う方法や、手法などを利用しています。 ERDツールとの差別化 構成管理だけであれば、ERDツールなりエクセルなりで管理が可能だと思います。ただしS2JDBC-Genではデータの管理も行うことができます。通常開発用の最低限のマスターデータが入ったもの。負荷テスト用に最大限のデータが入ったものなどを準備し、気軽に準備することができます。 もちろん開発用の共有で使えるデータベースを準備して、接続先を切り替えて使う

    Teeda向けS2JDBC-GenでのDB構成管理 - akiraneko’s blog
  • SQLなどのログまわり - taediumの日記

    SQLなどのログをアプリ側で取得したいという話をよく聞くので、必要そうなログは特定のインタフェースを実装したクラスへ全部送るようにしてみました。こんなインタフェースです。 public interface JdbcLogger { void logMethodEntering(String callerClassName, String callerMethodName, Object... parameters); void logMethodExiting(String callerClassName, String callerMethodName, Object result); void logSqlFile(String callerClassName, String callerMethodName, SqlFile sqlFile); void logSql(String

    SQLなどのログまわり - taediumの日記
  • S2JDBC の弱点を補完するS2AbstractService - 出羽ブログ

    このエントリーではSeasar 2.4.26 から 導入された S2AbstractService について書かせて頂きます。S2AbstractService を活用することで、タイプセーフを保ちつつも、データアクセスロジック関連のソースコードを大幅に減らす効果が期待できます。 S2JDBC の弱点 S2JDBCを使えば、お手軽かつパワフルにデータアクセス処理が実現できます。しかし、生のS2JDBCを野放し状態に使った場合、プロジェクトの規模が少し大きくなると、ソースコードの重複を生みやすくなる問題に直面します。具体的に、次の1件分のデータ取得処理ですら、コピー&ペーストされて複数箇所で使用されてしまいます。 Emp emp = jdbcManager.from(Emp.class).id(empId).getSingleResult(); 対処方法は、共通処理を抽出してメソッド化するこ

    S2JDBC の弱点を補完するS2AbstractService - 出羽ブログ
  • 流れるようなインターフェースをViewのように再利用 - ひがやすを技術ブログ

    SELECT文の骨格は同じなんだけど、where句があったりなかったり、Pagingがあったりなかったりするなど、微妙に違うSQL文は良くでてきます。 S2JDBCを使うと、SELECT文の骨格を返すメソッドを用意することで、それをViewのように再利用することができます。例えば、次のような感じ。 protected AutoSelect createView() { return select().leftOuterJoin(dept()) .leftOuterJoin(address()); } public List findAll() { return createView().getResultList(); } public Emp findById(Integer id) { return createView().id(id).getSingleResult(); } pu

    流れるようなインターフェースをViewのように再利用 - ひがやすを技術ブログ
  • Dayanのブログ S2JDBCを使ってみる

    小職は、SE(システムエンジニア)を専門としておりますが、技術的な情報を中心に、それ以外に経済関連の日記、たわいもない日記も載せていきます。よろしくお願いします。 先日、J2EE勉強会に出たときに、ついでにSeasarのことについてもいろいろと聞いてきた。 新しいプロジェクトでは、SAStruts + S2DAOで行こうと思っていたのですが、中村さん(taediumさん)から、関連するエンティティを一緒に持ってこれるS2JDBCの方が生産性が高いと言われ、また自己参照のテーブルも引っ張ってこれると聞いた。 正直、JPA自体あまり好きではなく、流れるインターフェースといっても、何か擬似SQLっぽいコードというのはどうもという印象を持っていた。なので、LINQなんかも懐疑的な目で見ていた。Criteriaというのもいまいち。どうせSQLにマッピングされるんだったら、SQLで書いたらと思っていた

  • JDBC、S2JDBC、S2Dao、JPA(Hibernate)、Domaのパフォーマンス比較 - taediumの日記

    データベースにH2を使ってCRUDのパフォーマンス比較をしてみました。それぞれ3回実行して真ん中の値を使っています。コードや使用しているライブラリはリポジトリにあります。 https://www.seasar.org/svn/doma/trunk/or-mapper-benchmark/ 10000件SELECT 529,419,874 (nanoTime) : DomaSelectOwnerTest 137,686,988 (nanoTime) : JdbcSelectOwnerTest 1,048,970,551 (nanoTime) : JpaSelectOwnerTest 303,612,949 (nanoTime) : S2DaoSelectOwnerTest 750,473,864 (nanoTime) : S2JdbcSelectOwnerTest 10000件INSERT(

    JDBC、S2JDBC、S2Dao、JPA(Hibernate)、Domaのパフォーマンス比較 - taediumの日記
  • HibernateとS2DaoとS2JDBCの考え方で思ったこと - taediumの日記

    エンティティとテーブルのマッピング方針の違いとかに焦点があてられているので特に触れられていないですけど、ストアドプロシージャーとかストアドファンションがどれだけ簡単に呼び出せるかで比較してもおもしろいと思います。この観点で比較すると、ダントツでS2JDBCが便利です。 S2JDBCは、OracleやPostgreSQLのようにOUTパラメータで結果セット(カーソル)を返すストアドに対応しているし、複数の結果セットを返すストアドも呼び出せます。(ところで、Railsはストアド呼び出しのサポートってあるのかなぁ?) ストアド好きな人にはきっと魅力的なんじゃないかなぁって思います。 あと、S2JDBCはJPAのトラぶりやすい機能を除いたプロダクトであることは間違いないですけど、名前が表すとおりJDBCに一番近いプロダクトでもあります(selectBySql()やselectBySqlFile()

    HibernateとS2DaoとS2JDBCの考え方で思ったこと - taediumの日記
  • HibernateとS2DaoとS2JDBCの考え方 - ひがやすを技術ブログ

    HibernateはEntityを中心に考えます。つまり、Javaを中心に考えるということですね。エンティティモデルとERモデルは、一致する必要はなく、それぞれでモデリングして、Hibernateが間をつなぎます。 メリットは、エンティティの設計がデータベースに引きずられることなく、そのドメインを正確に表したものになること。ほとんどのSQLは自動生成するので、SQLを書かなくてもすむこと。 デメリットは、エンティティとデータベースを個別にモデリングする必要があり、二つのモデル間でインピーダンスミスマッチが起きること。また、自動生成されたSQLの効率が悪くなるリスクがあります。継承や遅延ロードによってパフォーマンスが落ちることもあります。 フレームワークががんばっているので、機能が豊富なのですが、その分オーバヘッドがあり、学習コストがかかります。 S2DaoはSQLを中心に考えます。とはいえ

    HibernateとS2DaoとS2JDBCの考え方 - ひがやすを技術ブログ
  • 1