サイト検索
検索
サイトメニュー
Menu
RTB SoftLab ラテベ ソフトラボ (ラテベラボ)
私の知っているソフトの操作を解りやすく、解説していきます。
サイト検索
検索
サイトメニュー
Menu

投稿日:2021年3月5日

更新日:2021年3月4日

Dataアクセスをマルチ化してほしい!!

前回、MySqlから、SqlServerへの切替を行いました♪

納品も終わって、安心していると!!
お客様から・・・。

『データベースのアクセスは、2つある場合があるのよね~!!』っと!

確かに、私も3つまでのDBアクセスは経験したことはあるけど、
今回は、いらないかと~www^^;

再度聞いてみると!

『今回のプロジェクトは、問題ありません』との回答!

回答は、聞いたので、今のままでも問題ないが・・・。

  • データベースのアクセスは、一元化し、全てクラスで行った。
    • ということは、PGが増えてくると、直すのも大変になる?
    • 現状のPGに影響は?
  • でも、業務を考えると、これって一般的にあり得るはず!
    • 業務アプリ+パッケージ(会計ソフトなど)の連携
      • この時点で、2DBになる。
  • 私が作ったクラス的にどうよ!

はぁ~。

これは、やるしかなさそうですね~www^;

ということで、開発着手ですね!

まずは、手順と変更規約みたいなものを整理

  • 出来るだけ現状PGの変更がないようにする。
  • Sqlクラスは、複数のDBに対応したのでOK(前回)
  • やり方は!(悩みながら・・・)
    • 今のDB接続を基本DBとする。(デフォルトみたいな!)
    • 現在DBアクセスは、クラス化しているので、Newでいけそう。
    • 問題は、前回作ったSQLクラスに解るようにすることが必要。

こんな感じかな!

では、実行~!!

DBアクセスのクラスを眺める。

JavaからのDBアクセスは、別ファイルで管理しているなぁ~。
運がいいことに、前回のMySqlのDB記述も残っていますね♪

ということは、DB接続文字列は問題なくとれるので、それを配列にするがベスト!

後は、前回作成したDBタイプと関連付けと行った配列があれば、何とかなるかな!

さて、変更しますか!

まずは、Enumを変更!

/**  データベース名							*/
public enum DB群{
	/** 	デフォルトDB					*/		xxx_Default	("mssql"),
	/** 	連携用DB					*/	  	xxx_MySql	("mysql"),
	;
	private final String val;
	private DB群(final String val){	this.val = val;	}
	public String getVal(){	return this.val;			}
}

これで、基本DBは、Enumで解るのはず!

後は、DBタイプとの連携!

this.Db情報	=	new LinkedHashMap<>();
this.Db情報.put(DB群.xxx_Default.getVal()	,Db情報.SqlServer);
this.Db情報.put(DB群.xxx_MySql.getVal()	,Db情報.MySql);
this.eDBタイプ	=	this.Db情報.get(DB.getVal());

こんな感じかな!

DBアクセス情報を変えて!
SQLクラスの情報を渡す!

情報がない場合は、全てデフォルトのDBにてアクセス!

あれ?

出来たかも(笑)♪

勿論テストは必要です。

さて、まずは、基本テスト!

PGの修正をしないで、動作確認!

おっ!

きちんと、デフォルトのDBでアクセスしてるではないか♪

次は、デフォルトのDB(SqlServer)アクセス中に、MYSQLにアクセス!

ちょこっと、PGを変えて、アクセスしてみる!

Dataアクセスクラス    変数A  =   new Dataアクセスクラス(DB名);
SQLクラス             変数B  =   new SQLクラス (Dataアクセスクラス   );
SQLクラス.Clear();

実行して、確認もOK♪

きちんとSQLクラスもMYSQLのSQLになっている♪

さらに、既存PGにも一切影響なし♪

今回は、全てOKですね♪

残っている懸案

分類懸案結論完了
javathrows ServletException, IOException 
これからの懸案一覧

今回のまとめ

今回は全て問題ありませんでしたが、
構想を考えるのが、一番大変でした(笑)

PostgreSQLも、ついでに対応しました(笑)

RTB カレンダー

27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
通販サイト(ECサイト)デモへ
ラテベラボブログへ
ナノシスへ

RTBアーカイブ(旧 Widget 版)

RTB ポストランキング (旧)

RTBアーカイブ(旧 Widget 版)