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架构思维导图,分享给同样正在认真学习的每位朋友~
更多JVM、Mysql、Tomcat、Spring Boot、Spring Cloud、Zookeeper、Kafka、RabbitMQ、RockerMQ、Redis、ELK、Git等Java学习资料和视频课程干货欢迎私信我~