网站做跳转链接的好处,edu域名网站,织梦网站栏目建设,网站建设百度推广mybatis-flex基本使用 1.测试sql2.导入坐标3.框架搭建1.pojo层2.mapper层3.service层4.controller层5.启动类6.配置类7.EmpMapper.xml 4.启动测试 本片文章在springBoot3#xff0c;jdk21下测试通过 注意官方网站为#xff1a;https://mybatis-flex.com/ 请点击#xff1a;直… mybatis-flex基本使用 1.测试sql2.导入坐标3.框架搭建1.pojo层2.mapper层3.service层4.controller层5.启动类6.配置类7.EmpMapper.xml 4.启动测试 本片文章在springBoot3jdk21下测试通过 注意官方网站为https://mybatis-flex.com/ 请点击直达网站
1.测试sql
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS 0;
-- 员工表
DROP TABLE IF EXISTS emp;
CREATE TABLE emp (id bigint NOT NULL,ename varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,age int NULL DEFAULT NULL,dept_id varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,PRIMARY KEY (id) USING BTREE
) ENGINE InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci ROW_FORMAT DYNAMIC;INSERT INTO emp VALUES (1, 乔峰, 10, 1001);
INSERT INTO emp VALUES (2, 段誉, 21, 1001);
INSERT INTO emp VALUES (3, 虚竹, 23, 1001);
INSERT INTO emp VALUES (4, 阿紫, 18, 1001);
INSERT INTO emp VALUES (5, 扫地僧, 85, 1002);
INSERT INTO emp VALUES (6, 李秋水, 33, 1002);
INSERT INTO emp VALUES (7, 鸠摩智, 50, 1002);
INSERT INTO emp VALUES (8, 天山童姥, 60, 1003);
INSERT INTO emp VALUES (9, 慕容博, 58, 1003);
INSERT INTO emp VALUES (10, 丁春秋, 71, 1005);SET FOREIGN_KEY_CHECKS 1;-- 部门表
DROP TABLE IF EXISTS dept;
CREATE TABLE dept (dept_no varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,name varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL
) ENGINE InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci ROW_FORMAT DYNAMIC;INSERT INTO dept VALUES (1001, 研发部);
INSERT INTO dept VALUES (1002, 销售部);
INSERT INTO dept VALUES (1003, 财务部);
INSERT INTO dept VALUES (1004, 人事部);SET FOREIGN_KEY_CHECKS 1;2.导入坐标
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.andy/groupIdartifactIdmyBatis-Flex_boot3/artifactIdversion1.0-SNAPSHOT/version!-- 父坐标 --parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion3.2.1/versionrelativePath//parentpropertiesmaven.compiler.source21/maven.compiler.sourcemaven.compiler.target21/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependencies!-- spring数据坐标 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!-- mybatis-flex --dependencygroupIdcom.mybatis-flex/groupIdartifactIdmybatis-flex-spring-boot-starter/artifactIdversion1.7.6/versionexclusionsexclusiongroupIdorg.mybatis/groupIdartifactIdmybatis-spring/artifactId/exclusion/exclusions/dependency!-- mybatis与spring合成 --dependencygroupIdorg.mybatis/groupIdartifactIdmybatis-spring/artifactIdversion3.0.3/version/dependencydependencygroupIdcom.mybatis-flex/groupIdartifactIdmybatis-flex-processor/artifactIdversion1.7.6/versionscopeprovided/scope/dependencydependencygroupIdcom.zaxxer/groupIdartifactIdHikariCP/artifactId/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.33/version/dependency/dependencies
/project3.框架搭建
这里只搭建emp表的dept表的框架各位博主可以自行尝试搭建
1.pojo层
1.flex同样也支持AR模式(Active Record)使用 Active Record 功能时项目中必须注入对应实体类的 BaseMapper 对象。用过mybatis-plus的博主都知道这一点
2.使用方式与mybatis-plus相同只需让 Entity 类继承 Model 即可
3.注解
Table与mybatis-plus的TableName作用相同Id(keyType KeyType.Auto)与mybatis-plus的 TableId(value “id”, type IdType.AUTO)相同Column 用来对字段进行更多的配置源码如下
public interface Column {/*** 字段名称*/String value() default ;/*** 是否忽略该字段可能只是业务字段而非数据库对应字段*/boolean ignore() default false;/*** insert 的时候默认值这个值会直接被拼接到 sql 而不通过参数设置*/String onInsertValue() default ;/*** update 的时候自动赋值这个值会直接被拼接到 sql 而不通过参数设置*/String onUpdateValue() default ;/*** 是否是大字段大字段 APT 不会生成到 DEFAULT_COLUMNS 里*/boolean isLarge() default false;/*** 是否是逻辑删除字段一张表中只能存在 1 一个逻辑删除字段* 逻辑删除的字段被删除时会设置为 1正常状态为 0*/boolean isLogicDelete() default false;/*** 是否为乐观锁字段若是乐观锁字段的话数据更新的时候会去检测当前版本号若更新成功的话会设置当前版本号 1* 只能用于数值的字段*/boolean version() default false;/*** 配置的 jdbcType*/JdbcType jdbcType() default JdbcType.UNDEFINED;/*** 自定义 TypeHandler*/Class? extends TypeHandler typeHandler() default UnknownTypeHandler.class;}4.pojo层代码
Table(value emp)
public class Emp extends ModelEmp {Id(keyType KeyType.Auto)private Long id;private String ename;private Integer age;private String deptId;// getter/setter/toString...2.mapper层
这里和mybatis-plus的mapper层一样
Mapper
public interface EmpMapper extends BaseMapperEmp {}3.service层
这里和mybatis-plus一样
1.service层接口
public interface EmpService extends IServiceEmp {}2.实现类接口
Service
Transactional
public class EmpServiceImpl extends ServiceImplEmpMapper,Emp implements EmpService {}4.controller层
这里和mybatis-plus一样
RestController
RequestMapping(/emp)
public class EmpController {Resourceprivate EmpService empService;GetMapping(/findById)public Emp findById(RequestParam(id) Long id){return empService.getById(id);}
}5.启动类
SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}6.配置类
#设置数据源
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/study_test?characterEncodingutf-8allowMultiQueriestruezeroDateTimeBehaviorconvertToNulluseSSLfalseusername: rootpassword: root7.EmpMapper.xml
?xml version1.0 encodingUTF-8?
!DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespacecom.andy.mapper.EmpMapper/mapper4.启动测试
测试连接:http://localhost:8080/emp/findById?id1