Java(.NET)のO/Rマッピングライブラリ。最近、Ruby用も登場。(RBatis)
SQL(引数、戻り値、マッピング設定など)をXMLに定義することが特長。
本家(2010/06/16まで)
本家(2010/06/16以降)
サンプルは以下のページ参照。
6年間Apacheプロジェクトで開発されていが、2010/06/16にApacheプロジェクトからGoogle Codeに移動した。 それに併せて(?)、名前もmybatisに変更。
本記事の目的 StrutsとEJB、J2EEの関係について、イメージできるようにする。 ※開発現場によって多少の違いがあると思いますので、そこはご容赦ください。 本題 全体像 開発の流れ war用のプロジェクトと、EJBjar用のプロジェクトで開発 build.xmlでearファイルを作成するように定義 ビルド 動作させたい環境にデプロイ ※ どこかのタイミングで、デプロイ用の定義ファイルを作成する必要があります。 処理の流れ クライアントからリクエストを発行する WEBサーバーがリクエストを受け付け、WEBコンテナへリダイレクトする WEBコンテナ側での処理を実行 必要があれば JNDI を…
前提 Spring Boot MySQL React ReactからSpring Bootに接続(CORS設定) Redux 前提 Java node.js VsCode はインストール済み。 Spring Boot ・参考 qiita.com 1,拡張機能のインストール Java Extension Pack Spring Boot Extension Pack 2,Spring Boot新規プロジェクト作成 Ctrl * Shift + P → Spring Initializerで新規プロジェクト作成する。 spring initilizer ■追加したDependency Spring…
はじめに 初めまして、dodaX エンジニアリンググループの上池です。 dodaX では、マイクロサービス指向でアーキテクチャが設計されており、各サービスは Spring Boot で実装されています。 最近、インフラが Kubernetes ベースに刷新されたこともあり、コンテナ技術に興味が湧いてきました。 そこで今回はコンテナファーストをうたっている Java のフレームワーク Quarkus について調査し、簡単な RESTfulAPI を作ってみました! Quarkus の特徴や Spring Boot との比較についても解説しています。 この記事は Spring Boot は知ってい…
MyBatisを利用していて、XML内の記述にstartDateTimeとendDateTimeの変数を指定しているところがある ... where INSERT_TIME between #{startDateTime} and #{endDateTime} ... Mapperのインターフェースは以下のように定義した @Mapper @Component interface MyQueryMapper { List<ResultDto> aggregate( OffsetDateTime startDateTime, OffsetDateTime endDateTime); } これを実行…
こんにちは、エキサイト株式会社の平石です。エキサイトホールディングス Advent Calendar 2023の5日目を担当いたします。 今回はJavaのSpringBootでMyBatisを利用して、複数のデータソースに接続する方法をご紹介します。 はじめに 前提条件 問題設定 application.ymlファイルへの記述 接続設定項目をYAMLファイルから読み込む 実際に接続設定を行う おわりに 参考文献 はじめに 複数のデータベースに利用したい情報が分散しており、一つの「アプリケーション」からそれらにアクセスする必要があるという場合を考えます。 このとき、考えられる対処法は主に2つあり…
Java で JSON を編集するときによく使われるのが Jackson ライブラリであろう。 巨大で階層が深い中の値を変更するのは、Jackson の JsonNode としてJSONを読み込んで、コードを書くのも 面倒くさいばかりでなく、あまり汎用的なものは期待できない。 PostgreSQL が使えるという前提にはなるが、PostgreSQL の JSON関数を テーブルを指定しないクエリの実行(SELECT 文で PostgreSQLの JSON関数)をしてしまえば、 楽であろう。 DB接続するからその分パフォーマンスが落ちるものの、魅かれてしまう方法である。 (馬鹿げているかもしれな…
求人情報情報サイトPaizaをスクレイピングし、フレームワーク別の求人数を取得した。 結果 取得日時 2023-11-03 フレームワーク 求人数 指定なし 4654 Vue.js 1128 React 1088 Laravel 813 Spring 751 Node.js 751 jQuery 599 Ruby on Rails 585 .NET Framework 463 Angular 380 Next.js 345 Nuxt.js 332 Django 298 CakePHP 285 Struts 278 Flutter 239 Android SDK 228 iOS SDK 221 …
UUID型のタイプハンドラの必要性をあまり感じなかったので、今まで書いてなかった。 PostgreSQL なら、gen_random_uuid() 関数で生成してくれるし SELECT クエリ結果も、mybatis は、String に自動マッピングで抽出できるとなると、 あまり、java.util.UUID で扱う機会が少ないからだ。 でも、java.util.UUIDの static メソッド randomUUID() で 生成した結果をDBに書き込みたいとなるとハンドラが必要、 作ることにした。 package org.yipuran.mybatis.types; import java…
この記事について MyBatisとは 前提 entityクラス Repositoryクラス 問題 解決方法 結果 最後に この記事について MyBatisでネストしたリスト(階層構造)をマッピングする際は注意 MyBatisでネストしたリストをマッピングする場合、結果を格納するクラスには@NoArgsConstructorを付与しないといけない この問題でとても時間を要したので、備忘録を込めてまとめます。 MyBatisとは XML、またはアノテーションを使用してSQL文とオブジェクトをマッピングするフレームワークのこと(O/R マッパー)です JavaのO/Rマッパーについては、Java O…
はじめに Spring Boot + DDD + MyBatis +H2 という構成でDDDサンプルアプリケーションを書いていたのですが 以下のエラーでドハマリしたのでメモ エラー内容 java.lang.IllegalArgumentException: argument type mismatch at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeConstru…