String name = new JdbcSession(source) .sql("SELECT name FROM employee WHERE id = ?") .set(1234) .select(new SingleOutcome<String>(String.class)); Simple and straight forward, isn’t it? The library simplifies interaction with relational databases via JDBC, avoiding the need to use ORM. jcabi-jdbc is a lightweight wrapper of JDBC. It is very convenient to use when you don’t need a full-scale ORM (li
log4jdbc は logback の設定をミスってるとすげー遅い log4jdbc を使うと jdbc でアクセスしたクエリのログが簡単にとれて便利なのだが、設定を誤るとパフォーマンスを超絶劣化させてくるので注意が必要である。 log4jdbc はデバッグレベルだと Throwable のインスタンスを取得してスタックトレースを取って、呼び出し元の情報を表示する。 これが極めて遅い。本当に驚くほど遅い。 ↓具体的にはこのへんである。 private static String getDebugInfo() { Throwable t = new Throwable(); t.fillInStackTrace(); StackTraceElement[] stackTrace = t.getStackTrace(); if (stackTrace != null) https://git
SansOrm is not an ORM. SansOrm library will... Massively decrease the boilerplate code you write even if you use pure SQL (and no Java objects) Persist and retrieve simple annotated Java objects, and lists thereof, without you writing SQL Persist and retrieve complex annotated Java objects, and lists thereof, where you provide the SQL SansOrm will never... Perform a JOIN for you Persist a graph of
JdbcSession is a convenient fluent wrapper around JDBC. Read this blog post: Fluent JDBC Decorator. import com.jcabi.jdbc.JdbcSession; public class Main { public static void main(String[] args) throws SQLException { String name = new JdbcSession(source) .sql("SELECT name FROM foo WHERE id = ?") .set(123) .select(new SingleOutcome<String>(String.class)); } }
22 May 2013 I've been working with different Java web applications since the late 90's and when there have been performance issues, I would say that 99% of the time, the problem is the database, or rather how it is used. At my last company (Josh) we had a really good connection pool wrapper, that collected data and made us know exactly what happens to the database. But that code isn't Open Source
SQL in Java 8: ResultSet Streams. With Java 8, writing SQL will change fundamentally, no matter what API you're using. List<Schema> result = new ArrayList<>(); try (Connection c = getConnection()) { String sql = "select schema_name, is_default " + "from information_schema.schemata " + "order by schema_name"; try (PreparedStatement stmt = c.prepareStatement(sql); ResultSet rs = stmt.executeQuery())
import java.sql.Connection; import java.sql.SQLException; import com.jolbox.bonecp.BoneCP; import com.jolbox.bonecp.BoneCPConfig; public class MyBoneCPApp { private BoneCP bcp = null; private String driverClassName = "com.mysql.jdbc.Driver"; private String username = "root"; private String password = ""; private String url = "jdbc:mysql://localhost/test"; public void init() throws ClassNotFoundExc
Jdbi provides convenient, idiomatic, access to relational data in Java. Jdbi 3 is the third major release, which introduces enhanced support for modern Java, countless refinements to the design and implementation, and enhanced support for modular development through plugins and extensions. Jdbi is built on top of JDBC. If your data source has a JDBC driver, you can use it with Jdbi. It improves JD
JBoss Advent Calendar 2011の12日目のエントリです。 JNDIはJava EEサーバのEJB、JDBCデータソースやJMSのConnectionFactoryなど、各種サービスにアクセスするためのエントリポイントとなる部分なのですが、あまりエキサイティングな技術ではないので注目されることはないですし、どのようなものなのかを調べたりする機会もなかなかないでしょう。というわけでさらっと振り返ります。 まず基本的な機能はリモートアクセスもできるサーバ上のグローバルHashMapみたいなものです。メソッド名がちょっと違い、get()ではなくlookup()、put()ではなくrebind()となっています。 データソースを取得するようなコードはこのようになります。 InitialContext context = new InitialContext(); DataSou
先週書いたエントリJava EE6標準の範囲でフルスタックのWebアプリケーションが簡単に作成できることを確かめてみました。 - 達人プログラマーを目指してで、Java EE6の標準仕様を使うだけで、かなりシンプルにデータのCRUD処理を行うアプリケーションが作成できることを紹介しました。ただし、前回は全体のアプリケーションを紹介しただけなので、細かい仕掛けについては解説しきれませんでした。今回は、前回に引き続き特にJPAを使ったデータベースアクセスの部分がどうなっているのかをもう少し掘り下げて解説してみたいと思います。 なお、この場で宣伝ですが、8月10日(水)にGlassfishユーザーグループの勉強会にてお話をさせていただくことになりました。 GlassFish Japan Users Group 勉強会 2011 Summer : ATND 私はJava EE6を使った開発について
Commons DBCPを超えるTomcat JDBC Poolとは:Tomcat 7の新機能で何ができるようになるのか?(番外編)(1/2 ページ) TomcatのDBコネクション・プールは2つある @IT読者の皆さんは「Tomcat JDBC Connection Pool」をご存じですか? 通常、TomcatのDBコネクション・プールといえばApache Commonsプロジェクトの「Commons DBCP」を想像するかと思います。しかし、Tomcatには「Commons DBCP」以外にもDBコネクション・プールの実装が存在します。それが、「Tomcat JDBC Connection Pool」(以下、Tomcat JDBC Pool)です。 Tomcat JDBC Poolとは、Apache Tomcatプロジェクトが独自に作成したDBコネクション・プールの実装のことです。
今まではPostgreSQL派だったのですが、Amazon RDSがMySQLだと言う事もあり、最近はバックエンドのRDBMSとしてMySQLを使う機会が多くなってきました。 この間、何気なくDATETIME型のカラムを作って、Java側で new Date()して MyBatisでさくさくと INSERTしてみたのですが、なんかタイムゾーンがずれて格納されているような、、、という問題に遭遇しました。 以下、その際の格闘メモです。 まず、Amazon RDS (MySQL) は UTCで動いています。以下のSQLで確認しました。 mysql> SELECT @@global.time_zone, @@session.time_zone; +--------------------+---------------------+ | @@global.time_zone | @@session
すっかり明けてますね。 まあ、夏くらいから更新してないですが。。 ともかく、今年もよろしくお願いします。 で、Domaなんですけど、 実践投入すごくしてます。いっぱい使ってます。感謝。 今のところ、ORマッパーを使うならDomaが一番の選択肢です。 理由 印象はS2Daoのようで、 S2Daoよりサポートしている部分でかゆいところに手が届いてる感じ。 selectは外だしSQLのみにすることで実行されるSQLが分かりやすく 定義箇所がsqlテンプレートファイルのみなので管理しやすい。 SQLテンプレートはSQLコメント内に設定構文を書くので SQLをそのまま実行して試すことが出来る。 aptによるチェックで、sqlテンプレートと条件やvalueの定義に 間違いがある場合、すぐに分かる。これとっても重要。 S2Dao使ってたら実行しないと分からない事がすぐ分かる。 条件のプロパティの定義忘れ
S2UnitはDBを使ったユニットテストの支援機能としてExcelファイルからDBにテスト用データを投入したり、ExcelファイルとDBの内容を比較したりすることができます。ただ、実際にやってみるとわかるのですがこのExcelファイルのメンテナンスコストが馬鹿になりません。 そこで、実際にDBにアクセスするのではなく、フレームワークやJDBCドライバのレイヤで発行されたSQLを横取りし、期待通りのSQLが発行されたのかどうかを確認するという方法はどうだろう?と考えました。そういうライブラリを自作しようかとも思ったのですが(実際途中まで作っていたのですが)、世の中同じことを考える人はいるもので、MockRunnerのJDBC Mockという機能を使うとそのものズバリなことができるようです。 http://mockrunner.sourceforge.net/examplesjdbc.html
二郎は はま寿司の夢を見るか? 近所に はま寿司 ができた。 近所には ま寿司 ができた。に見えないように空白を入れなくてはいけない。 ここではきものをぬいでください。 ところでいきなり脱線しまくるのだが昔のゲームの「全部の文字を平仮名にした時に逆に解釈が広がってエモか感じる」みたいなの…
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く