Spring Boot統合xml方式を用いたMyBatis
5785 ワード
公式サイトにspring bootプロジェクトを新規作成し、IDEにインポート
コンフィギュレーション を追加 を構成する. resourcesフォルダにmappingフォルダとMybatisConfig.xmlプロファイル を追加
MybatisConfig.xmlファイル自動スキャン を構成する.
MyBatisの使用 Mysqlには、id(BIGINT)、name(VARCHAR)、age(INT)フィールドを含むUserテーブルが作成される.同時に、マッピングオブジェクトUser を作成する. Userマッピングの操作UserMapperを作成し、後続ユニットのテスト検証のために、挿入と照会の操作 を実現する. mappingフォルダにマッピングファイルUserMapper.xml を作成するユニットテストの作成 テストロジック:name=AAA、age=20のレコードを挿入し、name=AAAに基づいてクエリーし、ageが20 であるかどうかを判断する.テストはロールバックデータを終了し、テストユニットが毎回運行するデータ環境が独立して であることを保証する.
ページをめくるプラグインを追加 を加える. MybatisConfig.xmlに を加える を追加する. を追加テストケース を作成
実行結果を表示
プロジェクトアドレス
コンフィギュレーション
pom
ファイルに依存
org.springframework.boot
spring-boot-starter-jdbc
org.mybatis.spring.boot
mybatis-spring-boot-starter
1.3.1
mysql
mysql-connector-java
application.properties
ファイルでデータソースとmybatisスキャンパスとプロファイルパスspring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
mybatis.configLocation=classpath:MybatisConfig.xml
mybatis.mapperLocations=classpath:mapping/*.xml
MybatisConfig.xmlファイル
@SpringBootApplication
@MapperScan("com.learn.dao")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
MyBatisの使用
public class User {
private Long id;
private String name;
private Integer age;
// getter setter
}
package com.learn.dao;
public interface UserMapper {
User findByName(@Param("name") String name);
int insert(@Param("name") String name, @Param("age") Integer age);
}
INSERT INTO USER(NAME, AGE) VALUES(#{name}, #{age})
@RunWith(SpringRunner.class)
@SpringBootTest
@Transactional
public class ApplicationTests {
@Autowired
private UserMapper userMapper;
@Test
@Rollback
public void findByName() throws Exception {
userMapper.insert("AAA", 20);
User u = userMapper.findByName("AAA");
Assert.assertEquals(20, u.getAge().intValue());
}
}
ページをめくるプラグインを追加
pom
ファイルに依存
com.github.miemiedev
mybatis-paginator
1.2.17
UserMapper
にインタフェースfindAll
public interface UserMapper {
List findAll(PageBounds pageBounds);
}
UserMapper.xml
にマッピング
@RunWith(SpringRunner.class)
@SpringBootTest
@Transactional
public class ApplicationTests {
@Resource
private UserMapper userMapper;
@Test
@Rollback
public void findAll() throws Exception {
userMapper.insert(" ", 21);
userMapper.insert(" ", 22);
userMapper.insert(" ", 23);
userMapper.insert(" ", 24);
userMapper.insert(" ", 25);
userMapper.insert(" ", 26);
userMapper.insert(" ", 27);
PageBounds pageBounds = new PageBounds(1, 5, Order.formString("age.desc"));
PageList users = (PageList) userMapper.findAll(pageBounds);
System.out.println("--------------------page-------------------------");
System.out.println(users);
System.out.println(" :" + users.getPaginator().getTotalCount());
System.out.println(" :" + users.getPaginator().getTotalPages());
System.out.println(" :" + users.getPaginator().getPage());
System.out.println(" :" + users.getPaginator().getLimit());
System.out.println("--------------------end-------------------------");
}
}
実行結果を表示
--------------------page-------------------------
[User{id=58, name=' ', age=27}, User{id=57, name=' ', age=26}, User{id=56, name=' ', age=25}, User{id=55, name=' ', age=24}, User{id=54, name=' ', age=23}]
:7
:2
:1
:5
--------------------end-------------------------
プロジェクトアドレス