MyBatisの - 構築するためのデバッグ環境
1.ツールを頼ります
- Mavenの
- ギット
- JDK
- IntelliJ IDEA
2.ソース・プル
公式リポジトリから https://github.com/mybatis/mybatis-3 Fork
自分自身の倉庫。なぜ Fork
?読書の始まりは、ソースコードのデバッグ、私たちはいくつかのメモを書くかもしれませんので、自由に提出することができ、自分の倉庫を持っています。
使用して IntelliJ IDEA
から Fork
倉庫プルコードのうち。
に使用されるこの記事のMyBatisのバージョン 3.5.0-SNAPSHOT
。
3.デバッグ
MyBatisのは、デバッグしたい、非常に便利な、だけ開く必要があります org.apache.ibatis.autoconstructor.AutoConstructorTest
ユニットテストクラスを、ユニットテストの方法のいずれか、右、あなたはデバッグを開始することができます。
もちろん、私たちはより良い、このクラスAutoConstructorTest以下を理解するように考慮して、我々は以下に詳細を解決します。位置AutoConstructorTest autoconstructor
次のようにパッケージは、全体的な構造は次のようになります。
4. MyBatisの-config.xmlの
mybatis-config.xml
、MyBatisの設定ファイル。次のようにXMLは次のとおりです。
|
- 在
<environments />
标签中,配置了事务管理和数据源。考虑到减少外部依赖,所以使用了 HSQLDB 。 - 在
<mappers />
标签中,配置了需要扫描的 Mapper 文件。目前,仅仅扫描AutoConstructorMapper.xml
文件。
5. AutoConstructorMapper.xml
AutoConstructorMapper.xml
,Mapper 文件。代码如下:
|
- 对应的接口为
org.apache.ibatis.autoconstructor.AutoConstructorMapper
。
5.1 AutoConstructorMapper
public interface AutoConstructorMapper { |
- 使用注解的方法,编写 SQL 。
6. CreateDB.sql
CreateDB.sql
文件,用于单元测试里,初始化数据库的数据。如下:
DROP TABLE subject |
- 创建了
subject
表,并初始化三条数据。 - 创建了
extensive_subject
表,并初始化三条数据。
7. POJO
在 AutoConstructorMapper 中,我们可以看到有四个 POJO 类。但是,从 CreateDB.sql
中,实际只有两个表。这个是为什么呢?继续往下看噢。
7.1 AnnotatedSubject
package org.apache.ibatis.autoconstructor; |
- 对应
subject
表。 @AutomapConstructor
注解,表示 MyBatis 查询后,在创建 AnnotatedSubject 对象,使用该构造方法。
7.1.1 PrimitiveSubject
package org.apache.ibatis.autoconstructor; |
- 对应的也是
subject
表。 - 和 AnnotatedSubject 不同,在其构造方法上,
weight
和height
方法参数的类型是int
,而不是 Integer 。那么,如果subject
表中的记录,这两个字段为NULL
时,会创建 PrimitiveSubject 对象报错。
7.1.2 BadSubject
package org.apache.ibatis.autoconstructor; |
- 对应的也是
subject
表。 - 和 AnnotatedSubject 不同,在其构造方法上,
height
方法参数的类型是 Height ,而不是 Integer 。因为 MyBatis 无法识别 Height 类,所以会创建 BadSubject 对象报错。
7.2 ExtensiveSubject
package org.apache.ibatis.autoconstructor; |
- 对应的也是
extensive_subject
表。 - 这是个复杂对象,基本涵盖了各种类型的数据。
8. AutoConstructorTest
org.apache.ibatis.autoconstructor.AutoConstructorTest
,单元测试类。
8.1 setUp
private static SqlSessionFactory sqlSessionFactory; |
- 基づいて、SqlSessionFactoryを作成する
mybatis-config.xml
設定ファイル。 - 基づいて、メモリデータベースに初期データ
CreateDB.sql
SQLファイル。