スポンサーリンク

Webアプリケーション開発

SpringBootでDAO/DTOパターン

投稿日:

Servlet/JSPの古き良きDAO/DTOパターン

SpringBootでDB接続といえば、MybatisやJPA、Doma2などのO/Rマッパーが現場では選択されます。
(参考:SpringBootのDB接続方式を決定する

ですが、Servlet/JSP時代の古き良きDAO/DTOパターンもそのまま使うことができます。

実装例

ライブラリの読み込み

データベースに併せてJDBCドライバを依存関係に追加します。

	<dependencies>
		<dependency>
			<groupId>com.oracle.database.jdbc</groupId>
			<artifactId>ojdbc8-production</artifactId>
			<type>pom</type>
		</dependency>
	</dependencies>

記述したのち、Maven install or Gradle install を実行します。

DAO/DTOを実装する

例 BOOKテーブルにSELECT文を実行する

public class BookDao {
	public static List<Book> findAll() {

		// DB接続
		Class.forName("oracle.jdbc.driver.OracleDriver");
		Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "login_user",
		              "login_password");

		// SQL実行
		PreparedStatement ps = connection.prepareStatement("SELECT bk.book_id, bk.book_name FROM book");
		ResultSet resultSet = ps.executeQuery();

		// 実行結果取得
		List<Book> bookList = new ArrayList<>();
		while (resultSet.next()) {
			Book book = new Book();
			book.setBookId(resultSet.getString("book_id"));
			book.setBookName(resultSet.getString("book_name"));
			bookList.add(book);
		}
		return bookList;
	}
}

エラー処理は割愛させていただきました。

public class BookDto {
    private String bookId;
    private String bookName;
}

コントローラーから呼び出す

本来は@Serviceなクラスを経由するべきですが、ここでは直接Controllerに記述することにします。

@RestController
public class BookController {

	@GetMapping("/books")
	public String books() {

		List<Book> books = BookDao.findAll();
		// ...
		// (割愛)
		// ...
	}
}

Udemyのハンズオン動画講座でSpringBootのスキルを磨く!

スポンサーリンク

-Webアプリケーション開発

Copyright© 【Spring Hack】 , 2022 All Rights Reserved Powered by AFFINGER5.