ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Java質問&情報提供サイトコミュのJSPでのデータベース作成

  • mixiチェック
  • このエントリーをはてなブックマークに追加
はじめまして。質問があります。

JSPからMySQLのデータベースを扱いたいのですが、JSPでデータベースの宣言と言うのは出来ないのでしょうか?
データベースへの接続や、テーブルの作成方法などはよく載っているのですがデータベースの作成は見つけられなくて質問させていただきました。

例えば

if(**a_dbと言うデータベースが無い**){
**データベースa_dbの作成**
}
//データベースa_dbへの接続
String url="jdbc:mysql://localnet/a_db?useUnicode=true&characterEncoding=SJIS"
String user="root";
String pass="";

Class.forName("Driver");
Connection con = DriverManager.getConnection(url,user,pass);
//テーブルb_tableの作成
Statement st = con.createStatement() ;
String sql="create table b_table(id int primary key, name text)" ;
st.execute(sql) ;

と言う感じで考えています。
分からないのは、
・特定のデータベースが存在するかどうかを判定するメソッド(↑のif文の条件)があるか。
・データベースの作成

の2点です。
特定のデータベースの存在は、getConnectionに渡した時に例外が起きれば存在しないということになるでしょうが、出来ればtrue/falseで知りたいです。
また、データベースの作成はテーブルの作成のようにexecuteに渡せば出来るのかもしれませんが(実際そのようにして作るサンプルソースもありましたが)そうするとその前にデータベースを指定しておかないといけないという矛盾が…。

それともデータベースと言うのはデフォルトで用意しておくものなのでしょうか?
cygwinで作っておけば良いだけなので、それならそれで諦めるのですが出来ればプログラムの中で作って欲しいのです。
eclipseとTomcatで作っています。
よろしくお願いします。

コメント(10)

DriverManagerは最近あんまし見ない気がします。
データソース使えば?
http://www.hellohiro.com/datasource.htm
>なかのさんさん、クラッチさん

レスありがとうございます。
データソースにMVC2モデル…どちらも初めて知りました(*_*)
やってみます!!
1はそのRDBMSのメタ情報をSQLで取得とか。
または繋いでみてcatch(SQLExceptionとか。
いや、IOExceptionなのかな。

2はSQLでやるんじゃないの。CREATE DBとか。

もっとも動的にDB作るとか、そんな危ないことしないけど。
なので、机上の案として。

それともデータベースと言うのはデフォルトで用意しておくものでしょう。
ってことですね。JSPとかDriverManagerとか関係なく。
テーブルも動的に作るのは避けるようにしてます。
phpMyAdminのような、dbを管理するためのものを作るのでもない限り、動的にデータベースを作成することはありませんね。
テーブルやビューもふつうは静的。動的にぽこぽこ作ったり消したりするのは、MS-Accessをやってきた人に、たまーに見受けられます。
# C/Sではなく、シングルユーザ用で、RDBMSもどきのMS-Accessとでは異なる。
JavaMyAdminとか作るのなら、良いかもしれない。
# でも、JavaServelet/JSPの「設計の」基礎からやらないと、すぐに行き詰ると思う・・・
Oracle10gを利用したASP(ApplicationServiceProvider)で、
各ユーザが独自プログラムから使うテーブルを、サービス中で動的に作ってはいたり。

勉強とか試すだけならJSPは有りだと思うけど。
自分でコンパイラ使わなくていいし。
ただ、コンパイラ使えないからエラー取り除くの大変そ。
>みなさま。

学校の課題でこのプログラムを作っているのですが
DBが用意されていないパソコンからアクセスした場合を想定していたり、一つのDBにたくさんのテーブルを作ろうとしていたりで、そもそものDBの考え方を分かってなかったんですね…。

最初は、入力されたデータを日付ごとにテーブルを用意して格納していこうと考えていたんですが
ご指摘通りそれはやめにして日付のコラムを作って情報を取り出す形にします。

たったそれだけのことだったかと思うと恥ずかしいですね(>_<)
たくさんのアドバイスありがとうございました!
DBはみんなで使うもの。だからRDBMSとか必要だし。
ファイルとは違うね。

モバイル用途とかで使われる個人用のRDBMSとかもあるらしいけど。

日付を属性(コラム)にすることによって、日付での抽出、ソート等いろんなことができるね。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Java質問&情報提供サイト 更新情報

Java質問&情報提供サイトのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。