MyBatis atraviesa cadenas, utiliza símbolos especiales en MyBatis y conversión de tipos de datos SQL


Prefacio

En los últimos dos días, he encontrado algunos problemas en el funcionamiento de la base de datos mybatis. De hecho, la razón principal es que el conocimiento de la base de datos es un poco débil. Es mi alimento, así que escribo un blog y tomo una nota. No me confundiré cuando lo encuentre en el futuro.

Uno, MyBatis atraviesa la cuerda

Hablando de myBatis traversal, solo pienso en mybatis atravesando arreglos o listas enlazadas, por lo que mi campo es una cadena como "1, 2, 3". Entonces, lo primero que pienso es cuando llamo a la interfaz Mapper, la cadena se convierte a Array, pasado a mybatis, de hecho, no hay ningún problema en circunstancias normales, pero la configuración de mi base de datos tiene demasiadas asignaciones. Antes de llamar a la cadena a una matriz, llamé al método transversal MyBatis a través del mapeo de métodos y luego informé el error de falta de coincidencia de datos. Esto es imposible de prevenir. Siempre pensé que mi método de recorrido era incorrecto. A
continuación se muestra cómo atravesé la cadena. Lo aprendí, pero aún puedo usarlo así.

 select * from t_toWho where id in
        <foreach collection="strs.split(',')" item="item" index="index"  open="(" close=")" separator=",">
            CONVERT(#{item},SIGNED)
        </foreach>

2. Utilice símbolos especiales en MyBatis

Porque las sentencias anteriores en Mybatis son las siguientes

<if test="A!=null and A!=“”"> </if>

Así que hoy de repente intenté comparar el tamaño y encontré un error

El valor del atributo "prueba" asociado con el tipo de elemento "si" no puede contener el carácter '<'

Deliberadamente fui a aprender una ola

gt corresponde a>
gte corresponde a> =
lt corresponde a <
lte corresponde a <=
eq corresponde a ==
neq corresponde a! =

También encontré un poco sobre el empalme de cadenas
porque quiero implementar una consulta difusa, porque las razones son las mismas que las anteriores, hay muchas asignaciones, de lo contrario, no será tanto cuando se empalme directamente al llamar a la interfaz Mapper.
No hay mucho que decir directamente. Subir código

and toWhoId like  CONCAT(CONCAT('%', #{toWhoId}), '%')


De hecho, hay muchas formas. Creo que el método anterior es bueno e intuitivo. Si hay uno mejor, ayúdame a señalarlo en los comentarios.

Conversión de tipo de datos SQL

int a varchar

123+ ''
CAST (123 COMO CHAR);

varchari a int

CONVERTIR (# {item}, FIRMADO)
CONVERTIR ('67', FIRMADO);


para resumir

Tome buenas notas en cada hoyo, y mejorará cada vez más.

Supongo que te gusta

Origin blog.csdn.net/weixin_43691773/article/details/108905752
Recomendado
Clasificación