Mybatis-Flex 是一个优雅的 Mybatis 增强框架。
第一步:编写 Entity 实体类
@Table("tb_account") public class Account { @Id() private Long id; private String userName; private Date birthday; private int sex; //getter setter }
第二步,编写 Mapper 类,并继承 BaseMapper
public interface AccountMapper extends BaseMapper<Account> { //只需定义 Mapper 接口即可,可以无任何内容。 }
第三步:开始查询数据
示例 1:查询 1 条数据
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:查询列表
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<Account> accounts = MybatisFlexBootstrap.getInstance() .execute(AccountMapper.class, mapper -> mapper.selectListByQuery(query) ); } }
示例3:分页查询
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<Account> accounts = MybatisFlexBootstrap.getInstance() .execute(AccountMapper.class, mapper -> mapper.paginate(5, 10, query) ); } }
Mybatis-Flex 是什么 Mybatis-Flex 是一个优雅的 Mybatis 增强框架,它非常轻量、同时拥有极高的性能与灵活性。我们可以轻松的使用 Mybaits-Flex 链接任何数据库,其内置的 QueryWrapper^亮点 帮助我们极大的减少了 SQL 编写的工作的同时,减少出错的可能性。 总而言之,Mybatis-Flex 能够极大地提高我们的开发效率和开发体验,让我们有更多
MyBatis和Mybatis-Plus概念总结 1.Mybatis: MyBatis是一个用Java语言编写的持久层框架,其封装了JDBC的操作细节,使得开发者只需关注SQL语句本身,而无需关注注册驱动,创建连接等繁琐重复的过程。MyBatis框架使用了ORM(Object Relational Mapping)的思想来实现结果集的封装。(ORM简单说就是将数据库表与实体类及类的属性对应起来,通
MP特性 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需
MyBatis 是持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。 Mybatis的功能架构分为三层: (1)A
application.yml 配置 mybatis-plus: configuration: #在映射实体或者属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射 map-underscore-to-camel-case: true log-impl: org.apache.ibatis.logging.stdout.StdOutImpl global
Mybatis程序,测试中可能遇到的问题以及解决方案: 错误一:找不到mybatis配置文件java.io.IOException: Could not find resource org/mybatis/example/mybatis-config.xml 解决方案: 在pom.xml中增加build <build> <resources> <resource>
1.下载spring roo,设置环境变量ROO_HOME,和path,classpath. 使用CMD命令行找到工作区间,新建工程目录转到工程目录;mkdir ten-minutes $ cdten-minutes 2. project--topLevelPackage com.tenminutes 3. roo>jpa setup --provider HIBERNATE-
第一次使用springboot整合mybatis-flex,想配置一下常规配置比如不打印banner,修改数据库的方言(默认是mysql),开启或关闭二级缓存(默认开启),不打印sql日志等等,然后在application.yaml中配置都不起作用,最后看了一下源码 ,可以在使用@Configuration配置,现在记录一下: package com.chhuang.web.config; im
报错信息 此Demo是基于Spring boot 2.3.5.RELEASE Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required 报的错是 没有找到sqlSessionFactory或者sqlSessionTemplate 没有那就自己创建一个 @Configuration public class Myconfig
由于我比较懒,所以对于mybatis-generator工具有着很大的喜欢,我感觉它既可以偷懒,又可以提高写代码的效率,对于比较简单的sql查询语句,使用它就足够了,但是我今天遇到了一个问题,就是为什么我们生成的mapper代码不用写@Mapper注解在接口上,也可以注册到spring的IOC容器中。 这是因为我们使用了@MapperScan注解 那么@Mapper注解与@MapperScan注解
本文向大家介绍MyBatis 的优点?相关面试题,主要包含被问及MyBatis 的优点?时的应答技巧和注意事项,需要的朋友参考一下 基于 SQL 语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任 何影响,SQL 写在 XML 里,解除 sql 与程序代码的耦合,便于统一管理;提供 XML 标签,支持编写动态 SQL 语句,并可重用。 与 JDBC 相比,减少了 50%以上的代码量,消除
本文向大家介绍MyBatis中如何优雅的使用枚举详解,包括了MyBatis中如何优雅的使用枚举详解的使用技巧和注意事项,需要的朋友参考一下 问题 本文主要给大家介绍的是关于MyBatis使用枚举的相关内容,我们在编码过程中,经常会遇到用某个数值来表示某种状态、类型或者阶段的情况,比如有这样一个枚举: 通常我们希望将表示状态的数值存入数据库,即ComputerState.OPEN存入数据库取值为10
你可能听过优雅降级(graceful degradation)和渐进增强(progressive enhancement)这两个词,它们是构建Web应用时,处理多浏览器支持的两种方法论,并在Web社区中引发过激烈的辩论。 持优雅降级观点者认为,应该针对最高级、最完善的浏览器来设计网站。然后,再为那些被认为过时或有功能缺失的浏览器提供候选方案,使之基本可用,但不至于完全失效。这样一来,新特性在老浏览
本文向大家介绍MyBatis 框架的缺点相关面试题,主要包含被问及MyBatis 框架的缺点时的应答技巧和注意事项,需要的朋友参考一下 SQL 语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写 SQL 语句的功底有一定要求。 SQL 语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。
本文向大家介绍MyBatis学习教程(三)-MyBatis配置优化,包括了MyBatis学习教程(三)-MyBatis配置优化的使用技巧和注意事项,需要的朋友参考一下 一、连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的conf.xml文件中,如下: 其实我们完全可以将数据库的连接配置信息写在一个properties文件中
本文向大家介绍Spring集成MyBatis框架,包括了Spring集成MyBatis框架的使用技巧和注意事项,需要的朋友参考一下 Java在写数据库查询时,我接触过四种方式: 1、纯Java代码,引用对应的数据库驱动包,自己写连接与释放逻辑(可以用连接池) 这种模式实际上性能是非常不错的,但是使用起来并不是非常方便:一是要手工为Connection做获取与释放,大量的冗余代码也容易出错;另一个是