サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは本日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。
JDBCのメタデータは、データベース(RDB)の(データでなく)定義自体を扱う。 メタデータを利用して、テーブルの項目一覧だとか属性だとかを取得することが出来る。 DatabaseMetaDataはConnectionから取得できる。 ResultSetMetaDataはResultSetから取得できる。 テーブルの項目一覧 プライマリキー項目 レコード一意識別項目 項目の型の取得 [2009-04-10] PreparedStatementの項目の型 [2009-10-25] 自動採番値の取得 [/2010-07-24] テーブルの項目一覧を取得する例 import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.ResultSet; Connection conn = ~; DatabaseM
CSVファイルからOracleのテーブルへデータを流し込むツール。 大量のinsert文を発行するよりは、断然高速。 データであるCSVファイルや固定長ファイルと、ロード方法を指定するコントロールファイルを用意 して実行する。 (CSVファイルからのロードはこのSQL*Loaderが使えるが、CSV出力には標準的な方法は無いらしくて、select文で加工する方法がよく使われるらしい。 このSQL文をいちいち書くのは少々面倒なので、SQL生成用Excelマクロを作ってみました) コントロールファイル CSVファイルの各項目とテーブルの項目との関連付け等を指定する。 (コントロールファイルをテキストエディタで書くのはけっこう面倒なので、コントロールファイル作成用Excelマクロを作ってみました(CSVファイル用、固定長ファイル用)) 例)emp.ctl: OPTIONS(LOAD=100,SK
■前置き JavaにClassクラスが存在することを大抵のJava技術者はご存知だと思いますが、実際、Classクラスとは何なのか、いつ、どうやって生成されるかなど、知らない人がほとんどではないでしょうか? 多分、使ったことがあるのは、主に以下の2パターン 1.DB接続時にドライバクラスをforName()する。 2.インスタンスからクラス情報を取得する 1は多分、みんな、おまじないのように使ってる。 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); って感じで、よくわからないけど、上記のようにドライバクラスを指定してからじゃないとDB接続できないから、おまじないとして使ってる。という人が多いと思います。 2は用途はいろいろですが、インスタンスからgetClass().getName()してクラス名を取得して、ログに出したり、なんちゃらしたりだと
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? システムエンジニア Advent Calendar 2015 - Qiita 20日目の記事です。 システム開発をしていると、他システムのマスタやトランザクションデータが必要となる場合がよくありますね。 システム間のデータ連携としては、 リソース共有(データベース共有、ディスク共有) アプリケーション連携(RPC、Web API、MOM1) ファイル連携(CSV連携、etc) などの方法がありますが、ここではデータベース共有を実現するためのデータベース連携方式について考えてみたいと思います。 データベース連携方式について 既存システムが
なぜ、SQLは重たくなるのか?──『SQLパフォーマンス詳解』の翻訳者が教える原因と対策 『SQLパフォーマンス詳解』の翻訳者の松浦隼人さんに、8つの「SQLが重たくなる原因とその対策」を聞きました。システムのボトルネックになるような「問題のあるSQL」を回避するノウハウを学びましょう。 データの操作や定義をする言語「SQL」は、どのような領域を担うエンジニアにとっても必修科目です。しかし、その仕様をきちんと理解し、パフォーマンスに優れたSQLを書ける方はそれほど多くありません。問題のあるSQLを書いてしまい、知らぬ間にそれがシステムのボトルネックになってしまう事態はよく発生します。 では、どうすればそうした事態を回避できるのでしょうか? そのノウハウを学ぶため、今回は『SQLパフォーマンス詳解』の翻訳者であり、自身もエンジニアでもある松浦隼人(まつうら・はやと/@dblmkt)さんに8つ
https://builderscon.io/tokyo/2017/session/c8f36693-32aa-4bf1-816a-4966f3859926 どんなシステムを作るときでも今や必ずRDBを使うと言っても過言ではありません。 しかしRDBは便利な半面、リファクタリングが難しくレガシィシステムの中心として手を付けれない状況になっていませんか? RDBアンチパターンにハマるとアプリケーションへの影響も大きく、パフォーマンスやコードの品質にダイレクトに影響します。 そこで今回は ・RDBアンチパターンの紹介 ・RDBアンチパターンが引き起こす問題 ・如何にRDBアンチパターンをリファクタリングするか ・リファクタリング後の未来 ・明日からDBリファクタリングするために必要な事 をお話したいと思います。 既存システムに棲みつくRDBアンチパターンを如何に攻略していくか… そんな明
multiversionの基礎 自分用のMulti Version Concurrency Controlのまとめ MVCCの基礎理論をまとめておく。今後はここを参照する。 基本的にTX本とCC本から必要な部分をまとめている。 (一回まとめてるけど、Multi-version Conflict Serializability - 急がば回れ、選ぶなら近道 前回はそもそもCSRとの混線を防ぐという意味だったので、今回はもっと基本的なところからさらに。今回はCSRとの関係はガン無視。) 前置き:自分の考えを記録的に 基本的にMulti Version Concurrency Control (以下MVCC)は理論先行だった。これはMVCCのオーバへードがsingle-versionのパフォーマンスを凌駕できなかったことによる。以下の理由によりMVCCが今後は伸張すると考えている。 1.メモリー
これまで階層構造データはリレーショナルデータベースでうまく扱えませんでしたが、その解決策としてジョー・セルコが提案したのが「入れ子集合モデル」です。この手法を紹介した『プログラマのためのSQLグラフ原論』の刊行にあたり、翻訳されたDBエンジニアのミックさんに入れ子集合モデルの将来性についてうかがいました。 なぜRDBで木と階層構造を扱う手法が1冊の書籍に? ――『プログラマのためのSQLグラフ原論 リレーショナルデータベースで木と階層構造を扱うために』についてミックさんにうかがいます。最初に、本書がどういう本なのか教えていただけますか? ミック:内容としては、リレーショナルデータベース(RDB)でグラフ構造の一つである木と階層構造を扱うための方法論「入れ子集合モデル」をメインに解説しています。RDBには大きな問題があり、入れ子集合モデルがそれを解決しうる手法だと見込まれています。その問題と
めっちゃよくまとまっているので、大変助かりました。 blog.mogmet.com t-wada氏の「とりあえず削除フラグはアカン」については、僕も全く同感です。論理削除をしなければならないビジネス上の理由がスッポリ抜け落ちている。「とりあえず削除フラグ立てて何かあれば戻せるようにすればいいンゴ」ってのは論理設計を放棄していると言い換えても良いし、「ユーザーの言葉ではない」という指摘も重要。こちらに書かれています。 ledsun.hatenablog.com じゃ、フラグやめてどーすんのって話。フラグを立てたくて立てる人はおらん(はず)。「削除フラグを追加するとSELECT時に常にWHERE句で削除フラグを引っ掛ける必要があるのでクソ」→「削除日や状態カラムを使おう」では解決にならん。t-wada氏の資料でも解決策で上げられてたけど「×」マークがついてます。下記に変わっても誰も嬉しくないと
皆さん、はじめまして。本連載を担当するビーブレイクシステムズの山之内と申します。本連載ではO/Rマッピングについて検討していきます。 O/Rマッピング機能を提供してくれるフレームワーク(O/Rマッピングツール)はデータベースと連携するJavaアプリケーション開発において、既に必須となりつつありますが、O/Rマッピングツールはたくさん存在します。 しかし、各O/Rマッピングツールには特徴やクセがあり、実際の開発現場においてどのO/Rマッピングツールを導入すべきか迷っている人も多くいることでしょう。目的にあわせて適切なツールを選択しないと、思ったような効果が得られなかったり、かえって工数が増えたりする状況にもなりかねません。 そこで本連載では、代表的な3つのO/Rマッピングツール(iBATIS、Torque、Hibernate)を取り上げて、実際に各O/Rマッピングツールを利用したサンプルを作
GitHub トレーニングチームから学ぶ Git の内部構造のノートです。 曖昧なところもあるので、間違いがあったら教えてください! http://connpass.com/event/3808/ Graphs, Hashe, and Compression, Oh My! 登壇者:@matthewmccull Hashesについて 従来の CVCS (集中バージョン管理システム)のリビジョン番号は連番。 SVN はサーバーにデプロイした時点でリビジョン番号1と設定される。 Git は SHA1 をつかっている。40桁の16進数のフィンガープリントがついてる。これは理論上は重複しない大きさ。こうすることで単純で強固な DVCS (分散バージョン管理システム)がつくれる。 新しいファイルを追加すると、.git/objects/55/7db03de...(SHA1 finger print)
Web Application Development - SitePen WebアプリケーションのクライアントサイドのみならずサーバサイドもJavaScriptで実装しようという試みがあり、サーバサイドJavaScriptの標準化作業が進められているなど、一定の支持を集めている。こうした試みのひとつに、データの永続化を実現するために従来のRDBMSではなく、JSONをやりとりするデータ形式としたWebアプリケーション向けのデータベース開発が進められており、実装自身もJavaScriptで実装されているものがある。そうした取り組みのひとつがPersevereだ。Dojo関連プロジェクトのひとつと位置づけられている。 Webアプリケーションに特化したデータベースは今にはじまったものではないが、そうしたデータベースとしては代表的なもののひとつであるApache CouchDBをJavaScri
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く