SpringCloud——服务远程调用完成不同数据库:间的访问
目录
一、案例:根据id查询订单功能
需求:根据订单id查询订单的同时,把订单所属的用户信息一起返回
1.1 数据库信息
我们从下面图中很容易发现,我们是在两个数据库中的两个表,如果我们还是用我们之前的方式查询,根本不可能做到同时查询不同数据库中的两个表
cloud_user中的tb_user表(用户信息表)
cloud_order中的tb_order表(订单表)user表
步骤一:注册RestTemplate
带有@SpringBootApplication注解的本身就是配置类,所以我们可以在下面这个文件下进行注册
-
-
-
public class OrderApplication {
-
-
public static void main(String[] args) {
-
SpringApplication.run(OrderApplication.class, args);
-
}
-
-
-
public RestTemplate restTemplate(){
-
return new RestTemplate();
-
}
-
-
}
步骤二:服务远程调用RestTemplate
对订单OrderService查询业务进行修改
-
-
public class Order {
-
private Long id;
-
private Long price;
-
private String name;
-
private Integer num;
-
private Long userId;
-
private User user;
-
}
-
-
public class User {
-
private Long id;
-
private String username;
-
private String address;
-
}
-
-
public class OrderService {
-
-
-
private OrderMapper orderMapper;
-
-
private RestTemplate restTemplate;
-
-
public Order queryOrderById(Long orderId) {
-
// 1.查询订单
-
Order order = orderMapper.findById(orderId);
-
// 2.利用RestTemplate发起http请求,查询用户
-
// 2.1 url路径
-
String url="http://localhost:8081/user/" order.getUserId();
-
// 2.2 发送http请求,实现远程调用
-
// 这个地方非常的智能,这个地方会问你要一个返回值的类型,其实是返回的JSON,但是如果我们给了一个User类型的话
-
// 它会把JSON数据反序列化成User类型,这样我们就得到了一个User对象
-
User user = restTemplate.getForObject(url, User.class);
-
// 3.封装user到Order
-
order.setUser(user);
-
// 4.返回
-
return order;
-
}
-
}
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgbhiec
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13