package com.wzkj.web.entity;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;
import org.apache.ibatis.type.Alias;
public class Route {
private Long id;
private Long type_id;
private String route_name;
private String route_profile;
private Float distance;
private String tips;
private boolean is_top;
private String cover_img;
private Long view_count;
private Timestamp create_time;
private List<RoutePoint> list;
public String getRoute_name() {
return route_name;
}
public void setRoute_name(String route_name) {
this.route_name = route_name;
}
public String getRoute_profile() {
return route_profile;
}
public void setRoute_profile(String route_profile) {
this.route_profile = route_profile;
}
public Float getDistance() {
return distance;
}
public void setDistance(Float distance) {
this.distance = distance;
}
public String getTips() {
return tips;
}
public void setTips(String tips) {
this.tips = tips;
}
public boolean isIs_top() {
return is_top;
}
public void setIs_top(boolean is_top) {
this.is_top = is_top;
}
public Timestamp getCreate_time() {
return create_time;
}
public void setCreate_time(Timestamp create_time) {
this.create_time = create_time;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getType_id() {
return type_id;
}
public void setType_id(Long type_id) {
this.type_id = type_id;
}
public Long getView_count() {
return view_count;
}
public void setView_count(Long view_count) {
this.view_count = view_count;
}
public String getCover_img() {
return cover_img;
}
public void setCover_img(String cover_img) {
this.cover_img = cover_img;
}
public List<RoutePoint> getList() {
return list;
}
public void setList(List<RoutePoint> list) {
this.list = list;
}
}
package com.wzkj.web.entity;
public class RoutePoint {
private Long id;
private Long route_id;
private String point_name;
private Long priority;
private Float longitude;
private Float latitude;
private String point_profile;
private Route route;
public String getPoint_name() {
return point_name;
}
public void setPoint_name(String point_name) {
this.point_name = point_name;
}
public Float getLatitude() {
return latitude;
}
public void setLatitude(Float latitude) {
this.latitude = latitude;
}
public String getPoint_profile() {
return point_profile;
}
public void setPoint_profile(String point_profile) {
this.point_profile = point_profile;
}
public Float getLongitude() {
return longitude;
}
public void setLongitude(Float longitude) {
this.longitude = longitude;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getRoute_id() {
return route_id;
}
public void setRoute_id(Long route_id) {
this.route_id = route_id;
}
public Long getPriority() {
return priority;
}
public void setPriority(Long priority) {
this.priority = priority;
}
public Route getRoute() {
return route;
}
public void setRoute(Route route) {
this.route = route;
}
}
Mapper
package com.wzkj.manage.mapper;
import java.util.List;
import org.apache.ibatis.annotations.DeleteProvider;
import org.apache.ibatis.annotations.InsertProvider;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.SelectProvider;
import org.apache.ibatis.annotations.UpdateProvider;
import org.apache.ibatis.annotations.Many;
import com.wzkj.manage.mapper.provider.RouteProvider;
import com.wzkj.web.entity.Route;
public interface RouteMapper {
@SelectProvider(type = RouteProvider.class, method = "getById")
@Options(flushCache = true, timeout = 20000)
@ResultMap(value ="RouteResult")
public Route getById(@Param("id") int id);
}
xml 文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<mapper namespace="com.wzkj.manage.mapper.RouteMapper">
<resultMap id="RouteResult" type="com.wzkj.web.entity.Route">
<id property="id" column="id" javaType="long" jdbcType="NUMERIC" />
<id property="type_id" column="type_id" javaType="long" jdbcType="NUMERIC" />
<id property="route_name" column="route_name" javaType="string" jdbcType="VARCHAR" />
<id property="route_profile" column="route_profile" javaType="string" jdbcType="VARCHAR" />
<id property="distance" column="distance" javaType="float" jdbcType="FLOAT" />
<id property="tips" column="tips" javaType="string" jdbcType="VARCHAR" />
<id property="is_top" column="is_top" javaType="boolean" jdbcType="TINYINT" />
<id property="cover_img" column="cover_img" javaType="string" jdbcType="VARCHAR" />
<id property="view_count" column="view_count" javaType="long" jdbcType="NUMERIC" />
<id property="create_time" column="create_time" javaType="java.sql.Timestamp" jdbcType="TIMESTAMP" />
<collection property="list" select="RoutePointResult" column="id" ></collection>
</resultMap>
<select id="RoutePointResult" parameterType="int" resultType="com.wzkj.web.entity.RoutePoint">
select * from wz_route_point where route_id = #{id}
</select>
</mapper>
分享到:
相关推荐
Mybatis通过`<association>`和`<collection>`的组合来实现,需要在映射文件中定义两个实体间的关联关系。 在"MybatisOL"这个压缩包中,可能包含了以下内容: - `UserMapper.xml`:用户相关的映射文件,可能包含了与...
分别说出这三种关系属于MyBatis关联关系的哪种类型,通过在相应表中添加合适的外键或创建中间表的方式实现这些关联关系,并创建相应的类,实现以下的查询: (1)通过Student表的id查找该学生的信息,并同时获取其学号...
在MyBatis中,我们可以利用ResultMap来配置这些关联关系。ResultMap是MyBatis用来映射查询结果到Java对象的工具,它可以处理复杂的数据结构,包括一对一、一对多和多对多的关系。 1. **一对一关联查询**: 在一对...
MyBatis 是一款优秀的持久层框架,它支持...这个例子不仅展示了 MyBatis 处理复杂关联关系的能力,也体现了其灵活性和易用性。在实际开发中,根据业务需求,我们还可以进一步优化查询性能,例如添加缓存、分页等特性。
"关联映射"是MyBatis中的一个重要概念,用于处理数据库中表之间的关联关系,比如一对一、一对多、多对一和多对多的关系。下面将详细介绍MyBatis的关联映射以及如何在代码中实现。 关联映射是MyBatis通过XML配置文件...
常见的关联关系包括多对一、一对多以及多对多。MyBatis提供了多种方法来处理这些关联查询,包括嵌套结果、嵌套查询等。 #### 三、关联查询类型详解 ##### 1. 多对一 - **概念**: 在多对一的关系中,多个实体对应...
在MyBatis中,关联映射是处理对象关系映射(ORM)的重要部分,用于描述实体类之间的关联关系,如一对一(OneToOne)、一对多(OneToMany)和多对多(ManyToMany)。下面我们将深入探讨这些关联映射的实现和原理。 ...
了解数据表之间以及对象之间的三种关联关系 2.熟悉关联关系中的嵌套查询和 嵌套结果 3.掌握一对一,一对多,和多对多关联映射作用
MyBatis是一个优秀的持久层框架...总之,MyBatis的关联和级联特性使得对象关系映射更加自然,动态SQL则让数据库操作变得更加灵活和高效。理解并熟练运用这些功能,将极大地提升你在处理数据库交互时的效率和代码质量。
在处理复杂的数据库关联关系时,MyBatis 提供了一对一、一对多、多对多等多种映射方式,使得数据模型的构建和数据查询变得更加灵活。 ### 一对一映射 1. **查询方式**:在 MyBatis 中,一对一映射可以通过圆点记法...
理解这些关联关系对于构建复杂的业务逻辑至关重要。 首先,我们需要配置Spring与MyBatis的整合。这通常涉及以下几个步骤: 1. 引入相关依赖:在项目中添加Spring和MyBatis的库,以及数据库驱动。 2. 配置...
在 Springboot 中,MyBatis 提供了强大的表关联映射关系机制,可以实现一对一、多对一、多对多等各种关联关系。在本文中,我们将详细介绍 Springboot 中 MyBatis 表关联映射关系的实现机制,特别是针对一对一关联...
在 MyBatis 中,我们可以使用 `<collection>` 元素来处理一对多关联关系。 在 `<collection>` 元素中,我们可以配置以下几个属性: * `javaType`:指定映射到实体对象属性的类型,用于指定实体对象中集合类属性所...
关联映射是MyBatis中处理对象与对象间关联关系的关键特性,尤其在企业级应用开发中,面对复杂的数据库表关联,关联映射能有效地简化数据访问逻辑。 在关系型数据库中,常见的关联关系有三种:一对一(One-to-One)...
在企业级应用开发中,...通过上述步骤,我们可以有效地实现企业级应用中数据的增删改查,同时处理一对多、多对一、多对多等各种关联关系。在实际开发中,这大大提高了代码的可读性和维护性,降低了出错的可能性。
在这个场景中,"mybatis关联查询问题(一对多、多对一)"是核心关注点,这涉及到数据库设计中的关系映射以及在Mybatis中如何处理这些关系。 1. **一对多关联**: 在数据库设计中,一对多关联是指一个表中的记录可以...
在这个“Mybatis关联练习”中,我们将深入探讨Mybatis中的一对一、一对多和多对一关系映射,以及如何通过接口实现数据查询,并结合分页插件提高查询效率。 首先,我们来看一下Mybatis中的一对一关联。一对一关系...
关联关系是ORM中关键的概念,它模拟了现实世界中的实体之间的联系。本篇文章将深入探讨Hibernate中常见的几种关联关系及其基本配置。 一、一对一(OneToOne)关联 在一对一关联中,一个实体对象只对应数据库中的一...
**MyBatis关联映射详解** 在Java开发中,MyBatis作为一个优秀的持久层框架,提供了灵活的数据映射功能,使得数据库操作变得简单而高效。其中,关联映射是MyBatis中的一个重要特性,用于处理数据库中复杂的关系,如...
4. **使用MyBatis的ResultMap**:为了正确地将查询结果映射到Java对象,我们可能需要自定义ResultMap,指定关联关系的映射规则。 5. **中间表的处理**:虽然MyBatis没有直接提供处理多对多中间表的API,但我们可以...