デシベルMyBatisの変更検索操作の統合を達成するために、前述の削除をSpringBoot、2つの方法のXMLマッパーインタフェースに実装されたアノテーションを与えられている、エレガントな記事を使用していないことを説明した注釈の実施形態キルxmlファイルが、しかしmybatsプラスユースケース、簡略化され、従来のCRUD操作
I.環境
本明細書で使用される場合、SpringBootバージョンは2.2.1.RELEASE
、MyBatisのプラスバージョン3.2.0
は、データベースはMySQLのある5+
ビルド1.プロジェクト
公式チュートリアルはSpringBootプロジェクトを作成することをお勧めします。直接のMavenプロジェクトを作成する場合は、以下の内容を設定します、あなたのコピーpom.xml
のを
- 主な導入がある
mybatis-spring-boot-starter
窒息構成を低減することが可能
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</pluginManagement>
</build>
<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/libs-snapshot-local</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/libs-milestone-local</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>spring-releases</id>
<name>Spring Releases</name>
<url>https://repo.spring.io/libs-release-local</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
2. [設定情報
ではapplication.yml
、設定ファイル、設定DBのビットを追加
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/story?useUnicode=true&characterEncoding=UTF-8&useSSL=false
username: root
password:
次に、後続のCURDために(まだDB借りブログシリーズで動作する前に、テーブル構造)テストテーブルを作成、以下の結果情報テーブル
DROP TABLE IF EXISTS `money`;
CREATE TABLE `money` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL DEFAULT '' COMMENT '用户名',
`money` int(26) NOT NULL DEFAULT '0' COMMENT '有多少钱',
`is_deleted` tinyint(1) NOT NULL DEFAULT '0',
`create_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
II。統合の例
MyBatisのプラスとMyBatisのを使用しての姿勢いくつかの違いがあり、次のような手段が存在していないgenerator
直接コード行とケースを手
1. PO
POオブジェクトを対応するテーブルを作成します。 MoneyPo
@Data
public class MoneyPo {
private Integer id;
private String name;
private Long money;
private Integer isDeleted;
private Timestamp createAt;
private Timestamp updateAt;
}
2. DAOインタフェース
テーブルのオペレータインタフェース、およびこのインターフェイスは異なるMyBatisの継承であるBaseMapper
CURDは、テーブルのインタフェースの単一の操作が付属した後、基本的に追加のインタフェースを定義する必要がなく、相互作用は、DBを達成することができます
public interface MoneyMapper extends BaseMapper<MoneyPo> {
}
- ことに注意してください
BaseMapper
オブジェクトのパラメータは、テーブルPOに対応
3.テスト
上記の完了後、統合プロセスは、その後、我々はテストセッションを入力して、はい、それは簡単です、基本的に終了されるだろう
最初は、私たちは、起動クラスに追加された@MapperScan
ので、DAOインタフェースを追加する必要はありません、コメントを@Mapper
注釈付きで
@SpringBootApplication
@MapperScan("com.git.hui.boot.mybatisplus.mapper")
public class Application {
public Application(MoneyRepository repository) {
repository.testMapper();
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
:問題の次のコードは、公式ドキュメントを参照することができますのためのテストケースについて、我々は、フォーカスが紙の上ではありませんので、MyBatisのプラスの使用について説明し、次の4つの基本的なCRUD操作のケースを紹介しますhttps://mp.baomidou.com/guide/を
@Component
public class MoneyRepository {
@Autowired
private MoneyMapper moneyMapper;
private Random random = new Random();
public void testDemo() {
MoneyPo po = new MoneyPo();
po.setName("mybatis plus user");
po.setMoney((long) random.nextInt(12343));
po.setIsDeleted(0);
// 添加一条数据
moneyMapper.insert(po);
// 查询
List<MoneyPo> list =
moneyMapper.selectList(new QueryWrapper<MoneyPo>().lambda().eq(MoneyPo::getName, po.getName()));
System.out.println("after insert: " + list);
// 修改
po.setMoney(po.getMoney() + 300);
moneyMapper.updateById(po);
System.out.println("after update: " + moneyMapper.selectById(po.getId()));
// 删除
moneyMapper.deleteById(po.getId());
// 查询
Map<String, Object> queryMap = new HashMap<>(2);
queryMap.put("name", po.getName());
System.out.println("after delete: " + moneyMapper.selectByMap(queryMap));
}
}
出力
II。その他
プロジェクト・スコープ
- プロジェクト:https://github.com/liuyueyi/spring-boot-demo
- 例:https://github.com/liuyueyi/spring-boot-demo/blob/master/spring-boot/105-mybatis-plus
1.灰色のブログ
本は良いとして、上記、により制限され、個人能力に、純粋な言葉の一つであるされていない、すべてを信じて、それは避けられない欠落やミス、などのバグを見つけたり、より良い提案を歓迎批判と寛大な感謝されていがあります
ここでは灰色個人のブログ、ブログ内のすべての研究と仕事を記録し、周りに行くことを歓迎
- 灰色のブログ個人のブログhttps://blog.hhui.top
- 灰色のブログ-春のテーマのブログhttp://spring.hhui.top