From 470b7c5ce52420c11612ed1d04de0c3fafd5ca6d Mon Sep 17 00:00:00 2001 From: noear Date: Fri, 18 Oct 2024 11:02:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20mybatis-plus=20solon=20plu?= =?UTF-8?q?gin=20=E5=8D=95=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mybatis-plus-solon-plugin-test/build.gradle | 9 ++ .../mybatisplus/solon/test/AnnoTest.java | 23 +++ .../mybatisplus/solon/test/InsertTest.java | 25 +++ .../mybatisplus/solon/test/PageTest.java | 17 ++ .../solon/test/PlusServiceTest.java | 88 ++++++++++ .../mybatisplus/solon/test/PlusTest.java | 56 +++++++ .../mybatisplus/solon/test/TranTest.java | 153 ++++++++++++++++++ .../mybatisplus/solon/test/app/Config.java | 48 ++++++ .../mybatisplus/solon/test/app/DemoApp.java | 11 ++ .../test/app/controller/DemoController.java | 23 +++ .../test/app/controller/PageController.java | 26 +++ .../test/app/controller/PlusController.java | 22 +++ .../test/app/controller/TranController.java | 119 ++++++++++++++ .../test/app/dso/MetaObjectHandlerImpl.java | 22 +++ .../MybatisSqlSessionFactoryBuilderImpl.java | 16 ++ .../solon/test/app/dso/mapper/AppxMapper.java | 26 +++ .../test/app/dso/mapper/AppxMapper2.java | 10 ++ .../test/app/dso/mapper/AppxMapperPlus.java | 10 ++ .../test/app/dso/mapper/AppxMapperPlusEx.java | 10 ++ .../solon/test/app/dso/mapper/UserMapper.java | 12 ++ .../app/dso/mybatisplus_ext/MyBaseMapper.java | 6 + .../mybatisplus_ext/MyLogicSqlInjector.java | 26 +++ .../test/app/dso/service/AppService.java | 50 ++++++ .../test/app/dso/service/AppServicePlus.java | 11 ++ .../app/dso/service/AppServicePlusImpl.java | 13 ++ .../test/app/dso/service/TestService.java | 14 ++ .../test/app/dso/service/TestServiceBase.java | 12 ++ .../solon/test/app/model/AppxModel.java | 34 ++++ .../solon/test/app/model/DbColumn.java | 72 +++++++++ .../solon/test/app/model/DbTable.java | 19 +++ .../solon/test/app/model/UserModel.java | 22 +++ .../src/test/resources/app.yml | 27 ++++ .../src/test/resources/db.sql | 45 ++++++ .../src/test/resources/mybatis/AppxMapper.xml | 24 +++ 34 files changed, 1101 insertions(+) create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/AnnoTest.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/InsertTest.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/PageTest.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/PlusServiceTest.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/PlusTest.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/TranTest.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/Config.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/DemoApp.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/controller/DemoController.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/controller/PageController.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/controller/PlusController.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/controller/TranController.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/MetaObjectHandlerImpl.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/MybatisSqlSessionFactoryBuilderImpl.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mapper/AppxMapper.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mapper/AppxMapper2.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mapper/AppxMapperPlus.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mapper/AppxMapperPlusEx.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mapper/UserMapper.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mybatisplus_ext/MyBaseMapper.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mybatisplus_ext/MyLogicSqlInjector.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/service/AppService.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/service/AppServicePlus.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/service/AppServicePlusImpl.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/service/TestService.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/service/TestServiceBase.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/model/AppxModel.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/model/DbColumn.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/model/DbTable.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/model/UserModel.java create mode 100644 mybatis-plus-solon-plugin-test/src/test/resources/app.yml create mode 100644 mybatis-plus-solon-plugin-test/src/test/resources/db.sql create mode 100644 mybatis-plus-solon-plugin-test/src/test/resources/mybatis/AppxMapper.xml diff --git a/mybatis-plus-solon-plugin-test/build.gradle b/mybatis-plus-solon-plugin-test/build.gradle index 7c26179..5a504b9 100644 --- a/mybatis-plus-solon-plugin-test/build.gradle +++ b/mybatis-plus-solon-plugin-test/build.gradle @@ -3,4 +3,13 @@ description "mybatis-plus solon plugin test" dependencies { api project(":mybatis-plus-solon-plugin") + api("org.noear:solon-web:${solonVersion}") + api("org.noear:solon-logging-simple:${solonVersion}") + api("org.noear:solon-data-sqlutils:${solonVersion}") + + api("org.noear:solon-test:${solonVersion}") + + api("com.zaxxer:HikariCP:4.0.3") + api("com.h2database:h2:2.3.232") + api("org.projectlombok:lombok:1.18.34") } diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/AnnoTest.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/AnnoTest.java new file mode 100644 index 0000000..091cff8 --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/AnnoTest.java @@ -0,0 +1,23 @@ +package com.baomidou.mybatisplus.solon.test; + +import com.baomidou.mybatisplus.solon.test.app.DemoApp; +import com.baomidou.mybatisplus.solon.test.app.dso.mapper.AppxMapper; +import org.apache.ibatis.solon.annotation.Db; +import org.junit.jupiter.api.Test; +import org.noear.solon.test.SolonTest; + +/** + * @author noear 2021/5/16 created + */ + +@SolonTest(DemoApp.class) +public class AnnoTest { + + @Db + AppxMapper appxMapper; + + @Test + public void test() { + assert appxMapper.listTables().size() > 0; + } +} diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/InsertTest.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/InsertTest.java new file mode 100644 index 0000000..15e00a1 --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/InsertTest.java @@ -0,0 +1,25 @@ +package com.baomidou.mybatisplus.solon.test; + +import com.baomidou.mybatisplus.solon.test.app.DemoApp; +import com.baomidou.mybatisplus.solon.test.app.dso.mapper.AppxMapper; +import org.apache.ibatis.solon.annotation.Db; +import org.junit.jupiter.api.Test; +import org.noear.solon.test.SolonTest; + +/** + * @author noear 2021/5/16 created + */ + +@SolonTest(DemoApp.class) +public class InsertTest { + + @Db + AppxMapper appxMapper; + + @Test + public void test(){ + + long id = appxMapper.appx_add2(12912); + System.out.println(id); + } +} diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/PageTest.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/PageTest.java new file mode 100644 index 0000000..4290c85 --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/PageTest.java @@ -0,0 +1,17 @@ +package com.baomidou.mybatisplus.solon.test; + +import com.baomidou.mybatisplus.solon.test.app.DemoApp; +import org.junit.jupiter.api.Test; +import org.noear.snack.ONode; +import org.noear.solon.test.HttpTester; +import org.noear.solon.test.SolonTest; + + +@SolonTest(DemoApp.class) +public class PageTest extends HttpTester { + @Test + public void test() throws Exception { + String json = path("/page/test").get(); + assert ONode.loadStr(json).get("records").count() == 2; + } +} diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/PlusServiceTest.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/PlusServiceTest.java new file mode 100644 index 0000000..9b2ca40 --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/PlusServiceTest.java @@ -0,0 +1,88 @@ +package com.baomidou.mybatisplus.solon.test; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.solon.plugins.pagination.Page; +import com.baomidou.mybatisplus.solon.test.app.DemoApp; +import com.baomidou.mybatisplus.solon.test.app.dso.mapper.AppxMapperPlus; +import com.baomidou.mybatisplus.solon.test.app.dso.mapper.AppxMapperPlusEx; +import com.baomidou.mybatisplus.solon.test.app.dso.service.AppServicePlus; +import com.baomidou.mybatisplus.solon.test.app.model.AppxModel; +import org.apache.ibatis.solon.annotation.Db; +import org.junit.jupiter.api.Test; +import org.noear.solon.annotation.Inject; +import org.noear.solon.test.SolonTest; + +/** + * @author noear 2022/3/28 created + */ +@SolonTest(DemoApp.class) +public class PlusServiceTest { + + @Db + AppServicePlus appServicePlus; + @Inject + AppServicePlus appServicePlus2; + + @Db + AppxMapperPlus appxMapperPlus; + @Db + AppxMapperPlus appxMapperPlus2; + + @Db + AppxMapperPlusEx appxMapperPlusEx; + @Db + AppxMapperPlusEx appxMapperPlusEx2; + + @Test + public void selectById() { + AppxModel app = appServicePlus.getById(2); + System.out.println(app); + + assert app != null; + assert app.getAppId() == 2; + } + + @Test + public void selectById1() { + AppxModel app = appxMapperPlus.selectById(2); + System.out.println(app); + + assert app != null; + assert app.getAppId() == 2; + } + + @Test + public void selectById2() { + AppxModel app = appxMapperPlusEx.selectById(2); + System.out.println(app); + + assert app != null; + assert app.getAppId() == 2; + } + + @Test + public void selectOne() { + AppxModel app = appServicePlus.getOne(new QueryWrapper().eq("app_id",2)); + System.out.println(app); + + assert app != null; + assert app.getAppId() == 2; + } + + + @Test + public void selectPage() { + Page page = new Page<>(1, 10); + IPage iPage = appServicePlus.page(page, new QueryWrapper<>()); + + + assert iPage != null; + + System.out.println("iPage.getRecords().size(): " + iPage.getRecords().size()); + assert iPage.getRecords().size() > 0; + + System.out.println("iPage.getTotal(): " + iPage.getTotal()); + assert iPage.getTotal() > 0; + } +} diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/PlusTest.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/PlusTest.java new file mode 100644 index 0000000..0c1a0ab --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/PlusTest.java @@ -0,0 +1,56 @@ +package com.baomidou.mybatisplus.solon.test; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.solon.plugins.pagination.Page; +import com.baomidou.mybatisplus.solon.test.app.DemoApp; +import com.baomidou.mybatisplus.solon.test.app.dso.mapper.AppxMapper2; +import com.baomidou.mybatisplus.solon.test.app.model.AppxModel; +import org.junit.jupiter.api.Test; +import org.noear.solon.annotation.Inject; +import org.noear.solon.test.SolonTest; + + +/** + * @author noear 2021/9/3 created + */ +@SolonTest(DemoApp.class) +public class PlusTest { + + @Inject + AppxMapper2 appxMapper2; + + @Test + public void selectById() { + AppxModel app = appxMapper2.selectById(2); + System.out.println(app); + + assert app != null; + assert app.getAppId() == 2; + } + + @Test + public void selectOne() { + AppxModel app = appxMapper2.selectOne(new QueryWrapper().eq("app_id",2)); + System.out.println(app); + + assert app != null; + assert app.getAppId() == 2; + } + + + @Test + public void selectPage() { + Page page = new Page<>(1, 10); + IPage iPage = appxMapper2.selectPage(page, new QueryWrapper<>()); + + + assert iPage != null; + + System.out.println("iPage.getRecords().size(): " + iPage.getRecords().size()); + assert iPage.getRecords().size() > 0; + + System.out.println("iPage.getTotal(): " + iPage.getTotal()); + assert iPage.getTotal() > 0; + } +} diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/TranTest.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/TranTest.java new file mode 100644 index 0000000..5c7887b --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/TranTest.java @@ -0,0 +1,153 @@ +package com.baomidou.mybatisplus.solon.test; + +import com.baomidou.mybatisplus.solon.test.app.DemoApp; +import org.junit.jupiter.api.Test; +import org.noear.solon.annotation.Inject; +import org.noear.solon.data.sql.SqlUtils; +import org.noear.solon.test.HttpTester; +import org.noear.solon.test.SolonTest; + +import java.sql.SQLException; + +@SolonTest(DemoApp.class) +public class TranTest extends HttpTester { + @Inject + SqlUtils sqlUtils; + + private void clear() throws Exception { + sqlUtils.execute("DELETE FROM test"); + } + + private long count() throws SQLException { + return (Long) sqlUtils.selectValue("select count(1) from test"); + } + + @Test + public void test() throws Exception { + clear(); + path("/tran/test").get(); + path("/tran/test").get(); + path("/tran/test").get(); + assert count() == 6; + } + + @Test + public void test2() throws Exception { + clear(); + path("/tran/test2").get(); + path("/tran/test2").get(); + path("/tran/test2").get(); + assert count() == 0; + } + + @Test + public void test11() throws Exception { + clear(); + path("/tran/test11").get(); + path("/tran/test11").get(); + path("/tran/test11").get(); + assert count() == 3; + } + + @Test + public void test12() throws Exception { + clear(); + path("/tran/test12").get(); + path("/tran/test12").get(); + path("/tran/test12").get(); + assert count() == 3; + } + + @Test + public void test21() throws Exception { + clear(); + path("/tran/test21").get(); + path("/tran/test21").get(); + path("/tran/test21").get(); + assert count() == 3; + } + + @Test + public void test22() throws Exception { + clear(); + path("/tran/test22").get(); + path("/tran/test22").get(); + path("/tran/test22").get(); + long count = count(); + System.out.println(count); + assert count == 0; + } + + + @Test + public void test41() throws Exception { + clear(); + path("/tran/test41").get(); + path("/tran/test41").get(); + path("/tran/test41").get(); + + long count = count(); + System.out.println(count); + assert count == 0; + } + + @Test + public void test51() throws Exception { + clear(); + path("/tran/test51").get(); + path("/tran/test51").get(); + path("/tran/test51").get(); + + long count = count(); + System.out.println(count); + assert count == 3; + } + + @Test + public void test61() throws Exception { + clear(); + path("/tran/test61").get(); + path("/tran/test61").get(); + path("/tran/test61").get(); + + long count = count(); + System.out.println(count); + assert count == 0; + } + + @Test + public void test63() throws Exception { + clear(); + path("/tran/test63").get(); + path("/tran/test63").get(); + path("/tran/test63").get(); + + long count = count(); + System.out.println(count); + assert count == 3; + } + + @Test + public void test71() throws Exception { + clear(); + path("/tran/test71").get(); + path("/tran/test71").get(); + path("/tran/test71").get(); + + long count = count(); + System.out.println(count); + assert count == 3; + } + + @Test + public void test73() throws Exception { + clear(); + path("/tran/test73").get(); + path("/tran/test73").get(); + path("/tran/test73").get(); + + long count = count(); + System.out.println(count); + assert count == 0; + } +} diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/Config.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/Config.java new file mode 100644 index 0000000..34d0f77 --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/Config.java @@ -0,0 +1,48 @@ +package com.baomidou.mybatisplus.solon.test.app; + +import com.baomidou.mybatisplus.annotation.DbType; +import com.baomidou.mybatisplus.core.MybatisConfiguration; +import com.baomidou.mybatisplus.core.config.GlobalConfig; +import com.baomidou.mybatisplus.solon.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.solon.plugins.inner.PaginationInnerInterceptor; +import com.baomidou.mybatisplus.solon.test.app.dso.mybatisplus_ext.MyLogicSqlInjector; +import org.apache.ibatis.solon.annotation.Db; +import org.noear.solon.annotation.Bean; +import org.noear.solon.annotation.Configuration; +import org.noear.solon.annotation.Inject; +import org.noear.solon.core.util.ResourceUtil; +import org.noear.solon.data.sql.SqlUtils; + +@Configuration +public class Config { + @Bean + public void db1_cfg( + @Inject SqlUtils sqlUtils, + @Db("db1") MybatisConfiguration cfg, + @Db("db1") GlobalConfig globalConfig) throws Exception { + + String sql = ResourceUtil.getResourceAsString("db.sql"); + + for (String s1 : sql.split(";")) { + if (s1.trim().length() > 10) { + sqlUtils.execute(s1); + } + } + + //// + + + MybatisPlusInterceptor plusInterceptor = new MybatisPlusInterceptor(); + plusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2)); + + cfg.setCacheEnabled(false); + cfg.addInterceptor(plusInterceptor); + + globalConfig.setSqlInjector(new MyLogicSqlInjector()); + } + +// @Bean +// public MybatisSqlSessionFactoryBuilder factoryBuilderNew(){ +// return new MybatisSqlSessionFactoryBuilderImpl(); +// } +} diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/DemoApp.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/DemoApp.java new file mode 100644 index 0000000..9e83504 --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/DemoApp.java @@ -0,0 +1,11 @@ +package com.baomidou.mybatisplus.solon.test.app; + +import org.noear.solon.Solon; +import org.noear.solon.annotation.SolonMain; + +@SolonMain +public class DemoApp { + public static void main(String[] args) { + Solon.start(DemoApp.class, args); + } +} diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/controller/DemoController.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/controller/DemoController.java new file mode 100644 index 0000000..78c2c92 --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/controller/DemoController.java @@ -0,0 +1,23 @@ +package com.baomidou.mybatisplus.solon.test.app.controller; + +import com.baomidou.mybatisplus.solon.test.app.dso.mapper.AppxMapper; +import com.baomidou.mybatisplus.solon.test.app.model.AppxModel; +import org.apache.ibatis.solon.annotation.Db; +import org.noear.solon.annotation.Controller; +import org.noear.solon.annotation.Mapping; + +/** + * 分包模式,一开始就被会话工厂mapperScan()并关联好了 + * */ +@Mapping("/demo/") +@Controller +public class DemoController { + @Db + AppxMapper appxMapper; + + @Mapping("test") + public AppxModel test(){ + return appxMapper.appx_get(); + } + +} diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/controller/PageController.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/controller/PageController.java new file mode 100644 index 0000000..20effa8 --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/controller/PageController.java @@ -0,0 +1,26 @@ +package com.baomidou.mybatisplus.solon.test.app.controller; + +import com.baomidou.mybatisplus.solon.plugins.pagination.Page; +import com.baomidou.mybatisplus.solon.test.app.dso.mapper.AppxMapper; +import com.baomidou.mybatisplus.solon.test.app.model.AppxModel; +import org.apache.ibatis.solon.annotation.Db; +import org.noear.solon.annotation.Controller; +import org.noear.solon.annotation.Mapping; + +/** + * 分面演示(使用sqlhelper组件) + * + * */ +@Mapping("/page/") +@Controller +public class PageController { + @Db + AppxMapper appxMapper; + + @Mapping("test") + public Object test() throws Throwable { + Page page = new Page<>(2, 2); + + return appxMapper.appx_get_page(page); + } +} diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/controller/PlusController.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/controller/PlusController.java new file mode 100644 index 0000000..5e2a149 --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/controller/PlusController.java @@ -0,0 +1,22 @@ +package com.baomidou.mybatisplus.solon.test.app.controller; + +import com.baomidou.mybatisplus.solon.test.app.dso.service.AppServicePlus; +import com.baomidou.mybatisplus.solon.test.app.model.AppxModel; +import org.apache.ibatis.solon.annotation.Db; +import org.noear.solon.annotation.Controller; +import org.noear.solon.annotation.Mapping; + +/** + * @author noear 2022/3/28 created + */ +@Mapping("/plus/") +@Controller +public class PlusController { + @Db + AppServicePlus appServicePlus; + + @Mapping("test") + public AppxModel test() { + return appServicePlus.getById(12); + } +} diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/controller/TranController.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/controller/TranController.java new file mode 100644 index 0000000..05a0e76 --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/controller/TranController.java @@ -0,0 +1,119 @@ +package com.baomidou.mybatisplus.solon.test.app.controller; + +import com.baomidou.mybatisplus.solon.test.app.dso.service.AppService; +import org.noear.solon.annotation.Controller; +import org.noear.solon.annotation.Inject; +import org.noear.solon.annotation.Mapping; +import org.noear.solon.data.annotation.Tran; + +@Mapping("/tran/") +@Controller +public class TranController { + @Inject + AppService appService; + + @Tran + @Mapping("test") + public void test() throws Exception { + //添加会成功 + // + appService.addApp(); + appService.addApp(); + } + + @Tran + @Mapping("test2") + public void test2() throws Exception { + //添加会失败,因为在事务里出异常了 + // + appService.addApp(); + appService.addApp(); + + throw new RuntimeException("不让你加"); + } + + @Mapping("test11") + public void test11() throws Exception { + //添加会成功 + // + appService.addApp2(); + } + + @Mapping("test12") + public void test12() throws Exception { + //添加会成功(因为异常在事务之外) // addApp2 有事务 + // + appService.addApp2(); + + throw new RuntimeException("不让你加;但还是加了:("); + } + + @Tran + @Mapping("test21") + public void test21() throws Exception { + appService.addApp2(); + } + + @Tran + @Mapping("test22") + public void test22() throws Exception { + //添加会失败,因为在事务里出异常了 + // + appService.addApp2(); + + throw new RuntimeException("不让你加"); + } + + @Tran + @Mapping("test41") + public void test41() throws Exception { + //添加会成功 + // + appService.addApp3(); + + throw new RuntimeException("不让你加,但还是成功了:("); + } + + @Tran + @Mapping("test51") + public void test51() throws Exception { + //添加会成功,因为addApp4是独立的新事务 + // + appService.addApp4(); + + throw new RuntimeException("不让你加,但还是成功了:("); + } + + @Tran + @Mapping("test61") + public void test61() throws Exception { + //会失败 + // + appService.addApp5(); + + } + + + @Mapping("test63") + public void test63() throws Exception { + //添加会成功 + // + appService.addApp5(); + } + + @Tran + @Mapping("test71") + public void test71() throws Exception { + //会成功 + // + appService.addApp6(); + + } + + @Mapping("test73") + public void test73() throws Exception { + //会失败 + // + appService.addApp6(); + } +} diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/MetaObjectHandlerImpl.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/MetaObjectHandlerImpl.java new file mode 100644 index 0000000..1c45de5 --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/MetaObjectHandlerImpl.java @@ -0,0 +1,22 @@ +package com.baomidou.mybatisplus.solon.test.app.dso; + +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import org.apache.ibatis.reflection.MetaObject; + +/** + * @author noear 2022/4/17 created + */ +public class MetaObjectHandlerImpl implements MetaObjectHandler { + public MetaObjectHandlerImpl(){ + System.out.println("....MetaObjectHandlerImpl"); + } + @Override + public void insertFill(MetaObject metaObject) { + + } + + @Override + public void updateFill(MetaObject metaObject) { + + } +} diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/MybatisSqlSessionFactoryBuilderImpl.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/MybatisSqlSessionFactoryBuilderImpl.java new file mode 100644 index 0000000..b3f8f7c --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/MybatisSqlSessionFactoryBuilderImpl.java @@ -0,0 +1,16 @@ +package com.baomidou.mybatisplus.solon.test.app.dso; + +import com.baomidou.mybatisplus.core.MybatisSqlSessionFactoryBuilder; +import org.apache.ibatis.session.Configuration; +import org.apache.ibatis.session.SqlSessionFactory; + +/** + * @author noear 2021/10/20 created + */ +public class MybatisSqlSessionFactoryBuilderImpl extends MybatisSqlSessionFactoryBuilder { + @Override + public SqlSessionFactory build(Configuration configuration) { + System.out.println(".进来了."); + return super.build(configuration); + } +} diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mapper/AppxMapper.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mapper/AppxMapper.java new file mode 100644 index 0000000..a1c695d --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mapper/AppxMapper.java @@ -0,0 +1,26 @@ +package com.baomidou.mybatisplus.solon.test.app.dso.mapper; + +import com.baomidou.mybatisplus.solon.plugins.pagination.Page; +import com.baomidou.mybatisplus.solon.test.app.model.AppxModel; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface AppxMapper { + AppxModel appx_get(); + + Page appx_get_page(Page page); + + AppxModel appx_get2(int app_id); + + void appx_add(); + + Long appx_add2(int v1); + + @Select("SELECT * FROM appx") + List> listTables(); +} + diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mapper/AppxMapper2.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mapper/AppxMapper2.java new file mode 100644 index 0000000..2783f00 --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mapper/AppxMapper2.java @@ -0,0 +1,10 @@ +package com.baomidou.mybatisplus.solon.test.app.dso.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.solon.test.app.model.AppxModel; + +/** + * @author noear 2021/9/3 created + */ +public interface AppxMapper2 extends BaseMapper { +} diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mapper/AppxMapperPlus.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mapper/AppxMapperPlus.java new file mode 100644 index 0000000..ab4bcb8 --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mapper/AppxMapperPlus.java @@ -0,0 +1,10 @@ +package com.baomidou.mybatisplus.solon.test.app.dso.mapper; + +import com.baomidou.mybatisplus.solon.test.app.dso.mybatisplus_ext.MyBaseMapper; +import com.baomidou.mybatisplus.solon.test.app.model.AppxModel; + +/** + * @author noear 2022/3/28 created + */ +public interface AppxMapperPlus extends MyBaseMapper { +} diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mapper/AppxMapperPlusEx.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mapper/AppxMapperPlusEx.java new file mode 100644 index 0000000..ce98c49 --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mapper/AppxMapperPlusEx.java @@ -0,0 +1,10 @@ +package com.baomidou.mybatisplus.solon.test.app.dso.mapper; + +import org.apache.ibatis.annotations.Mapper; + +/** + * @author noear 2022/10/5 created + */ +@Mapper +public interface AppxMapperPlusEx extends AppxMapperPlus { +} diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mapper/UserMapper.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mapper/UserMapper.java new file mode 100644 index 0000000..9439e2a --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mapper/UserMapper.java @@ -0,0 +1,12 @@ +package com.baomidou.mybatisplus.solon.test.app.dso.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.solon.test.app.model.UserModel; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author noear 2022/4/5 created + */ +@Mapper +public interface UserMapper extends BaseMapper { +} diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mybatisplus_ext/MyBaseMapper.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mybatisplus_ext/MyBaseMapper.java new file mode 100644 index 0000000..cfcd4dd --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mybatisplus_ext/MyBaseMapper.java @@ -0,0 +1,6 @@ +package com.baomidou.mybatisplus.solon.test.app.dso.mybatisplus_ext; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +public interface MyBaseMapper extends BaseMapper { +} diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mybatisplus_ext/MyLogicSqlInjector.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mybatisplus_ext/MyLogicSqlInjector.java new file mode 100644 index 0000000..e061930 --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/mybatisplus_ext/MyLogicSqlInjector.java @@ -0,0 +1,26 @@ +package com.baomidou.mybatisplus.solon.test.app.dso.mybatisplus_ext; + +import com.baomidou.mybatisplus.core.injector.AbstractMethod; +import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector; +import com.baomidou.mybatisplus.core.injector.methods.SelectById; +import com.baomidou.mybatisplus.core.metadata.TableInfo; + +import java.util.List; + +/** + * 参考官网:https://baomidou.com/pages/42ea4a/ + */ +public class MyLogicSqlInjector extends DefaultSqlInjector { + + /** + * 如果只需增加方法,保留MP自带方法 + * 可以super.getMethodList() 再add + * @return + */ + @Override + public List getMethodList(Class mapperClass, TableInfo tableInfo) { + List methodList = super.getMethodList(mapperClass, tableInfo); + methodList.add(new SelectById()); + return methodList; + } +} \ No newline at end of file diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/service/AppService.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/service/AppService.java new file mode 100644 index 0000000..659583a --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/service/AppService.java @@ -0,0 +1,50 @@ +package com.baomidou.mybatisplus.solon.test.app.dso.service; + +import com.baomidou.mybatisplus.solon.test.app.dso.mapper.AppxMapper; +import org.apache.ibatis.solon.annotation.Db; +import org.noear.solon.annotation.Component; +import org.noear.solon.data.annotation.Tran; +import org.noear.solon.data.tran.TranPolicy; + +@Component +public class AppService { + @Db + AppxMapper sqlMapper1; + + public Object getApp(int app_id) throws Exception { + return sqlMapper1.appx_get2(app_id); + } + + public Object getApp(String app_id) throws Exception { + return sqlMapper1.appx_get2(Integer.parseInt(app_id)); + } + + public void addApp(){ + sqlMapper1.appx_add(); + } + + @Tran + public void addApp2(){ + sqlMapper1.appx_add(); + } + + @Tran(policy = TranPolicy.nested) + public void addApp3(){ + sqlMapper1.appx_add(); + } + + @Tran(policy = TranPolicy.requires_new) + public void addApp4(){ + sqlMapper1.appx_add(); + } + + @Tran(policy = TranPolicy.never) + public void addApp5(){ + sqlMapper1.appx_add(); + } + + @Tran(policy = TranPolicy.mandatory) + public void addApp6(){ + sqlMapper1.appx_add(); + } +} diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/service/AppServicePlus.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/service/AppServicePlus.java new file mode 100644 index 0000000..5c1a122 --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/service/AppServicePlus.java @@ -0,0 +1,11 @@ +package com.baomidou.mybatisplus.solon.test.app.dso.service; + +import com.baomidou.mybatisplus.solon.service.IService; +import com.baomidou.mybatisplus.solon.test.app.model.AppxModel; +//import org.noear.solon.extend.mybatisplus.service.IService; + +/** + * @author noear 2022/3/28 created + */ +public interface AppServicePlus extends IService { +} diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/service/AppServicePlusImpl.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/service/AppServicePlusImpl.java new file mode 100644 index 0000000..a9adf1c --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/service/AppServicePlusImpl.java @@ -0,0 +1,13 @@ +package com.baomidou.mybatisplus.solon.test.app.dso.service; + +import com.baomidou.mybatisplus.solon.service.impl.ServiceImpl; +import com.baomidou.mybatisplus.solon.test.app.dso.mapper.AppxMapperPlusEx; +import com.baomidou.mybatisplus.solon.test.app.model.AppxModel; +import org.noear.solon.annotation.Component; + +/** + * @author noear 2022/3/28 created + */ +@Component +public class AppServicePlusImpl extends ServiceImpl implements AppServicePlus { +} diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/service/TestService.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/service/TestService.java new file mode 100644 index 0000000..2399040 --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/service/TestService.java @@ -0,0 +1,14 @@ +package com.baomidou.mybatisplus.solon.test.app.dso.service; + +import com.baomidou.mybatisplus.solon.test.app.model.AppxModel; +import org.noear.solon.annotation.Component; + +/** + * @author noear 2022/4/26 created + */ +@Component +public class TestService extends TestServiceBase { + public AppxModel getApp(int app_id) throws Exception { + return sqlMapper1.appx_get2(app_id); + } +} diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/service/TestServiceBase.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/service/TestServiceBase.java new file mode 100644 index 0000000..764375a --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/dso/service/TestServiceBase.java @@ -0,0 +1,12 @@ +package com.baomidou.mybatisplus.solon.test.app.dso.service; + +import com.baomidou.mybatisplus.solon.test.app.dso.mapper.AppxMapper; +import org.apache.ibatis.solon.annotation.Db; + +/** + * @author noear 2022/4/26 created + */ +public abstract class TestServiceBase { + @Db + protected AppxMapper sqlMapper1; +} \ No newline at end of file diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/model/AppxModel.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/model/AppxModel.java new file mode 100644 index 0000000..9847f6b --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/model/AppxModel.java @@ -0,0 +1,34 @@ +package com.baomidou.mybatisplus.solon.test.app.model; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +@TableName("appx") +public class AppxModel { + @TableId("app_id") + private Integer appId; + private Integer agroupId; + private String note; + private String appKey; + private Integer arIsExamine; + + public Integer getAgroupId() { + return agroupId; + } + + public Integer getAppId() { + return appId; + } + + public Integer getArIsExamine() { + return arIsExamine; + } + + public String getAppKey() { + return appKey; + } + + public String getNote() { + return note; + } +} diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/model/DbColumn.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/model/DbColumn.java new file mode 100644 index 0000000..6400773 --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/model/DbColumn.java @@ -0,0 +1,72 @@ +package com.baomidou.mybatisplus.solon.test.app.model; + +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +/** + * @author JcYen + * @Date 2020/5/27 + * @Version 1.0 + */ +@Getter +@Setter +@ToString +public class DbColumn { + + /** + * 是否主键 + */ + private Boolean isKey; + + /** + * 是否为空 + */ + private Boolean isNull; + + /** + * 是否创建列 + */ + private Boolean isCreate; + + /** + * 是否更新列 + */ + private Boolean isUpdate; + + /** + * 表名 + */ + private String tableName; + + /** + * 列名 + */ + private String columnName; + + /** + * 数据类型 + */ + private String dataType; + + /** + * 最大长度 + */ + private Long maxLength; + + /** + * 备注 + */ + private String comment; + + /** + * 整数位精确度 + */ + private Integer numericPrecision; + + /** + * 小数位精确度 + */ + private Integer numericScale; + +} diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/model/DbTable.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/model/DbTable.java new file mode 100644 index 0000000..d875a19 --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/model/DbTable.java @@ -0,0 +1,19 @@ +package com.baomidou.mybatisplus.solon.test.app.model; + +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +/** + * @author noear 2021/7/5 created + */ +@Getter +@Setter +@ToString +public class DbTable { + + private String tableName; + + private String tableComment; + +} diff --git a/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/model/UserModel.java b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/model/UserModel.java new file mode 100644 index 0000000..b7d60c4 --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/java/com/baomidou/mybatisplus/solon/test/app/model/UserModel.java @@ -0,0 +1,22 @@ +package com.baomidou.mybatisplus.solon.test.app.model; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Getter; +import lombok.Setter; + +/** + * @author noear 2022/4/5 created + */ +@Setter +@Getter +@TableName("user") +public class UserModel { + @TableId("id") + Long id; + Long userId; + String nickname; + String password; +// @TableLogic + Integer deleted; +} diff --git a/mybatis-plus-solon-plugin-test/src/test/resources/app.yml b/mybatis-plus-solon-plugin-test/src/test/resources/app.yml new file mode 100644 index 0000000..e550d47 --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/resources/app.yml @@ -0,0 +1,27 @@ +solon.app: + name: test-app + group: test + +solon.dataSources: + db1!: + class: "com.zaxxer.hikari.HikariDataSource" + jdbcUrl: "jdbc:h2:mem:test;DB_CLOSE_ON_EXIT=FALSE;MODE=MYSQL;DATABASE_TO_LOWER=TRUE;IGNORECASE=TRUE;CASE_INSENSITIVE_IDENTIFIERS=TRUE" + driverClassName: "org.h2.Driver" + +mybatis.db1: + typeAliases: #支持包名 或 类名 //支持 ** 和 * + - "com.baomidou.mybatisplus.solon.test.app.model.*" + mappers: #支持包名 或 类名 或 xml(.xml结尾)//支持 ** 和 * + - "com.baomidou.mybatisplus.solon.test.app.dso.mapper.*" + - "classpath:mybatis/*.xml" + configuration: + cacheEnabled: false + mapperVerifyEnabled: false + mapUnderscoreToCamelCase: true + logImpl: org.apache.ibatis.logging.nologging.NoLoggingImpl + globalConfig: + banner: false + metaObjectHandler: "com.baomidou.mybatisplus.solon.test.app.dso.MetaObjectHandlerImpl" + dbConfig: + logicDeleteField: "deleted" + logicDeleteValue: "2" diff --git a/mybatis-plus-solon-plugin-test/src/test/resources/db.sql b/mybatis-plus-solon-plugin-test/src/test/resources/db.sql new file mode 100644 index 0000000..1ef951e --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/resources/db.sql @@ -0,0 +1,45 @@ + +CREATE TABLE `appx` ( + `app_id` int NOT NULL AUTO_INCREMENT COMMENT '应用ID', + `app_key` varchar(40) DEFAULT NULL COMMENT '应用访问KEY', + `akey` varchar(40) DEFAULT NULL COMMENT '(用于取代app id 形成的唯一key) //一般用于推广注册之类', + `ugroup_id` int DEFAULT '0' COMMENT '加入的用户组ID', + `agroup_id` int DEFAULT NULL COMMENT '加入的应用组ID', + `name` varchar(50) DEFAULT NULL COMMENT '应用名称', + `note` varchar(50) DEFAULT NULL COMMENT '应用备注', + `ar_is_setting` int NOT NULL DEFAULT '0' COMMENT '是否开放设置', + `ar_is_examine` int NOT NULL DEFAULT '0' COMMENT '是否审核中(0: 没审核 ;1:审核中)', + `ar_examine_ver` int NOT NULL DEFAULT '0' COMMENT '审核 中的版本号', + `log_fulltime` datetime DEFAULT NULL, + PRIMARY KEY (`app_id`) +); + +CREATE TABLE `test` ( + `id` int NOT NULL AUTO_INCREMENT, + `v1` int DEFAULT NULL, + `v2` int DEFAULT NULL, + PRIMARY KEY (`id`) +); + +INSERT INTO `appx` (`app_id`, `app_key`, `akey`, `ugroup_id`, `agroup_id`, `name`, `note`, `ar_is_setting`, `ar_is_examine`, `ar_examine_ver`, `log_fulltime`) VALUES (1, '1', 'a', 1, 1, 'iOS-0', '', 1, 0, 0, '2017-08-25 10:59:44'); +INSERT INTO `appx` (`app_id`, `app_key`, `akey`, `ugroup_id`, `agroup_id`, `name`, `note`, `ar_is_setting`, `ar_is_examine`, `ar_examine_ver`, `log_fulltime`) VALUES (2, '2', 'b', 1, 1, 'Android-0', '', 0, 0, 0, '2017-08-11 18:05:27'); +INSERT INTO `appx` (`app_id`, `app_key`, `akey`, `ugroup_id`, `agroup_id`, `name`, `note`, `ar_is_setting`, `ar_is_examine`, `ar_examine_ver`, `log_fulltime`) VALUES (3, '3', 'c', 1, 1, 'Android-yyb', '000', 1, 0, 0, '2017-08-25 10:59:44'); +INSERT INTO `appx` (`app_id`, `app_key`, `akey`, `ugroup_id`, `agroup_id`, `name`, `note`, `ar_is_setting`, `ar_is_examine`, `ar_examine_ver`, `log_fulltime`) VALUES (4, '4', 'd', 1, 1, 'Android-bd', '', 0, 0, 0, '2017-08-04 17:19:41'); +INSERT INTO `appx` (`app_id`, `app_key`, `akey`, `ugroup_id`, `agroup_id`, `name`, `note`, `ar_is_setting`, `ar_is_examine`, `ar_examine_ver`, `log_fulltime`) VALUES (5, '5', 'e', 1, 1, 'Android-91', '', 0, 0, 0, '2017-08-04 17:16:18'); +INSERT INTO `appx` (`app_id`, `app_key`, `akey`, `ugroup_id`, `agroup_id`, `name`, `note`, `ar_is_setting`, `ar_is_examine`, `ar_examine_ver`, `log_fulltime`) VALUES (6, '6', 'f', 1, 1, 'Android-92', '', 0, 0, 0, '2017-08-04 17:23:45'); +INSERT INTO `appx` (`app_id`, `app_key`, `akey`, `ugroup_id`, `agroup_id`, `name`, `note`, `ar_is_setting`, `ar_is_examine`, `ar_examine_ver`, `log_fulltime`) VALUES (7, '7', 'g', 1, 1, 'Android-93', '', 0, 0, 0, '2017-08-25 10:47:44'); +INSERT INTO `appx` (`app_id`, `app_key`, `akey`, `ugroup_id`, `agroup_id`, `name`, `note`, `ar_is_setting`, `ar_is_examine`, `ar_examine_ver`, `log_fulltime`) VALUES (8, '8', 'h', 1, 1, 'HarmonyOS-hw', NULL, 1, 0, 0, '2017-08-25 10:59:44'); +INSERT INTO `appx` (`app_id`, `app_key`, `akey`, `ugroup_id`, `agroup_id`, `name`, `note`, `ar_is_setting`, `ar_is_examine`, `ar_examine_ver`, `log_fulltime`) VALUES (9, '9', 'i', 1, 1, 'Android-op', '', 0, 0, 0, '2017-08-25 10:47:44'); +INSERT INTO `appx` (`app_id`, `app_key`, `akey`, `ugroup_id`, `agroup_id`, `name`, `note`, `ar_is_setting`, `ar_is_examine`, `ar_examine_ver`, `log_fulltime`) VALUES (10, '10', 'j', 1, 1, 'Android-pp', '', 0, 0, 0, '2017-08-04 17:36:20'); +INSERT INTO `appx` (`app_id`, `app_key`, `akey`, `ugroup_id`, `agroup_id`, `name`, `note`, `ar_is_setting`, `ar_is_examine`, `ar_examine_ver`, `log_fulltime`) VALUES (11, '11', 'k', 1, 1, 'Android-1', '', 0, 0, 0, '2017-08-04 17:36:32'); +INSERT INTO `appx` (`app_id`, `app_key`, `akey`, `ugroup_id`, `agroup_id`, `name`, `note`, `ar_is_setting`, `ar_is_examine`, `ar_examine_ver`, `log_fulltime`) VALUES (12, '12', 'n', 1, 1, 'Android-2', '', 0, 0, 0, '2017-08-04 17:36:46'); +INSERT INTO `appx` (`app_id`, `app_key`, `akey`, `ugroup_id`, `agroup_id`, `name`, `note`, `ar_is_setting`, `ar_is_examine`, `ar_examine_ver`, `log_fulltime`) VALUES (13, '13', 'm', 1, 1, 'Android-3', '', 0, 0, 0, '2017-08-04 17:37:00'); +INSERT INTO `appx` (`app_id`, `app_key`, `akey`, `ugroup_id`, `agroup_id`, `name`, `note`, `ar_is_setting`, `ar_is_examine`, `ar_examine_ver`, `log_fulltime`) VALUES (14, '14', 'o', 1, 1, 'Android-4', '', 0, 0, 0, '2017-08-25 10:55:37'); +INSERT INTO `appx` (`app_id`, `app_key`, `akey`, `ugroup_id`, `agroup_id`, `name`, `note`, `ar_is_setting`, `ar_is_examine`, `ar_examine_ver`, `log_fulltime`) VALUES (15, '15', 'x', 1, 1, 'Android-5', '', 0, 0, 0, '2017-08-25 10:55:37'); +INSERT INTO `appx` (`app_id`, `app_key`, `akey`, `ugroup_id`, `agroup_id`, `name`, `note`, `ar_is_setting`, `ar_is_examine`, `ar_examine_ver`, `log_fulltime`) VALUES (16, '16', 'y', 1, 1, 'iOS-Pro', NULL, 0, 0, 0, '2017-08-04 17:38:15'); +INSERT INTO `appx` (`app_id`, `app_key`, `akey`, `ugroup_id`, `agroup_id`, `name`, `note`, `ar_is_setting`, `ar_is_examine`, `ar_examine_ver`, `log_fulltime`) VALUES (17, '17', 'z', 1, 1, 'iOS-2', NULL, 0, 0, 0, '2017-08-04 17:38:26'); +INSERT INTO `appx` (`app_id`, `app_key`, `akey`, `ugroup_id`, `agroup_id`, `name`, `note`, `ar_is_setting`, `ar_is_examine`, `ar_examine_ver`, `log_fulltime`) VALUES (18, '18', 'u', 1, 1, 'iOS-3', NULL, 0, 0, 0, '2017-08-04 17:38:40'); +INSERT INTO `appx` (`app_id`, `app_key`, `akey`, `ugroup_id`, `agroup_id`, `name`, `note`, `ar_is_setting`, `ar_is_examine`, `ar_examine_ver`, `log_fulltime`) VALUES (19, '19', 'w', 1, 1, 'Android-a', NULL, 0, 0, 0, '2017-08-04 17:38:57'); +INSERT INTO `appx` (`app_id`, `app_key`, `akey`, `ugroup_id`, `agroup_id`, `name`, `note`, `ar_is_setting`, `ar_is_examine`, `ar_examine_ver`, `log_fulltime`) VALUES (20, '20', 'a1', 1, 1, 'Android-b', NULL, 0, 0, 0, '2017-08-04 17:39:09'); +INSERT INTO `appx` (`app_id`, `app_key`, `akey`, `ugroup_id`, `agroup_id`, `name`, `note`, `ar_is_setting`, `ar_is_examine`, `ar_examine_ver`, `log_fulltime`) VALUES (21, '21', 'b1', 1, 1, 'Android-c', NULL, 0, 0, 0, '2017-08-04 17:39:23'); +INSERT INTO `appx` (`app_id`, `app_key`, `akey`, `ugroup_id`, `agroup_id`, `name`, `note`, `ar_is_setting`, `ar_is_examine`, `ar_examine_ver`, `log_fulltime`) VALUES (22, '22', 'c1', 1, 1, 'Android-d', NULL, 1, 0, 0, '2017-08-04 17:39:39'); diff --git a/mybatis-plus-solon-plugin-test/src/test/resources/mybatis/AppxMapper.xml b/mybatis-plus-solon-plugin-test/src/test/resources/mybatis/AppxMapper.xml new file mode 100644 index 0000000..a9adf59 --- /dev/null +++ b/mybatis-plus-solon-plugin-test/src/test/resources/mybatis/AppxMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + insert into test (v1) values (1024); + + + + insert into test (v1) values (#{v1}); + + + \ No newline at end of file -- Gitee