春ブーツ和MyBatisの

MyBatisのは、高度なマッピングとストアド・プロシージャのあるSQL。春ブーツとMyBatisの中にあなたルイクラス

それらのものの精巧なアーキテクチャを解明 - [レッスン]あなたルイ

MyBatisのは、あるSQLのマッピングフレームワーク、カスタムのサポートSQL 、ストアドプロシージャと高度なマッピング。

SpringBoot ないMyBatisのは、公式のサポートを提供するために統合されますが、MyBatisのコミュニティMyBatisのは、構築されたSpringBootのエントリー手続きを。

作成SpringBoot Mavenのプロジェクトを、以下の追加MyBatisのスターターの依存関係を。

<依存>
    <groupIdを> org.mybatis.spring.boot </ groupIdを>
    <たartifactId> MyBatisのスプリング・ブート・スターター</たartifactId>
    <バージョン> 1.0.0 </バージョン>
</依存関係>


私たちは、前回の記事で再利用されますSpringBootが作成User.java schema.sql data.sqlに使用:ファイルJdbcTemplateを


非常に少ない操作すると、データベース作成MyBatisのSQLマッパーインタフェースUserMapper.javaを次のように、:

パッケージComksivlbskdemokdomen;
パブリックインターフェイスUserMapper
{
    空insertUser(ユーザーユーザー);
    ユーザfindUserById(整数ID)。
    リスト<ユーザ> findAllUsers();
}


私たちは、作成する必要がありマッパーXMLの対応にファイルをマッパーのマッピングインターフェイスメソッドの定義SQL クエリステートメント。

 

のsrc /メイン/リソース/ COM / sivalabs /デモ/マッパー/ ディレクトリの作成UserMapper.xmlのファイルを次のように:

<!DOCTYPEマッパー
    PUBLIC " -  // mybatis.org//DTDマッパー3.0 // EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<マッパー名前空間= "com.sivalabs.demo.mappers.UserMapper">
    <このresultMap ID = "UserResultMap" タイプ= "ユーザー">
        <id列= "ID" プロパティ= "ID" />
        <結果列= "name" プロパティ= "名前" />
        <結果列=「メール」プロパティ=「メール」/>
    </このresultMap>
    <選択し、ID = "findAllUsers" このresultMap = "UserResultMap">
        ID、名前、ユーザーからのメールを選択
    </ select>の
    <選択し、ID = "findUserById" このresultMap = "UserResultMap">
        ID、名前、ID =#{ID}ユーザーからのメールを選択します
    </ select>の
    <挿入のid = "insertUser" のParameterType = "ユーザー" useGeneratedKeys = "true" をkeyProperty = "ID">
        ユーザへの挿入(名前、電子メール)の値(#{名前}、#{メール})
    </挿入>
</マッパー>


ここで注意すべき点がいくつかあります:

  • XMLマッパーなければならない名前空間をマッパー完全修飾名(インターフェースFQN 同じ)。

  • ステートメントIDの値がなければならないマッパー同じインタフェースのメソッド名を。

  • クエリ結果の列名とした場合異なる属性名は、使用することができます。<このresultMap> 列名とそれに対応して配置されたname属性間のマッピングを提供します。


MyBatisのはもせずに、アノテーションベースのクエリ構成を提供マッパーXML


私たちは、作成することができUserMapper.javaのインタフェースを、とのコメント・コンフィギュレーション・マッピングを使用SQLを次のように、:

パブリックインターフェイスUserMapper
{
    @Insert( "ユーザへの挿入(名前、電子メール)の値(#{名前}、#{メール})")
    @SelectKey(声明= "コール・アイデンティティ()"、keyProperty = "ID"、
    前= falseの場合、resultTypeと= Integer.class)
    空insertUser(ユーザーユーザー);
    @Select( "SELECT ID、名前、ID =#{ID}ユーザーからのメール")
    ユーザfindUserById(整数ID)。
    @Select( "SELECT ID、名前、ユーザーからのメール")
    リスト<ユーザ> findAllUsers();
}


SpringBoot MyBatisののエントリは、以下の提供MyBatisのの設定パラメータを、私たちはカスタマイズすることが、これらのパラメータを使用することができますMyBatisの設定を。

mybatis.config = MyBatisの設定ファイル名
mybatis.mapperLocations =マッパーファイルの場所
mybatis.typeAliasesPackage =ドメインオブジェクトのパッケージ
mybatis.typeHandlersPackage =ハンドラのパッケージ
mybatis.check-CONFIG-位置= MyBatisの構成が存在チェック
mybatis.executorType =実行のモード。デフォルトはSIMPLEです


application.properties 設定typeAliasesPackage mapperLocations

mybatis.typeAliasesPackage=com.sivalabs.demo.domain
mybatis.mapperLocations=classpath*:**/mappers/*.xml


创建入口点类SpringbootMyBatisDemoApplication.java.

@SpringBootApplication
@MapperScan("com.sivalabs.demo.mappers")
public class SpringbootMyBatisDemoApplication
{
    public static void main(String[] args)
    {
        SpringApplication.run(SpringbootMyBatisDemoApplication.class, args);
    }
}


观察到我们已经使用@MapperScan(“ com.sivalabs.demo.mappers”)批注指定在何处查找Mapper接口。


现在创建一个JUnit测试类并测试我们的UserMapper方法。.

@RunWith(SpringJUnit4Cla***unner.class)
@SpringApplicationConfiguration(SpringbootMyBatisDemoApplication.class)
public class SpringbootMyBatisDemoApplicationTests
{
    @Autowired
    private UserMapper userMapper;
    @Test
    public void findAllUsers() {
        List<User> users = userMapper.findAllUsers();
        assertNotNull(users);
        assertTrue(!users.isEmpty());
    }
    @Test
    public void findUserById() {
        User user = userMapper.findUserById(1);
        assertNotNull(user);
    }
    @Test
    public void createUser() {
        User user = new User(0, "Siva", "[email protected]");
        userMapper.insertUser(user);
        User newUser = userMapper.findUserById(user.getId());
        assertEquals("Siva", newUser.getName());
        assertEquals("[email protected]", newUser.getEmail());
    }
}

 

感谢阅读!

另外近期整理了一套完整的java架构思维导图,分享给同样正在认真学习的每位朋友~

课程大纲优锐课水印简版_副本_副本.jpg

更多JVM、Mysql、Tomcat、Spring Boot、Spring Cloud、Zookeeper、Kafka、RabbitMQ、RockerMQ、Redis、ELK、Git等Java学习资料和视频课程干货欢迎私信我~

おすすめ

転載: blog.51cto.com/14667019/2473428