このチュートリアルはより実用的です。プログラマーは、コピーコードを自分のプロジェクトに直接追加し、単純に変更して変更することで使用できます。ただし、スプリングブートとマイバティスはここでは紹介されていません。読者が知りたいなら、彼らは私にメッセージを残して注意を払い続けることができます。将来ゆっくりと更新します。 (黒い市外局番セクション、Android電話は手動でスワイプしてすべてのコードを表示できます)
実際、統合は非常に簡単です。 Gradleを使用する場合は、build.gradleファイルに追加します。
コンパイル( 'org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.1')
Mavenを使用する場合は、pom.xmlファイルに追加します
単一のライブラリ構成:
導入後、デフォルトでは、Spring Bootは当社のデータソースを自動的に構成します。これにより、H2、HSQLDB、その他のメモリデータベースのJARパッケージのClassPathが検索されます。見つかった場合、メモリデータベースのDataSourceを自動的に構成します。
spring.datasource.*の関連する構成パラメーターがapplication.ymlまたはapplication.propertyで指定されている場合、Spring Bootはこの構成を使用してDataSourceを作成します。
次に、DataSourceを使用したSQLSessionFactoryBeanとSQLSessionTemplateが自動的に作成されます。マッパーは自動的にスキャンされ、SQLSessionTemplateに接続され、Springコンテキストに登録されます。
spring.datasource.url = jdbc:mysql:// localhost/test spring.datasource.username = dbuser spring.datasource.password = dbpass spring.datasource.driver-class-name = com.mysql.jdbc.driver
その他のパラメーターについては、DataSourcePropertiesを参照してください
マルチライブラリー構成:
ビジネスニーズのため、プロジェクトはビジネス開発に複数のデータベースを使用する必要があります。
まず、Application.Propertyの2つのデータソースの構成をカスタマイズする必要があります。1つはfirst.DataSource。*を使用し、もう1つはSecond.DataSource。*を使用します。他の人に、どのライブラリが接続されているかを一目で確認できるようにするために、データベースネーミングを使用できます。たとえば、ユーザーライブラリで、user.datasource。*を使用できます。複数のデータソースを使用する場合、必要なすべての構成を省略できません。
first.datasource.url = jdbc:mysql://localhost/firstfirst.datasource.username = dbuser1first.datasource.password=dbpass1fi rst.datasource.datasource.driver-class-name = com.mysql.jdbc.driverfirst.datasource.type = com.alibaba.druid.druiddatasource // i Druidを使用していますが、デフォルトを追加しないこともできますsecond.datasource.url = jdbc:mysql://localhost/secondsecond.datasource.username = dbuser2second.datasource.password=dbpa ss2Second.datasource.driver-class-name = com.mysql.jdbc.driverse.datasource.type = com.alibaba.druid.druiddatasource
コードを直接アップロードします。私のアプローチは、2つの構成クラスを使用して2つのデータソースを作成することです。
@configuration @mapperscan(basepackages = {"com.user.server.dao"}、sqlsessiontemplateref = "usersqlsessiontemplate")public class usermybatisconfig {@bean(name = "userdatasource")@primary //次のクラスは、@configurationProperties(prefix = "first.datasource")を追加する必要はありません。 } @bean public sqlsessionfactory usersqlsessionFactory( @qualifier( "userdatasource")dataSource dataSource)スロー{sqlsessionfactorybean bean = new sqlsessionfactorybean(); Bean.SetDataSource(DataSource); // XML Directory ResourcePatterNresolver Resolverを追加= new PathMatchingResourcePatterNresolver(); try {bean.setMapperLocations(resolver.getResources( "classPath*:com/user/server/dao/mapping/*。xml")); return bean.getObject(); } catch(Exception e){e.printstacktrace();新しいruntimeexception(e); }} @bean public sqlsessionTemplate usersqlSessionTemplate( @qualifier( "usersqlsessionFactory")sqlsessionFactory sqlsessionFactory)スロー例外{sqlsessionTemplateテンプレート= new sqlsessionTemplate(SQLSessionFactory); //上記で構成された工場を使用してテンプレートを返します。 }} @configuration @mapperscan(basepackages = {"com.airmi.server.dao"}、sqlsessiontemplateref = "autotestsqlsessiontemplate")public class autotestmybatisconfig {@bean @configurationperties(prefix = "autest.datasusuce") autotestdatasource(){return dataSourceBuilder.create()。build(); } @bean public sqlsessionTemplate autotestSqlSessionTemplate( @qualifier( "autotestsqlsessionFactory")sqlsessionFactory sqlsessionFactory)スロー例外{sqlsessionTemplateテンプレート=新しいsqlsessionTemplate(sqlsessionTemsion(SQLSessionFectory);テンプレートを返します。 } @bean public sqlsessionfactory autotestsqlsessionfactory( @qualifier( "autotestdatasource")datasource datasource)スロー例外{sqlsessionfactorybean bean = new sqlsessionfactorybean(); Bean.SetDataSource(DataSource); // XML Directory ResourcePatterNresolver Resolverを追加= new PathMatchingResourcePatterNresolver(); try {bean.setMapperLocations(resolver.getResources( "classPath*:com/airmi/server/dao/mapping/*。xml")); return bean.getObject(); } catch(Exception e){e.printstacktrace();新しいruntimeexception(e); }}}@primary //この注釈は、同じインターフェイスに注入する複数の実装クラスがある場合、Autowire Annotationがエラーを報告できるようにする必要がないことを意味します。公式ウェブサイトでは、複数のデータソースの場合、1つのデータソースを指定する必要があり、別のDataSourceを追加する必要がないことが必要です。
@qualifier indection by Nameは、通常、複数のタイプを使用して1つの例で注入されます(たとえば、DataSourceタイプには複数のインスタンスがあります)。
@mapperscan(basepackages = {"com.user.server.dao"}、sqlsessiontemplateref = "usersqlsessiontemplate")basepackagesは、マッパーの位置にあるパッケージです。ユーザーコード構造は次のとおりです。
要約します
上記は、エディターが導入した複数のデータソースを使用して、MyBatisを統合するSpring Bootの実装方法です。私はそれが誰にでも役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は、すべての人に時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!