Java中如何使用MyBatis-Plus操作数据库
导读:本文共4453.5字符,通常情况下阅读需要15分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: MyBatis-PlusMyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatis可以直接在xml中通过SQL语句操作数据库,很灵活。但其操作都要通过SQL语句进行,就必须写大量的xml文... ...
目录
(为您整理了一些要点),点击可以直达。MyBatis-Plus
MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
MyBatis可以直接在xml中通过SQL语句操作数据库,很灵活。但其操作都要通过SQL语句进行,就必须写大量的xml文件,很麻烦。mybatis-plus就很好的解决了这个问题。
官网
MyBatis-Plus 官方文档
使用
这里我用的数据库是mysql8,新建test数据库,并创建user表
建表语句
SETNAMESutf8mb4;SETFOREIGN_KEY_CHECKS=0;--------------------------------Tablestructureforuser------------------------------DROPTABLEIFEXISTS`user`;CREATETABLE`user`(`id`varchar(50)CHARACTERSETutf8COLLATEutf8_general_ciNOTNULLCOMMENT'主键',`name`varchar(20)CHARACTERSETutf8COLLATEutf8_general_ciNULLDEFAULTNULLCOMMENT'姓名',`age`int(0)NULLDEFAULTNULLCOMMENT'年龄',`address`varchar(50)CHARACTERSETutf8COLLATEutf8_general_ciNULLDEFAULTNULLCOMMENT'地址',PRIMARYKEY(`id`)USINGBTREE)ENGINE=InnoDBCHARACTERSET=utf8COLLATE=utf8_general_ciROW_FORMAT=Dynamic;SETFOREIGN_KEY_CHECKS=1;
引入依赖
这里我用的数据库是mysql8
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.3</version><relativePath/></parent><dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-test</artifactId></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version></dependency><!--Druid连接池--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.9</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.25</version></dependency></dependencies>
分别创建application.yml及application-dev.yml文件
application.yml
#Spring配置spring:#环境设置profiles:active:dev#模板引擎thymeleaf:mode:HTMLencoding:utf-8#禁用缓存cache:false#服务模块devtools:restart:#热部署开关enabled:true
application-dev.yml
#开发环境配置server:#服务器的HTTP端口,默认为80port:8081spring:datasource:type:com.alibaba.druid.pool.DruidDataSourcedriver-class-name:com.mysql.cj.jdbc.Driverdruid:url:jdbc:mysql://localhost:3307/test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8username:rootpassword:123456initial-size:5min-idle:10max-active:20max-wait:60000time-between-eviction-runs-millis:60000min-evictable-idle-time-millis:300000validation-query:select'x'test-while-idle:truetest-on-borrow:falsetest-on-return:falsepool-prepared-statements:truemax-open-prepared-statements:50max-pool-prepared-statement-per-connection-size:20
编写实体类User.java,这里用到lombok
@DatapublicclassUser{privateStringid;privateStringname;privateIntegerage;privateStringaddress;}
创建mapper文件夹,并编写Mapper 类UserMapper.java
publicinterfaceUserMapperextendsBaseMapper<User>{}
在 Spring Boot 启动类中添加@MapperScan
注解,扫描 Mapper 文件夹:
@SpringBootApplication@MapperScan("com.mybatisplus.mapper")publicclassMainApplication{publicstaticvoidmain(String[]args){SpringApplication.run(MainApplication.class,args);}}
添加测试类,进行功能测试:
测试数据插入数据库
@AutowiredprivateUserMapperuserMapper;@TestpublicvoidtestInsert(){System.out.println(("-----insertmethodtest------"));Useruser=newUser();//自动生成主键,例如550E8400-E29B-11D4-A716-446655440000Stringid=UUID.randomUUID().toString();StringreplaceAll=id.replaceAll("-","");//550E8400E29B11D4A716446655440000user.setId(replaceAll);user.setName("张三");user.setAge(21);user.setAddress("北京市海淀区");intinsert=userMapper.insert(user);if(insert>0){System.out.println("插入成功:"+user);}else{System.out.println("插入失败!");}}
测试查询所有
@AutowiredprivateUserMapperuserMapper;@TestpublicvoidtestSelect(){System.out.println(("-----selectAllmethodtest------"));List<User>userList=userMapper.selectList(null);userList.forEach(System.out::println);}
测试删除数据
删除姓名等于“张三”的记录
@AutowiredprivateUserMapperuserMapper;@TestpublicvoidtestDelete(){System.out.println(("-----deletemethodtest------"));LambdaQueryWrapper<User>wrapper=newLambdaQueryWrapper<>();Useruser=newUser();user.setName("张三");wrapper.eq(User::getName,user.getName());intdelete=userMapper.delete(wrapper);if(delete>0){System.out.println("删除成功:"+user);}else{System.out.println("删除失败!");}}
测试修改数据
修改前先执行下插入
修改还可以用userMapper.updateById(T entity)方法来修改,传入一个实体类
@AutowiredprivateUserMapperuserMapper;@TestpublicvoidtestUpdate(){System.out.println(("-----updatemethodtest------"));LambdaQueryWrapper<User>wrapper=newLambdaQueryWrapper<>();Useruser=newUser();user.setName("张三");wrapper.eq(User::getName,user.getName());UseruserNew=newUser();userNew.setName("李四");intupdate=userMapper.update(userNew,wrapper);if(update>0){System.out.println("修改成功:"+user);}else{System.out.println("修改失败!");}}
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
Java中如何使用MyBatis-Plus操作数据库的详细内容,希望对您有所帮助,信息来源于网络。