当前位置: 首页 > news >正文

html5在网站建设中的my77728域名查询

html5在网站建设中的,my77728域名查询,许昌网站制作公司,企业网站推广解决方案一、MyBatis-Flex 是什么​ MyBatis-Flex是一个基于MyBatis的数据访问框架#xff0c;专门为Flex应用程序而设计的。它提供了一种灵活而高效的方式来处理Flex应用程序中的数据访问#xff0c;可以轻松地连接到各种数据源#xff0c;并提供了一些方便的工具和功能#xff0c… 一、MyBatis-Flex 是什么​ MyBatis-Flex是一个基于MyBatis的数据访问框架专门为Flex应用程序而设计的。它提供了一种灵活而高效的方式来处理Flex应用程序中的数据访问可以轻松地连接到各种数据源并提供了一些方便的工具和功能包括对象关系映射ORM、动态查询、分页、事务处理等等。它的主要目的是简化数据访问的过程使得开发人员可以更加专注于业务逻辑的开发而不是一些琐碎的数据访问细节。 总而言之MyBatis-Flex 能够极大地提高我们的开发效率和开发体验让我们有更多的时间专注于自己的事情。 官方文档MyBatis Flex官方网站 二、特征​ 1、轻量型 轻依赖除了 MyBatis没有任何第三方依赖轻依赖、没有任何拦截器轻实现原理是通过 SqlProvider 的方式实现轻运行没有任何的 Sql 解析带来了这么几个好处1、极高的性能2、方便对代码进行跟踪和调试 3、更高的把控性 2、使用灵活 支持 Entity 的增删改查、以及分页查询MyBatis-Flex 提供了 Db Row^灵活 工具可以无需实体类对数据库进行增删改查以及分页查询MyBatis-Flex 内置的 QueryWrapper^灵活 可以轻易的帮助我们实现多表查询、子查询和链接查询等常见的 SQL 查询场景 3、功能强大 支持任意关系型数据库还可以通过方言持续扩展支持多主键逻辑删除、数据脱敏、数据填充和乐观锁配置等 三、MyBatis Flex的使用 1、创建数据库表 创建sql如下 CREATE TABLE IF NOT EXISTS tb_account (id INTEGER PRIMARY KEY auto_increment,user_name VARCHAR(100),age INTEGER,birthday DATETIME );INSERT INTO tb_account(id, user_name, age, birthday) VALUES (1, 张三, 18, 2020-01-11),(2, 李四, 19, 2021-03-21); 2、创建 Spring Boot 项目添加 依赖 可以使用 Spring Initializer 快速初始化一个 Spring Boot 工程。 需要添加的 Maven 主要依赖示例 pom.xml配置如下 dependenciesdependencygroupIdcom.mybatis-flex/groupIdartifactIdmybatis-flex-spring-boot-starter/artifactIdversion1.7.5/version/dependencydependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactIdscoperuntime/scope/dependencydependencygroupIdcom.zaxxer/groupIdartifactIdHikariCP/artifactId/dependency!-- for test only --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency /dependencies 3、对 Spring Boot 项目进行配置 在 application.yml 中配置数据源 # DataSource Config spring:datasource:url: jdbc:mysql://localhost:3306/flex_testusername: rootpassword: 12345678 在 Spring Boot 启动类中添加 MapperScan 注解扫描 Mapper 文件夹 SpringBootApplication MapperScan(com.mybatisflex.test.mapper) public class MybatisFlexTestApplication {public static void main(String[] args) {SpringApplication.run(MybatisFlexTestApplication.class, args);}} 4、编写实体类和 Mapper 接口 这里使用了 Lombok 注解来简化代码类代码如下 Data Table(tb_account) public class Account {Id(keyType KeyType.Auto)private Long id;private String userName;private Integer age;private Date birthday;} 使用 Table(tb_account) 设置实体类与表名的映射关系使用 Id(keyType KeyType.Auto) 标识主键为自增 Mapper 接口继承 BaseMapper 接口 public interface AccountMapper extends BaseMapperAccount {} 这部分也可以使用 MyBatis-Flex 的代码生成器来生功能非常强大的。详情进入代码生成器章节 了解。 5、开始使用 添加测试类进行功能测试 import static com.mybatisflex.test.entity.table.AccountTableDef.ACCOUNT;SpringBootTest class MybatisFlexTestApplicationTests {Autowiredprivate AccountMapper accountMapper;Testvoid contextLoads() {QueryWrapper queryWrapper QueryWrapper.create().select().where(ACCOUNT.AGE.eq(18));Account account accountMapper.selectOneByQuery(queryWrapper);System.out.println(account);}} 控制台输出 Account(id1, userName张三, age18, birthdaySat Jan 11 00:00:00 CST 2020) 以上的 示例 中 ACCOUNT 为 MyBatis-Flex 通过 APT 自动生成只需通过静态导入即可无需手动编码。 点击查看更多APT文档 APT 文档。 若觉得 APT 使用不习惯也可以使用代码生成器来生成。点击 代码生成器文档 了解。 四、同类框架「功能」对比 MyBatis-Flex 主要是和 MyBatis-Plus 与 Fluent-MyBatis 对比内容来源其官网、git 或者 网络文章若有错误欢迎纠正。 MyBatis-Plus老牌的 MyBatis 增强框架开源于 2016 年。Fluent-MyBatis阿里云开发的 MyBatis 增强框架来自于阿里云·云效产品团队 功能对比 功能或特点MyBatis-FlexMyBatis-PlusFluent-MyBatis对 entity 的基本增删改查✅✅✅分页查询✅✅✅分页查询之总量缓存✅✅❌分页查询无 SQL 解析设计更轻量及更高性能✅❌✅多表查询 from 多张表✅❌❌多表查询 left join、inner join 等等✅❌✅多表查询 unionunion all✅❌✅单主键配置✅✅✅多种 id 生成策略✅✅✅支持多主键、复合主键✅❌❌字段的 typeHandler 配置✅✅✅除了 MyBatis无其他第三方依赖更轻量✅❌❌QueryWrapper 是否支持在微服务项目下进行 RPC 传输✅❌未知逻辑删除✅✅✅乐观锁✅✅✅SQL 审计✅❌❌数据填充✅✅✅数据脱敏✅✔️ 收费❌字段权限✅✔️ 收费❌字段加密✅✔️ 收费❌字典回写✅✔️ 收费❌Db Row✅❌❌Entity 监听✅❌❌多数据源支持✅借助其他框架或收费❌多数据源是否支持 Spring 的事务管理比如 Transactional 和 TransactionTemplate 等✅❌❌多数据源是否支持 非Spring 项目✅❌❌多租户✅✅❌动态表名✅✅❌动态 Schema✅❌❌ 以上内容来自第三方相关产品的官方文档或第三方平台若有错误欢迎纠正。 五、同类框架「性能」对比 本文主要是展示了 MyBatis-Flex 和 Mybaits-Plus 的「性能」对比。Mybaits-Plus 是一个非常优秀 Mybaits 增强框架 其开源于 2016 年有很多的成功案例。 测试方法 使用 h2 数据库在初始化的时候分别为 mybatis-flex 和 mybatis-plus 创建两个不同的数据库 但是完全一样的数据结构、数据内容和数据量每个库 2w 条数据。 开始之前先进行预热之后通过打印时间戳的方式进行对比谁消耗的时间越少则性能越高每次测试 10 轮。 1、测试单条数据查询​ MyBatis-Flex 的代码如下 QueryWrapper queryWrapper new QueryWrapper(); queryWrapper.where(FLEX_ACCOUNT.ID.ge(100) .or(FLEX_ACCOUNT.USER_NAME.eq(admin ThreadLocalRandom.current().nextInt(10000)))); mapper.selectOneByQuery(queryWrapper); MyBatis-Plus 的代码如下 QueryWrapper queryWrapper new QueryWrapper(); queryWrapper.ge(id, 100); queryWrapper.or(); queryWrapper.eq(user_name, admin ThreadLocalRandom.current().nextInt(10000)); queryWrapper.last(limit 1); mapper.selectOne(queryWrapper); 10 轮的测试结果 --------------- testFlexSelectOne:134 testPlusSelectOneWithLambda:989 testPlusSelectOne:830 --------------- testFlexSelectOne:75 testPlusSelectOneWithLambda:732 testPlusSelectOne:795 --------------- testFlexSelectOne:65 testPlusSelectOneWithLambda:938 testPlusSelectOne:714 --------------- testFlexSelectOne:105 testPlusSelectOneWithLambda:740 testPlusSelectOne:669 --------------- testFlexSelectOne:57 testPlusSelectOneWithLambda:691 testPlusSelectOne:773 --------------- testFlexSelectOne:65 testPlusSelectOneWithLambda:693 testPlusSelectOne:695 --------------- testFlexSelectOne:56 testPlusSelectOneWithLambda:754 testPlusSelectOne:665 --------------- testFlexSelectOne:56 testPlusSelectOneWithLambda:714 testPlusSelectOne:717 --------------- testFlexSelectOne:57 testPlusSelectOneWithLambda:696 testPlusSelectOne:671 --------------- testFlexSelectOne:59 testPlusSelectOneWithLambda:739 testPlusSelectOne:659 测试结论 MyBatis-Flex 的查询单条数据的速度大概是 MyBatis-Plus 的 5 ~ 10 倍。 2、测试列表(List)数据查询​ 要求返回的数据为 10 条数据。 MyBatis-Flex 的代码如下 QueryWrapper queryWrapper new QueryWrapper(); queryWrapper.where(FLEX_ACCOUNT.ID.ge(100).or(FLEX_ACCOUNT.USER_NAME .eq(admin ThreadLocalRandom.current().nextInt(10000)))) .limit(10); mapper.selectListByQuery(queryWrapper); MyBatis-Plus 的代码如下 QueryWrapper queryWrapper new QueryWrapper(); queryWrapper.ge(id, 100); queryWrapper.or(); queryWrapper.eq(user_name, admin ThreadLocalRandom.current().nextInt(10000)); queryWrapper.last(limit 10); mapper.selectList(queryWrapper); 10 轮的测试结果 --------------- testFlexSelectTop10:90 testPlusSelectTop10WithLambda:743 testPlusSelectTop10:678 --------------- testFlexSelectTop10:85 testPlusSelectTop10WithLambda:692 testPlusSelectTop10:684 --------------- testFlexSelectTop10:84 testPlusSelectTop10WithLambda:692 testPlusSelectTop10:670 --------------- testFlexSelectTop10:85 testPlusSelectTop10WithLambda:737 testPlusSelectTop10:667 --------------- testFlexSelectTop10:85 testPlusSelectTop10WithLambda:691 testPlusSelectTop10:684 --------------- testFlexSelectTop10:97 testPlusSelectTop10WithLambda:760 testPlusSelectTop10:666 --------------- testFlexSelectTop10:80 testPlusSelectTop10WithLambda:673 testPlusSelectTop10:637 --------------- testFlexSelectTop10:81 testPlusSelectTop10WithLambda:653 testPlusSelectTop10:639 --------------- testFlexSelectTop10:82 testPlusSelectTop10WithLambda:659 testPlusSelectTop10:636 --------------- testFlexSelectTop10:81 testPlusSelectTop10WithLambda:654 testPlusSelectTop10:656 测试结论 MyBatis-Flex 的查询 10 条数据的速度大概是 MyBatis-Plus 的 5~10 倍左右。 3、分页查询​ MyBatis-Flex 的代码如下 QueryWrapper queryWrapper new QueryWrapper().where(FLEX_ACCOUNT.ID.ge(100)); mapper.paginate(page, pageSize, 20000, queryWrapper); MyBatis-Plus 的代码如下 LambdaQueryWrapperPlusAccount queryWrapper new LambdaQueryWrapper();queryWrapper.ge(PlusAccount::getId, 100);queryWrapper.eq(PlusAccount::getEmail, michaelgmail.com); PagePlusAccount p Page.of(page, pageSize, 20000, false); mapper.selectPage(p, queryWrapper); 10 轮的测试结果 --------------- testFlexPaginate:90 testPlusPaginate:671 --------------- testFlexPaginate:78 testPlusPaginate:643 --------------- testFlexPaginate:80 testPlusPaginate:638 --------------- testFlexPaginate:79 testPlusPaginate:613 --------------- testFlexPaginate:75 testPlusPaginate:627 --------------- testFlexPaginate:72 testPlusPaginate:606 --------------- testFlexPaginate:69 testPlusPaginate:585 --------------- testFlexPaginate:70 testPlusPaginate:589 --------------- testFlexPaginate:69 testPlusPaginate:586 --------------- testFlexPaginate:68 testPlusPaginate:585 测试结论 Mybatis-Flex 的分页查询速度大概是 Mybatis-Plus 的 5~10 倍左右。 4、数据更新​ Mybatis-Flex 的代码如下 FlexAccount flexAccount new FlexAccount(); flexAccount.setUserName(testInsert i); flexAccount.setNickname(testInsert i); flexAccount.addOption(key1, value1); flexAccount.addOption(key2, value2); flexAccount.addOption(key3, value3); flexAccount.addOption(key4, value4); flexAccount.addOption(key5, value5);QueryWrapper queryWrapper QueryWrapper.create().where(FLEX_ACCOUNT.ID.ge(9200)).and(FLEX_ACCOUNT.ID.le(9300)).and(FLEX_ACCOUNT.USER_NAME.like(admin)).and(FLEX_ACCOUNT.NICKNAME.like(admin));mapper.updateByQuery(flexAccount, queryWrapper); Mybatis-Plus 的代码如下 PlusAccount plusAccount new PlusAccount(); plusAccount.setUserName(testInsert i); plusAccount.setNickname(testInsert i); plusAccount.addOption(key1, value1); plusAccount.addOption(key2, value2); plusAccount.addOption(key3, value3); plusAccount.addOption(key4, value4); plusAccount.addOption(key5, value5);LambdaUpdateWrapperPlusAccount updateWrapper new LambdaUpdateWrapper(); updateWrapper.ge(PlusAccount::getId, 9000); updateWrapper.le(PlusAccount::getId, 9100); updateWrapper.like(PlusAccount::getUserName, admin); updateWrapper.like(PlusAccount::getNickname, admin);mapper.update(plusAccount, lambdaUpdateWrapper); 10 轮的测试结果 --------------- testFlexUpdate:58 testPlusUpdate:524 --------------- testFlexUpdate:51 testPlusUpdate:503 --------------- testFlexUpdate:49 testPlusUpdate:490 --------------- testFlexUpdate:45 testPlusUpdate:472 --------------- testFlexUpdate:48 testPlusUpdate:470 --------------- testFlexUpdate:44 testPlusUpdate:460 --------------- testFlexUpdate:43 testPlusUpdate:459 --------------- testFlexUpdate:44 testPlusUpdate:461 --------------- testFlexUpdate:40 testPlusUpdate:444 --------------- testFlexUpdate:41 testPlusUpdate:444 测试结论 Mybatis-Flex 的数据更新速度大概是 Mybatis-Plus 的 5~10 倍。 总之性能测试结果 不论是MyBatis-Flex 单条查询分页查询还是数据更新速度均是 MyBatis-Plus 的 5~10 倍左右 六、MyBatis-Flex 支持的数据库 MyBatis-Flex 支持的数据库类型如下表格所示我们还可以通过自定义方言的方式持续添加更多的数据库支持。 数据库描述mysqlMySQL 数据库mariadbMariaDB 数据库oracleOracle11g 及以下数据库oracle12cOracle12c 及以上数据库db2DB2 数据库H2H2 数据库hsqlHSQL 数据库sqliteSQLite 数据库postgresqlPostgreSQL 数据库sqlserver2005SQLServer2005 数据库sqlserverSQLServer 数据库dm达梦数据库xugu虚谷数据库kingbasees人大金仓数据库phoenixPhoenix HBase 数据库gaussGauss 数据库clickhouseClickHouse 数据库gbase南大通用(华库)数据库gbase-8s南大通用数据库 GBase 8soscar神通数据库sybaseSybase ASE 数据库OceanBaseOceanBase 数据库FirebirdFirebird 数据库derbyDerby 数据库highgo瀚高数据库cubridCUBRID 数据库goldilocksGOLDILOCKS 数据库csiidbCSIIDB 数据库hanaSAP_HANA 数据库impalaImpala 数据库verticaVertica 数据库xcloud行云数据库redshift亚马逊 redshift 数据库openGauss华为 openGauss 数据库TDengineTDengine 数据库informixInformix 数据库greenplumGreenplum 数据库uxdb优炫数据库DorisDoris数据库Hive SQLHive 数据库lealoneLealone 数据库sinodb星瑞格数据库
http://www.zqtcl.cn/news/337136/

相关文章:

  • wordpress做企业网站怎样做网页推广
  • 网站建设售后服务安全维护企业网站开发 外文文献
  • 网站设计英文翻译系统开发的五个阶段
  • 成华区门户网站拍卖网站开发多少钱
  • html设计网站wordpress 评论增加字段
  • 搭建正规网站小程序开发难不难
  • 做静态网站用什么软件自己编写代码建设微网站
  • 备案网站ipoa系统主要干什么的
  • 杭州专业网站建设在哪里wordpress主题重置
  • 仿wordpress站赣州专业网站推广
  • 网站开发需要多长时间python链接wordpress
  • 网上交易网邯郸网站seo
  • wordpress图片后加载外链seo服务
  • 婚庆公司网站建设腾讯广告建站工具
  • 焦作建设厅网站wordpress调用视频播放器
  • 网站版面做好江苏省建设工程设计施工图审核中心网站
  • 智能网站平台wordpress同步头条
  • 做采集的网站有流量吗广州建设学校
  • 建设部网站公告外贸网站建设定制
  • 如何搭建 seo网站上海市住房与城乡建设部网站
  • 百度搜不到自己的网站python云服务器网站开发实例
  • 给企业做网站的业务员优书网没了
  • 江门网站建设方案外包洛阳网站设计哪家专业
  • 电暖怎么做网站办公室平面设计图
  • 全屏网站 功能丽水市企业网站建设 微信营销 影视拍摄
  • 天天爱天天做视频网站网站推送
  • 制作企业网站与app有什么不同化工企业网站建设
  • 东莞企业推广网站专门做黄漫的网站
  • 温州网站关键词排名优化win10 电脑做网站服务器
  • 网站设计规划信息技术教案营销模式和营销策略