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

网站建设后台管理便捷遵义网站制作

网站建设后台管理便捷,遵义网站制作,分享设计的网站,哪里有培训网站开发一、特性 Mybatis应该大家现在都知道,而且在项目中都在使用,因为这块ORM框架让大家能专心业务SQL的编写,数据库的连接,连接池的使用都不用关心,极大的提高了生产效率。 今天要给大家介绍的另外一款ORM框架&#xff0…

一、特性

Mybatis应该大家现在都知道,而且在项目中都在使用,因为这块ORM框架让大家能专心业务SQL的编写,数据库的连接,连接池的使用都不用关心,极大的提高了生产效率。

今天要给大家介绍的另外一款ORM框架,是Mybatis Plus,这块工具正如其官网说的:

1)润物无声

只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。

2)效率至上

只需简单配置,即可快速进行单表CRUD操作,从而节省大量时间。

3)丰富功能

代码生成、自动分页、逻辑删除、自动填充功能。

二、实战

1)相关依赖

还等什么,赶紧在项目中使用吧。

如果你的项目中已经能够通过正常访问Mysql数据库,那就非常简单,只需要下面依赖即可。

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3.3</version>
</dependency>

如果你是刚开始学习,那么数据库访问这块就必须加上这些依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId>
</dependency>

2)常用注解

接下来就需要在数据库建个表,如果你有表了那更方便,直接开始建实体类,现在以Order订单表为例:

@TableName("`order`")
public class Order implements Serializable {@TableId(type = IdType.AUTO)private Integer orderNo;private String prodName;private Float prodPrice;private Integer prodNum;public Integer getOrderNo() {return orderNo;}public void setOrderNo(Integer orderNo) {this.orderNo = orderNo;}public String getProdName() {return prodName;}public void setProdName(String prodName) {this.prodName = prodName;}public Float getProdPrice() {return prodPrice;}public void setProdPrice(Float prodPrice) {this.prodPrice = prodPrice;}public Integer getProdNum() {return prodNum;}public void setProdNum(Integer prodNum) {this.prodNum = prodNum;}@Overridepublic String toString() {return "Order{" +"orderNo=" + orderNo +", prodName='" + prodName + '\'' +", prodPrice=" + prodPrice +", prodNum=" + prodNum +'}';}
}

这里需要重点讲下,这个实体类用到了Mybatis Plus提供的两个注解:

@TableName

这个注解里面需要填的是表的名称,因为order和MySQL的关键字冲突了,因为需要额外再加一个单引号,否则后面执行程序会报错,如果你是正常的业务表名,不需要额外加单引号。

@TableId

这里针对主键字段需要加这个,表示其注解,类型可以根据数据库的实际情况选择,例如自增长就和我选一样。

3)接口定义

到这里,如果是Mybatis就需要写xxMapper.xml文件和一个xxDao的mapper接口类,今天我们使用的是Mybatis Plus,只需要写一个mapper接口类一步搞定。

@Repository
public interface OrderMapper extends BaseMapper<Order> {
}

这里就是官网提到的效率至上:只需简单配置,即可快速进行单表CRUD操作,从而节省大量时间。

下面我们就使用一下,看怎么访问数据库的。比如从订单表里捞取商品名称是apple的订单:

LambdaQueryWrapper<Order> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Order::getProdName, "apple");
List<Order> orderList = orderMapper.selectList(queryWrapper);
orderList.forEach(o -> System.out.println(o));

是不是非常简单,如果大家想知道基类,也就是BaseMapper里面提供了哪些操作,大家可以自己进入源码看看,总是单个插入、单个查询、批量查询、删除、更新、分页查询都有了。

3.1)LambdaQueryWrapper 和 QueryWrapper的区别

上面的代码中展示了LambdaQueryWrapper的使用方式,下面再用QueryWrapper实现同样的功能:

QueryWrapper<Order> queryWrapper = new QueryWrapper();
queryWrapper.eq("prod_name", "apple");
List<Order> orderList = orderMapper.selectList(queryWrapper);
orderList.forEach(o -> System.out.println(o));

LambdaQueryWrapper可以使用表对应的实体类直接调用get方法获取列名,而QueryWrapper只能填列名字符串,这样如果表有修改,很难知道哪些地方用到了此列名,会造成遗漏。

3.2)分页查询

分页查询要注意的是不能直接用BaseMapper里面的selectPage方法,需要在配置类中引入Page拦截器,这里推荐官方的拦截器。

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class MyBatisPlusConfiguration {/*** 新增分页拦截器,并设置数据库类型为mysql*/@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}
}

写一个测试类跑一跑

@RestController
@RequestMapping("/order")
public class OrderController {@Autowiredprivate OrderMapper orderMapper;@RequestMapping("/page")public Page<Order> queryPage(@RequestParam("num") Integer pageNum,@RequestParam("size") Integer pageSize){Page<Order> page = new Page(pageNum, pageSize);LambdaQueryWrapper<Order> queryWrapper = new LambdaQueryWrapper<>();Page page1 = orderMapper.selectPage(page, queryWrapper);return page1;}
}
{"records": [{"orderNo": 1,"prodName": "apple","prodPrice": 3.6,"prodNum": 3}, {"orderNo": 2,"prodName": "apple","prodPrice": 3.8,"prodNum": 4}, {"orderNo": 3,"prodName": "pear","prodPrice": 7.5,"prodNum": 2}, {"orderNo": 4,"prodName": "pear","prodPrice": 7.2,"prodNum": 3}],"total": 6,"size": 4,"current": 1,"orders": [],"optimizeCountSql": true,"searchCount": true,"countId": null,"maxLimit": null,"pages": 2
}

三、总结

今天这篇文章的重点是介绍mybatis-plus这块效率工具,希望大家都能尽快的在项目中使用,有什么问题大家相互交流,这样才能提高。

http://www.yayakq.cn/news/946116/

相关文章:

  • 网站建设和维护一年的费用如何建设合法的网站
  • 政务移动门户网站建设园区二学一做网站
  • 如何鉴定网站做的好坏wordpress百度cdn
  • 北京朝阳区房价2022最新价格网络推广与seo的区别在哪里
  • 浙江省火电建设公司网站html5建设网站
  • 跨境电商工具类产品的网站wordpress更改域名 后台
  • 毕业设计做网站 答辩会问什么问题织梦网站新闻列表调用
  • 网站导航栏设计代码网站模板的使用
  • 网站建设的种类网站制作价格推 荐
  • 九龙坡区建设二校的网站一键优化大师下载
  • 导航门户网站怎么做郯城建设局网站
  • 做软件的声称发现网站漏洞做营销型网站需要注意哪些点
  • localhost怎么做网站wordpress文章设置到导航栏
  • 郴州网站建设流程简体中文wordpress5.2下载
  • 网络营销推广方案公司杭州百度推广优化排名
  • 抽奖网站怎么做哪里有做php网站免费教程
  • 怎样做一个公司网站赣榆区住房和城乡建设局网站
  • 南昌网站建设冲浪者广州建设网站开发
  • 苏州有哪些做网站该网站想要跳转百度app
  • 网站页面设计要求全网响应式网站
  • 能不能模仿百度一样做搜索引擎网站成都html5网站设计
  • 厦门 网站建设闽icp如何创建网站的详细步骤
  • 备案网站管理系统互联网保险有哪些
  • 网站制作怎么做语音搜索框做泵阀到哪个网站好
  • 河津做网站深圳网站推广活动方案
  • 海口网站建设的开发方案平台公司名称
  • 自己做的网站可以百度推广吗北京学做网站
  • 湖北省平安建设网站网站界面风格
  • 网站建设售后服务安全维护网络布线设计方案
  • 西部数码网站管理助手 mysql网站模板含数据库下载