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

国外创意网站欣赏手机怎么做淘客网站

国外创意网站欣赏,手机怎么做淘客网站,静态网页设计源代码,wordpress acg模板MybatisPlus进阶 1.MybatisPlus一对多查询 2.分页查询 1.MybatisPlus一对多查询 场景:我有一个表,里面填写的是用户的个人信息(姓名,生日,密码,用户ID)。我还有一个表填写的订单信息&#x…

MybatisPlus进阶

1.MybatisPlus一对多查询

2.分页查询

1.MybatisPlus一对多查询

场景:我有一个表,里面填写的是用户的个人信息(姓名,生日,密码,用户ID)。我还有一个表填写的订单信息(订单编号,订单价格,下单用户id)。现在我想查询用户信息的时候,将用户的订单信息一并查询出来。

a.编写User类

第一步肯定是编写User类,User里应该包含用户ID,密码,生日,用户对应订单。这里需要注意,根据ORM,我们编写的User类是对应了User表的,但是User表里是不包含订单这个字段的。所以,我们在编写的时候,需要注明该字段是不存在User表中,不然会报错。

package com.example.mpdemo;import java.util.List;import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;@TableName("t_user")
public class User {private int id;private String username;private String password;private String birthday;@TableField(exist = false)private List<Order> orders;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getBirthday() {return birthday;}public void setBirthday(String birthday) {this.birthday = birthday;}public List<Order> getOrders() {return orders;}public void setOrders(List<Order> orders) {this.orders = orders;}}

@TableName对应表格名称,若不写,则默认是类的名称,大小写不敏感。

@TableField(exist = false)则表示该字段在表格中不存在。属于MybatisPlus中的功能。

用户表和订单表:

由于是一对多,且存在用户表中不存在的订单字段,所以需要自己写Result。

package com.example.mpdemo;import java.util.List;import org.apache.ibatis.annotations.Many;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;import com.baomidou.mybatisplus.core.mapper.BaseMapper;@Mapper
public interface UserMapper extends BaseMapper<User>{@Select("select * from t_user")@Results({@Result(column = "id", property = "id"),@Result(column = "username", property = "username"),@Result(column = "password", property = "password"),@Result(column = "birthday", property = "birthday"),@Result(column = "id", property = "orders", javaType = List.class, many = @Many(select = "com.example.mpdemo.OrderMapper.selectByUid"))	})List<User> selectAllUserAndOrders();}

@Result注解中,column表示数据库中的字段,property则表示User类中的字段名称。

最后一个@@Many注解中,column表示数据库中的字段,property则表示User类中的字段名称,javaType表示返回的Java类型,因为一个用户可以拥有多个订单信息,所以返回的是list。select表示要使用Mapper。

由于需要根据用户ID查询订单,所以需要编写Order类和Order对应的Mapper。

package com.example.mpdemo;import java.sql.Date;import com.baomidou.mybatisplus.annotation.TableName;@TableName("t_order")
public class Order {private int id;private String order_time;private String total;private String uid;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getOrder_time() {return order_time;}public void setOrder_time(String order_time) {this.order_time = order_time;}public String getTotal() {return total;}public void setTotal(String total) {this.total = total;}public String getUid() {return uid;}public void setUid(String uid) {this.uid = uid;}}

package com.example.mpdemo;import java.util.List;import org.apache.ibatis.annotations.Many;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.type.JdbcType;import com.baomidou.mybatisplus.core.mapper.BaseMapper;@Mapper
public interface OrderMapper extends BaseMapper<Order> {@Select("select * from t_order where uid = #{uid}")@Results({@Result(column = "id", property = "id"),@Result(column = "order_time", jdbcType = JdbcType.DATE,property = "order_time"),@Result(column = "total", property = "total"),@Result(column = "uid", property = "uid"),	})List<Order> selectByUid(int uid);}

最后,我们需要编写一个Controller来实现查询:

package com.example.mpdemo;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;@RestController
public class UserContoller {@Autowiredprivate UserMapper userMapper;@GetMapping("/user/findall")public List<User> findall() {List<User> results = userMapper.selectAllUserAndOrders();return results;}}

通过POSTman请求,查看结果:(我这里设置的端口是8081)

这样我们就实现了查询用户信息并且查询用户下单信息。

2.分页查询:

分页查询,mybatisPlus为我们提供了相应的分页插件。所以我们不需要自己编写一个分页拦截器,只需将MybatisPlus为我们提供的分页拦截器通过@configuration配置注解到Springboot当中即可。因为分页是通过拦截器实现的,拦截器拦截并修改SQL语句,返回分页查询结果,实现分页。

package com.example.mpdemo;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;@Configuration
public class MybatisPlusConfig {@Beanpublic MybatisPlusInterceptor paginationInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);interceptor.addInnerInterceptor(paginationInnerInterceptor);return interceptor;}}

根据MybitsPlus提供的分页,我们的Controller需要这样编写:

package com.example.mpdemo;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;@RestController
public class UserContoller {@Autowiredprivate UserMapper userMapper;@GetMapping("/user/findall")public List<User> findall() {List<User> results = userMapper.selectAllUserAndOrders();return results;}@GetMapping("/user/findbypage/{page}")public IPage findByPage(@PathVariable int page) {Page<User> pageDemo = new Page<>(page,2);IPage iPage = userMapper.selectPage(pageDemo, null);return iPage;}
}

其中参数page表示第几页,返回的是IPage。因为我们的usermapper继承了MybatisPlus的BaseMapper,BaseMapper其中有selectPage方法。

看看结果:

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

相关文章:

  • wordpress+整站下载移动端网站教程
  • 南宁企业网站建设技术公司天津哪里有做网站的
  • 做网站的证书做网站怎么收费多少
  • 网站开发与设计岗位职责合肥大型网站
  • 网站策划是干嘛的网站设计源代码
  • 网站建设怎么让网站收录天津做网站优化哪家好
  • 可直接打开网站的网页广告图片怎么制作
  • 汝阳建设局网站网站更新维护
  • app科技网站建设代做毕网站
  • 上海城市建设官方网站WordPress更改logo插件
  • 网站模板 寻模板找厂家用什么软件
  • 潍坊网站推广排名北京ui及网页设计
  • 自学网站建设视频项目vi设计公司
  • 公司网站建设需要考虑什么问题有关网站建设文章
  • 现在网站都是拿什么软件做的上海高端网站定
  • wordpress ss管理郑州seo技术服务顾问
  • 网站建设栏目结构表找人做网站协议
  • 兴业大街网站建设网站集约化建设 技术
  • 南宁市网站开发网络推广培训培训机构
  • 广东网站建设公司报价网站开发公司怎么查
  • 更换网站模板公众号开发需要提供什么
  • 建设银行网站查询工资纯流量卡免费申请入口
  • 单页网站域名网站如何设置关键词
  • 成都网站推广技巧2016网站优化
  • vps网站管理器东莞建设公司网页
  • 网站群方案今天的新闻直播
  • 深圳做微信网站网站支付宝接口代码
  • wordpress 关站百度一下你就知道官网网页
  • 个人怎么做音乐网站网站建设的方法有哪些方面
  • 竞价托管推广哪家好微信seo排名优化软件