Mybatis骚操作之——多张数据表,写入同一个实体类

本文介绍了在Mybatis中如何将多张数据表的数据整合到同一个实体类中,通过实例展示了实体类、Mapper、Service、Impl、XML等代码的编写,并在测试中验证了这种方法的可行性,虽然未设置外键关联,但实现了数据的整合存储。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多张数据表,写入同一个实体类


前言

多张数据库表字段写成一张实体类

在我们日常开发中,如果是刚步入社会参加工作,或是跳槽碰上这种情况……
今天入职第一天,负责带我前辈扔了个正在进行开发的项目包给我,花了点时间搭建了下环境啥的,然后把项目跑起来了,于是理所当然的前辈就扔了其中一个模块给我。屡了屡思路,啊!!!!!!
表太多,根据学校学的知识要建好多实体类。然后细看过其他同事写的映射文件,wo哦~~~
数张表映射在同一张实体类里,这样也可以吗!!!!!!!!!!!!!!!!!!!!!!!!!!!


下面我就要开始献丑了

一、建表

CREATE TABLE `teacher` (
  `teacher_name` varchar(10) DEFAULT NULL COMMENT '老师名字',
  `teacher_number` varchar(10) DEFAULT NULL COMMENT '老师电话'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

/*Data for the table `teacher` */

insert  into `teacher`(`teacher_name`,`teacher_number`) values 
('汤唯','1308888444'),
('魏处','1308888333');
CREATE TABLE `position&
### MyBatis 空间数据操作教程 #### 使用MyBatis进行空间数据的操作主要依赖于数据库的空间扩展功能和支持,比如PostGIS对于PostgreSQL的支持。在MyBatis框架内实现这一点涉及几个方面: - **配置支持**:确保使用的数据库具备空间数据类型的处理能力,并且JDBC驱动能够识别这些特殊类型[^2]。 - **映射文件定义**:当涉及到地理信息系统(GIS)中的几何对象时,在`mapper.xml`中编写SQL语句来读取或写入带有空间属性的数据表字段。这通常意味着要利用特定的函数或者语法结构去解析WKT(Well-Known Text),WKB(Well-Known Binary)等形式示的空间信息[^1]。 - **实体类设计**:创建Java类用来封装来自数据库的结果集,其中可能包括一些特殊的库如JTS Topology Suite(JTS)所提供的Geometry类型用于达地理位置特征[^3]。 下面给出一个简单的例子展示如何在一个基于Spring Boot的应用程序里集成MyBatis并执行针对具有空间特性的记录的操作: ```java // Entity class representing a location with spatial attributes. public class Location { private Integer id; @JsonSerialize(using = GeometrySerializer.class) @JsonDeserialize(contentUsing = GeometryDeserializer.class) private Point point; // JTS geometry type public void setId(Integer id){ this.id=id; } public Integer getId(){ return id; } public void setPoint(Point pnt){ this.point=pnt; } public Point getPoint(){ return point; } } ``` ```xml <!-- Mapper XML configuration --> <mapper namespace="com.example.LocationMapper"> <!-- Insert statement that stores WKT string into geom column --> <insert id="saveLocation" parameterType="location"> INSERT INTO locations (geom) VALUES(ST_GeomFromText(#{point.wkt},4326)) </insert> <!-- Select statement returning geometries as text strings --> <select id="findLocationsNearby" resultType="map"> SELECT ST_AsText(geom), distance FROM ( SELECT geom, ST_Distance_Sphere( geom, ST_PointFromText('POINT(longitude latitude)', 4326)) AS distance FROM locations WHERE ... ) subquery ORDER BY distance LIMIT #{limit}; </select> </mapper> ``` 上述代码片段展示了两个基本的功能——保存含有位置坐标的地点到数据库(`saveLocation`)以及查找附近的其他地点(`findLocationsNearby`)。这里假设有一个名为`locations`的数据表,它至少包含一列叫做`geom`用于存储几何图形;而查询部分则运用了ST_Distance_Sphere()这样的空间分析函数计算两点间的球面距离[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五光十色的_團

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值