springboot生成的*mapper.xml id重复

本文记录了解决MyBatis Generator代码生成器配置中出现的重复代码问题,通过去除suppressAllComments属性设置,成功避免了生成代码时的注释重复,解决了SpringMVC项目中的代码生成难题。

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

原配置文件

 <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->
        <table tableName="user" domainObjectName="UserDAO" enableCountByExample="true"
               enableUpdateByExample="true" enableDeleteByExample="true"
               enableSelectByExample="true" selectByExampleQueryId="true">
        </table>

加上schema=“xq”

        <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->
        <table schema="xq" tableName="user" domainObjectName="UserDAO" enableCountByExample="true"
               enableUpdateByExample="true" enableDeleteByExample="true"
               enableSelectByExample="true" selectByExampleQueryId="true">
        </table>

原因是这个链接数据库的账户是DBA权限,这个数据库有多个库(DB)导致。

写这段配置文件的时候我还在想之前的时候我是配置了DB的,这次看文档的时候没有写我也就没有在意,就遇到坑咯。。

然而这种方法并没有解决我的问题。=_=>
但是这个可以决绝springmvc的问题。

继续找办法。。

办法找到了

解决方法:
去掉这一行代码,即在生成代码时不去除注释

<property name="suppressAllComments" value="true"/>

去掉之后 生成代码确实不会重复了。。

但是为什么呢?求解呀

参考地址
参考地址

### Spring Boot 中 MyBatis Mapper XML 实现 Insert 操作 在 Spring Boot 项目中,MyBatis 提供了一种简单的方式来定义数据库操作逻辑。通过 `Mapper` 接口和对应的 XML 文件可以完成数据的增删改查功能。以下是关于如何在 `Mapper.xml` 文件中实现新增 (`INSERT`) 操作的具体方法。 #### 配置环境 为了使 MyBatis 正常工作,在 Spring Boot 项目中需要引入必要的依赖项以及配置资源路径。通常情况下,XML 映射文件会被放置于 `src/main/resources/mapper` 路径下[^2]。 #### Maven 依赖 确保项目的 `pom.xml` 文件中有如下依赖: ```xml <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>3.0.1</version> </dependency> <!-- 数据库驱动 --> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency> ``` 上述代码片段展示了 MyBatis 和 H2 数据库的相关依赖配置[^1]。 #### 创建实体类 (Entity) 假设有一个简单的用户表结构,对应 Java 类为 `User.java`: ```java public class User { private Integer id; private String name; private int age; // Getters and Setters } ``` #### 定义 Mapper 接口 创建一个接口来声明 SQL 方法: ```java import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Options; public interface UserMapper { @Insert("INSERT INTO users(name, age) VALUES(#{name}, #{age})") @Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id") void insert(User user); } ``` 此部分使用了注解方式指定插入语句并返回自动生成的主键值。 #### 编写 Mapper XML 文件 如果更倾向于基于 XML 的映射,则可以在 `resources/mapper/UserMapper.xml` 文件中编写如下内容: ```xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.mapper.UserMapper"> <!-- 插入新记录 --> <insert id="insert" parameterType="com.example.entity.User" useGeneratedKeys="true" keyProperty="id"> INSERT INTO users (name, age) VALUES (#{name}, #{age}) </insert> </mapper> ``` 以上代码实现了向名为 `users` 表中的字段 `name` 和 `age` 添加新值的功能,并利用数据库生成的主键更新对象属性 `id`。 #### 测试案例 最后可以通过单元测试验证该功能是否正常运行: ```java @SpringBootTest class UserServiceTest { @Autowired private UserMapper userMapper; @Test public void testInsert() { User user = new User(); user.setName("John Doe"); user.setAge(30); userMapper.insert(user); // 执行插入操作 assertNotNull(user.getId()); // 确认 ID 已被设置 } } ``` 这段代码演示了一个基本的插入测试过程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值