質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JDBC

JDBC(Java DataBase Connectivity)は、Javaとリーレーショナルデータベースに接続させる基本的なAPIです。Java上でSQLステートメントを発行することで、データベースの種類に影響を受ないDB操作を可能とします。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

1回答

2641閲覧

Spring Boot、JDBCTemplateを使っているシステムのデータアクセスのライブラリ?化

morotan

総合スコア16

JDBC

JDBC(Java DataBase Connectivity)は、Javaとリーレーショナルデータベースに接続させる基本的なAPIです。Java上でSQLステートメントを発行することで、データベースの種類に影響を受ないDB操作を可能とします。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

1クリップ

投稿2017/05/23 02:33

###前提・実現したいこと
現在Spring Bootを使ってつくったWebサイトを管理しています。
そのサイトはあるDB内のデータを表形式で表示するだけの簡単なWebシステムになっています。(以下既存サイト)

今回新たに、既存サイトが参照しているDBと同じDBを参照する別のWebサイトを作りたいと考えています。(以下新規サイト)

新規サイトで表示したい内容は既存サイトとほぼ同じなので、DBアクセス処理を流用したいと考えているのですが、
ソースコードコピペだと芸がないというか障害があった際に両方修正しないといけなかったりと不便だと考え、DBアクセス処理のみをjarなどの形で使いまわせる形にできないかと考えています。

現在既存サイトのDBアクセス部分は以下のようなつくりになっています。

java

1@Component 2public class MstDaoImpl implements MstDao{ 3 @Autowired @Qualifier("jdbc") 4 private NamedParameterJdbcTemplate db; 5 6 @Override 7 public MstDto find(String pId) throws EmptyResultDataAccessException { 8 SqlParameterSource param = new MapSqlParameterSource() 9 .addValue("Id"); 10 String tmpSql = "SELECT " 11 + "ID" 12 + " FROM [MST].[dbo].MST m " 13 + "WHERE " 14 + "m.ID = :Id " 15 ; 16 return db.queryForObject(tmpSql,param,new CorrespondenceTableMstDtoRowMapper()); 17 } 18 19 /** 20 * DTOへのデータマッパー 21 */ 22 protected class MstDtoRowMapper 23 implements ParameterizedRowMapper<MstDto>{ 24 public MstDto mapRow(ResultSet rs, int rowNum) 25 throws SQLException { 26 MstDto h= new MstDto(); 27 h.setId(rs.getString("ID")); 28 return h; 29 } 30 } 31 32} 33

java

1/*上記DAO呼び出し側*/ 2 @Autowired 3 private MstDao mstDao; 4~~~~~~~~~~ 5final MstDto user = mstDao.find(id); 6~~~~~~~~~~

上記のようなDBアクセス処理をライブラリ化したい場合、どういった方法が考えられるでしょうか。

###試したこと
単純に既存システムのDBアクセス部分を残してjarとして出力し、新規システムのビルドパスに加えた場合、ビルド自体はきちんと通るのですが、実行時にエラーメッセージでずにサーバーが停止してしまいました。
そもそもSpring Boot Application自体がそういったjarとして参照するようなものではない気はしたのですが、ではどうすればいいのかというところがわかりませんでした。
何か方法はありますでしょうか。

そもそもDBアクセス部分をjarでライブラリ化するという考え方は一般的なのでしょうか。アドバイスお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

方針はあっております。

SpringBootはmavenを使ったJavaプロジェクト管理を採用していますので(pom.xmlがあるはずです)、共通化として切り出したプロジェクトもmavenプロジェクトとして作成し、SpringBootのアプリケーションにて共通化したプロジェクトのjarを参照するようにします。

DBアクセス部分をjar化する方法は、場合によってはありますね。

投稿2017/05/23 17:20

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

morotan

2017/05/26 01:05

回答ありがとうございます。何をしなければいけないかなんとなく理解できました。 また何かありましたらよろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問