ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

mybatis-plus教程--ActiveRecord

mybatis-plus教程--ActiveRecord 完整代码https://github.com/pbteach/mybatis-plus-test完整讲义https://yjoffer.com/project_preposition/mybatis/mybatis.htmlhttps://yjoffer.com/project_preposition/mybatisplus/mybatisplus.html准备环境创建数据库和表-- 创建测试表 CREATE TABLE tb_user ( id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 主键ID, user_name varchar(20) NOT NULL COMMENT 用户名, password varchar(20) NOT NULL COMMENT 密码, name varchar(30) DEFAULT NULL COMMENT 姓名, age int(11) DEFAULT NULL COMMENT 年龄, email varchar(50) DEFAULT NULL COMMENT 邮箱, PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT1 DEFAULT CHARSETutf8; -- 插入测试数据 INSERT INTO tb_user (id, user_name, password, name, age, email) VALUES (1, zhangsan, 123456, 张三, 18, test1pbteach.com); INSERT INTO tb_user (id, user_name, password, name, age, email) VALUES (2, lisi, 123456, 李四, 20, test2pbteach.com); INSERT INTO tb_user (id, user_name, password, name, age, email) VALUES (3, wangwu, 123456, 王五, 28, test3pbteach.com); INSERT INTO tb_user (id, user_name, password, name, age, email) VALUES (4, zhaoliu, 123456, 赵六, 21, test4pbteach.com); INSERT INTO tb_user (id, user_name, password, name, age, email) VALUES (5, sunqi, 123456, 孙七, 24, test5pbteach.com);ActiveRecordActiveRecord简称AR一直广受动态语言 PHP 、 Ruby 等的喜爱而 Java 作为准静态语言对于 ActiveRecord 往往只能感叹其优雅所以我们也在 AR 道路上进行了一定的探索喜欢大家能够喜欢。什么是ActiveRecordActiveRecord也属于ORM对象关系映射层由Rails最早提出遵循标准的ORM模型表映射到记录记录映射到对象字段映射到对象属性。配合遵循的命名和配置惯例能够很大程度的快速实现模型的操作而且简洁易懂。ActiveRecord的主要思想是每一个数据库表对应创建一个类类的每一个对象实例对应于数据库中表的一行记录通常表的每个字段在类中都有相应的FieldActiveRecord同时负责把自己持久化在ActiveRecord中封装了对数据库的访问即CURD;ActiveRecord是一种领域模型(Domain Model)封装了部分业务逻辑开启AR之旅在MP中开启AR非常简单只需要将实体对象继承Model即可。packagecom.pbteach.mp.pojo;importcom.baomidou.mybatisplus.annotation.IdType;importcom.baomidou.mybatisplus.annotation.TableField;importcom.baomidou.mybatisplus.annotation.TableId;importcom.baomidou.mybatisplus.annotation.TableName;importcom.baomidou.mybatisplus.extension.activerecord.Model;importlombok.AllArgsConstructor;importlombok.Data;importlombok.NoArgsConstructor;DataNoArgsConstructorAllArgsConstructorpublicclassUserextendsModelUser{privateLongid;privateStringuserName;privateStringpassword;privateStringname;privateIntegerage;privateStringemail;}根据主键查询RunWith(SpringRunner.class)SpringBootTestpublicclassUserMapperTest{AutowiredprivateUserMapperuserMapper;TestpublicvoidtestAR(){UserusernewUser();user.setId(2L);Useruser2user.selectById();System.out.println(user2);}}新增数据RunWith(SpringRunner.class)SpringBootTestpublicclassUserMapperTest{AutowiredprivateUserMapperuserMapper;TestpublicvoidtestAR(){UserusernewUser();user.setName(刘备);user.setAge(30);user.setPassword(123456);user.setUserName(liubei);user.setEmail(liubeipbteach.com);booleaninsertuser.insert();System.out.println(insert);}}结果[main][com.pbteach.mp.mapper.UserMapper.insert]-[DEBUG]Preparing: INSERT INTO tb_user(user_name, password, name, age, email)VALUES(?, ?, ?, ?, ?)[main][com.pbteach.mp.mapper.UserMapper.insert]-[DEBUG]Parameters: liubei(String),123456(String), 刘备(String),30(Integer), liubeipbteach.com(String)[main][com.pbteach.mp.mapper.UserMapper.insert]-[DEBUG]Updates:1更新操作RunWith(SpringRunner.class)SpringBootTestpublicclassUserMapperTest{AutowiredprivateUserMapperuserMapper;TestpublicvoidtestAR(){UserusernewUser();user.setId(8L);user.setAge(35);booleanupdateuser.updateById();System.out.println(update);}}结果[main][com.pbteach.mp.mapper.UserMapper.updateById]-[DEBUG]Preparing: UPDATE tb_user SETage? WHEREid?[main][com.pbteach.mp.mapper.UserMapper.updateById]-[DEBUG]Parameters:35(Integer),8(Long)[main][com.pbteach.mp.mapper.UserMapper.updateById]-[DEBUG]Updates:1删除操作RunWith(SpringRunner.class)SpringBootTestpublicclassUserMapperTest{AutowiredprivateUserMapperuserMapper;TestpublicvoidtestAR(){UserusernewUser();user.setId(7L);booleandeleteuser.deleteById();System.out.println(delete);}}结果[main][com.pbteach.mp.mapper.UserMapper.deleteById]-[DEBUG]Preparing: DELETE FROM tb_user WHEREid?[main][com.pbteach.mp.mapper.UserMapper.deleteById]-[DEBUG]Parameters:7(Long)[main][com.pbteach.mp.mapper.UserMapper.deleteById]-[DEBUG]Updates:1根据条件查询RunWith(SpringRunner.class)SpringBootTestpublicclassUserMapperTest{AutowiredprivateUserMapperuserMapper;TestpublicvoidtestAR(){UserusernewUser();QueryWrapperUseruserQueryWrappernewQueryWrapper();userQueryWrapper.le(age,20);ListUserusersuser.selectList(userQueryWrapper);for(Useruser1:users){System.out.println(user1);}}}结果[main][com.pbteach.mp.mapper.UserMapper.selectList]-[DEBUG]Preparing: SELECT id,user_name,password,name,age,email FROM tb_user WHERE age?[main][com.pbteach.mp.mapper.UserMapper.selectList]-[DEBUG]Parameters:20(String)[main][com.pbteach.mp.mapper.UserMapper.selectList]-[DEBUG]Total:2User(id2,userNamelisi,password123456,name李四,age20,emailtest2pbteach.com,addressnull)User(id6,userNamecaocao,password123456,name曹操,age20,emailtestpbteach.com,addressnull)pper.selectList]-[DEBUG] Total: 2User(id2, userNamelisi, password123456, name李四, age20, emailtest2pbteach.com, addressnull)User(id6, userNamecaocao, password123456, name曹操, age20, emailtestpbteach.com, addressnull)
返回列表