La configuración de springboot maneja la denominación de joroba de la clase de entidad mybatis y el mapeo unificado del formato de subrayado en la tabla de la base de datos.

1. Antecedentes

proyecto springboot, mybatis.

Clase de entidad, formato camelcase de atributo, como orderNumber

package com.example.usermanagement.entity;


import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import javax.persistence.*;

@Entity
@Table(name = "shipping")
@Getter
@Setter
@Data
@NoArgsConstructor
public class Shipping {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false)
    private String orderNumber; // 订单号

    @Column(nullable = false)
    private String shippingDate; // 发货日期

    @Column(nullable = false)
    private String shippingAddress; // 发货地址

    @Column(nullable = false)
    private String trackingNumber; // 快递单号

    @Column(nullable = false)
    private String recipientName; // 收货人姓名

    @Column(nullable = false)
    private String recipientPhone; // 收货人手机号
}

En la base de datos, los campos de la tabla están en formato subrayado

CREATE TABLE `shipping` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `order_number` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '订单号',
  `shipping_date` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '发货日期',
  `shipping_address` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '发货地址',
  `tracking_number` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '快递单号',
  `recipient_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '收货人姓名',
  `recipient_phone` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '收货人手机号',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

 

Dos, la solución 

1. application.ymlConfiguración

application.ymlPara configurar cómo camelCase maneja la asignación de subrayado a entidades en , puede usar las propiedades de configuración de MyBatis para controlar .

Aquí hay un application.ymlarchivo de configuración de ejemplo:

mybatis:
  configuration:
    map-underscore-to-camel-case: true

En el ejemplo anterior, a través mybatis.configuration.map-underscore-to-camel-case: truedel elemento de configuración, el caso de camello está habilitado y el guión bajo se asigna automáticamente al atributo de caso de camello de la clase de entidad.

Después de esta configuración, MyBatis convertirá automáticamente el guión bajo en el campo de la tabla de la base de datos al atributo camelcase named correspondiente en la clase de entidad para lograr un estilo de nomenclatura unificado.

2. Compilación del mapeador de anotaciones

import com.example.demo.model.Shipping;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface ShippingMapper {

    @Insert("INSERT INTO shipping (order_number, shipping_date,shipping_address,tracking_number,recipient_name,recipient_phone) VALUES (#{orderNumber}, #{shippingDate},#{shippingAddress},#{trackingNumber},#{recipientName},#{recipientPhone})")
    int insertShipping(Shipping shipping);
    
    // 其他方法...

}

En el ejemplo anterior, usamos @Mapperanotaciones para identificar que se trata de una interfaz Mapper de MyBatis, usamos @Insertanotaciones para especificar declaraciones de inserción y referirnos a campos en #{}clases de entidad a través de marcadores de posición .Shipping

Cabe señalar que el nombre del marcador de posición aquí debe ser Shippingcoherente con el nombre del campo en la clase de entidad; de lo contrario, la inserción fallará.

Supongo que te gusta

Origin blog.csdn.net/qq_39208536/article/details/132225305
Recomendado
Clasificación