From edaeec1506294ea519a58ec08a929ad66419bf61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=80=E6=BA=90=E6=B5=B7=E5=93=A5?= Date: Wed, 1 Mar 2023 14:33:34 +0800 Subject: [PATCH] update readme --- readme.md | 46 ++++++++--------- readme_zh.md | 142 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 165 insertions(+), 23 deletions(-) create mode 100644 readme_zh.md diff --git a/readme.md b/readme.md index 784b0581..61e4447c 100644 --- a/readme.md +++ b/readme.md @@ -1,19 +1,19 @@ -# Mybatis-Flex 一个优雅的 Mybatis 增强框架 +# Mybatis-Flex is an elegant Mybatis Enhancement Framework. -## 特征 +## Features -- 1、很轻量,整个框架只依赖 Mybatis 再无其他任何第三方依赖 -- 2、Entity 类基本的增删改查、分页查询 -- 3、Row 通用映射支持,可以无需实体类对数据库进行增删改查 -- 4、支持多种数据库类型,自由通过方言持续扩展 -- 5、支持联合主键,以及不同的主键下的主键内容生成策略 -- 6、极其友好的 SQL 联动查询,IDE 自动提示不再担心出错 -- 7、以及更多小惊喜 +- 1、Mybatis-Flex is very lightweight, and it only depends on Mybatis and no other third-party dependencies +- 2、Basic CRUD operator and paging query of Entity class +- 3、Row mapping support, you can add, delete, modify and query the database without entity classes +- 4、Support multiple databases, and expand through dialects flexibly. +- 5、Support combined primary keys and different primary key content generation strategies +- 6、Extremely friendly SQL query, IDE automatically prompts and no worries about mistakes +- 7、More little surprises ## hello world -**实体类** +**Entity Class** ```java @@ -30,17 +30,17 @@ public class Account { } ``` -**AccountMapper 类** +**AccountMapper Class** ```java public interface AccountMapper extends BaseMapper { - //只需定义 Mapper 接口即可,可以无任何内容。 + //only Mapper interface define. } ``` **Hello world** -示例 1:查询 1 条数据 +e.g. 1: query 1 data ```java class HelloWorld { public static void main(String... args) { @@ -56,7 +56,7 @@ class HelloWorld { .start(); - //示例1:查询 id=100 条数据 + //id=100 Account account = MybatisFlexBootstrap.getInstance() .execute(AccountMapper.class, mapper -> mapper.selectOneById(100) @@ -65,7 +65,7 @@ class HelloWorld { } ``` -示例2:查询列表 +e.g.2: query list ```java class HelloWorld { @@ -81,17 +81,17 @@ class HelloWorld { .addMapper(AccountMapper.class) .start(); - //示例2:通过 QueryWrapper 构建条件查询数据列表 + //use QueryWrapper to build query conditions QueryWrapper query = QueryWrapper.create() .select() .from(ACCOUNT) .where(ACCOUNT.ID.ge(100)) - .and(ACCOUNT.USER_NAME.like("张").or(ACCOUNT.USER_NAME.like("李"))); + .and(ACCOUNT.USER_NAME.like("zhang").or(ACCOUNT.USER_NAME.like("li"))); - // 执行 SQL: + // execute SQL: // ELECT * FROM `tb_account` // WHERE `tb_account`.`id` >= 100 - // AND (`tb_account`.`user_name` LIKE '%张%' OR `tb_account`.`user_name` LIKE '%李%' ) + // AND (`tb_account`.`user_name` LIKE '%zhang%' OR `tb_account`.`user_name` LIKE '%li%' ) List accounts = MybatisFlexBootstrap.getInstance() .execute(AccountMapper.class, mapper -> mapper.selectListByQuery(query) @@ -101,7 +101,8 @@ class HelloWorld { } ``` -示例3:分页查询 +e.g.3: paging query + ```java class HelloWorld { public static void main(String... args) { @@ -116,8 +117,7 @@ class HelloWorld { .addMapper(AccountMapper.class) .start(); - // 示例3:分页查询 - // 查询第 5 页,每页 10 条数据,通过 QueryWrapper 构建条件查询 + //use QueryWrapper to build query conditions QueryWrapper query = QueryWrapper.create() .select() .from(ACCOUNT) @@ -125,7 +125,7 @@ class HelloWorld { .and(ACCOUNT.USER_NAME.like("张").or(ACCOUNT.USER_NAME.like("李"))) .orderBy(ACCOUNT.ID.desc()); - // 执行 SQL: + // execute SQL: // ELECT * FROM `tb_account` // WHERE `tb_account`.`id` >= 100 // AND (`tb_account`.`user_name` LIKE '%张%' OR `tb_account`.`user_name` LIKE '%李%' ) diff --git a/readme_zh.md b/readme_zh.md new file mode 100644 index 00000000..784b0581 --- /dev/null +++ b/readme_zh.md @@ -0,0 +1,142 @@ + +# Mybatis-Flex 一个优雅的 Mybatis 增强框架 + +## 特征 + +- 1、很轻量,整个框架只依赖 Mybatis 再无其他任何第三方依赖 +- 2、Entity 类基本的增删改查、分页查询 +- 3、Row 通用映射支持,可以无需实体类对数据库进行增删改查 +- 4、支持多种数据库类型,自由通过方言持续扩展 +- 5、支持联合主键,以及不同的主键下的主键内容生成策略 +- 6、极其友好的 SQL 联动查询,IDE 自动提示不再担心出错 +- 7、以及更多小惊喜 + +## hello world + +**实体类** + +```java + +@Table("tb_account") +public class Account { + + @Id() + private Long id; + private String userName; + private Date birthday; + private int sex; + + //getter setter +} +``` + +**AccountMapper 类** + +```java +public interface AccountMapper extends BaseMapper { + //只需定义 Mapper 接口即可,可以无任何内容。 +} +``` + +**Hello world** + +示例 1:查询 1 条数据 +```java +class HelloWorld { + public static void main(String... args) { + + HikariDataSource dataSource = new HikariDataSource(); + dataSource.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/mybatis-flex"); + dataSource.setUsername("username"); + dataSource.setPassword("password"); + + MybatisFlexBootstrap.getInstance() + .setDatasource(dataSource) + .addMapper(AccountMapper.class) + .start(); + + + //示例1:查询 id=100 条数据 + Account account = MybatisFlexBootstrap.getInstance() + .execute(AccountMapper.class, mapper -> + mapper.selectOneById(100) + ); + } +} +``` + +示例2:查询列表 + +```java +class HelloWorld { + public static void main(String... args) { + + HikariDataSource dataSource = new HikariDataSource(); + dataSource.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/mybatis-flex"); + dataSource.setUsername("username"); + dataSource.setPassword("password"); + + MybatisFlexBootstrap.getInstance() + .setDatasource(dataSource) + .addMapper(AccountMapper.class) + .start(); + + //示例2:通过 QueryWrapper 构建条件查询数据列表 + QueryWrapper query = QueryWrapper.create() + .select() + .from(ACCOUNT) + .where(ACCOUNT.ID.ge(100)) + .and(ACCOUNT.USER_NAME.like("张").or(ACCOUNT.USER_NAME.like("李"))); + + // 执行 SQL: + // ELECT * FROM `tb_account` + // WHERE `tb_account`.`id` >= 100 + // AND (`tb_account`.`user_name` LIKE '%张%' OR `tb_account`.`user_name` LIKE '%李%' ) + List accounts = MybatisFlexBootstrap.getInstance() + .execute(AccountMapper.class, mapper -> + mapper.selectListByQuery(query) + ); + + } +} +``` + +示例3:分页查询 +```java +class HelloWorld { + public static void main(String... args) { + + HikariDataSource dataSource = new HikariDataSource(); + dataSource.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/mybatis-flex"); + dataSource.setUsername("username"); + dataSource.setPassword("password"); + + MybatisFlexBootstrap.getInstance() + .setDatasource(dataSource) + .addMapper(AccountMapper.class) + .start(); + + // 示例3:分页查询 + // 查询第 5 页,每页 10 条数据,通过 QueryWrapper 构建条件查询 + QueryWrapper query = QueryWrapper.create() + .select() + .from(ACCOUNT) + .where(ACCOUNT.ID.ge(100)) + .and(ACCOUNT.USER_NAME.like("张").or(ACCOUNT.USER_NAME.like("李"))) + .orderBy(ACCOUNT.ID.desc()); + + // 执行 SQL: + // ELECT * FROM `tb_account` + // WHERE `tb_account`.`id` >= 100 + // AND (`tb_account`.`user_name` LIKE '%张%' OR `tb_account`.`user_name` LIKE '%李%' ) + // ORDER BY `tb_account`.`id` DESC + // LIMIT 40,10 + Page accounts = MybatisFlexBootstrap.getInstance() + .execute(AccountMapper.class, mapper -> + mapper.paginate(5, 10, query) + ); + + } +} +``` +