2301_79370286 2023-08-10 00:04 采纳率: 0%
浏览 100
已结题

Mybatis-plus如何保存geometry类型的数据

使用的是mybatis-plus,mysql数据库,数据库中使用的类型是point。保存数据总是插入不进去。

  • 写回答

7条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-10 04:08
    关注

    【以下回答由 GPT 生成】

    我理解您的问题是如何使用Mybatis-plus保存MySQL数据库中的geometry类型(point类型)的数据。以下是一个解决方案的步骤:

    1. 确保您的数据库表中有一个geometry类型的列来存储point数据。您可以使用如下的方式创建表:
    CREATE TABLE your_table_name (
        id INT PRIMARY KEY AUTO_INCREMENT,
        location GEOMETRY
    );
    
    1. 确保您的Java实体类中有一个与数据库表对应的属性。请确保该属性的类型为com.vividsolutions.jts.geom.Point,这是Mybatis-plus默认支持的geometry类型。
    import com.vividsolutions.jts.geom.Point;
    
    public class YourEntity {
        private Long id;
        private Point location;
    
        // Getters and setters...
    }
    
    1. 在您的Mybatis-plus配置文件中,添加对geometry类型的支持。在MySQL数据库中,geometry类型需要使用JTS库进行解析和处理。您可以像下面这样配置Mybatis-plus的typeHandlers和typeAliases:
    <!-- typeHandlers -->
    <typeHandlers>
        <typeHandler handler="com.vividsolutions.jts.spatialtysql.mysql.MySQLGeometryTypeHandler"/>
    </typeHandlers>
    
    <!-- typeAliases -->
    <typeAliases>
        <typeAlias alias="point" type="com.vividsolutions.jts.geom.Point"/>
    </typeAliases>
    
    1. 更新您的Mapper接口,使用@Insert注解来保存数据。确保在插入数据时,正确地传递point类型的值。
    import com.baomidou.mybatisplus.core.mapper.BaseMapper;
    import org.apache.ibatis.annotations.Insert;
    import com.vividsolutions.jts.geom.Point;
    
    public interface YourMapper extends BaseMapper<YourEntity> {
        @Insert("INSERT INTO your_table_name (location) VALUES(#{location, typeHandler=com.vividsolutions.jts.spatialtysql.mysql.MySQLGeometryTypeHandler})")
        void insertWithGeometry(YourEntity entity);
    }
    
    1. 最后,在您的业务逻辑代码中调用insertWithGeometry方法来保存数据。
    YourEntity entity = new YourEntity();
    entity.setLocation(point); // 请使用合适的point对象初始化
    
    yourMapper.insertWithGeometry(entity);
    

    这就是一个使用Mybatis-plus保存MySQL数据库中geometry类型的数据的解决方案。希望对您有帮助!

    请注意,以上的解决方案假设您已经正确导入了Mybatis-plus和JTS库,并且在Mybatis-plus配置文件中正确配置了数据源和Mapper接口。如果在实际使用中遇到了问题,请仔细检查您的配置和依赖项是否正确。如果您已经尝试上述方法但仍然无法成功,请告诉我您遇到的错误提示,我将尽力帮助您解决问题。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月10日
  • 创建了问题 8月10日