[Archivo de configuración MyBatis]

Resumen de las preguntas frecuentes de MyBatis

<mapper namespace="对应于Dao层的接口名称"></mapper>

Formato correcto de la declaración SQL.

insertar

INSERT 
INTO table_name
(column1, column2,...columnN)
VALUES  ( value1, value2,...valueN )

mybatis->insertar

El formato de sintaxis en xml es similar a
la etiqueta insert en sql : significa inserción. El valor de retorno predeterminado es el número de filas afectadas por la base de datos, por lo que en mybatis no necesitamos declarar específicamente el tipo de valor de retorno. La etiqueta
if : la condición de juicio para completar el campo en la prueba, si se cumple, la declaración SQL unirá los campos en la etiqueta if; de lo contrario,
la etiqueta de recorte no se unirá : esta etiqueta se usa para unir los campos que necesitamos
prefijoSignifica prefijo. Por ejemplo, en la siguiente instrucción de inserción, ya hay inserción en nombre_tabla. A continuación necesitamos (como empalme de prefijo, así que aquí ponemos (
sufijoSignifica sufijo, con (, necesitamos), así que coloque **)** al final y coloque los campos de la base de datos que necesitamos en el medio.
Anulaciones de sufijoCuando la condición de juicio en la etiqueta if está vacía, el contenido del sufijo redundante completado en la etiqueta suffixOverrides se elimina (este es solo el caso cuando los campos en la última o varias etiquetas if no cumplen con las condiciones de juicio de la etiqueta if) aparecerá)
jdbcType : El tipo de campo en la base de datos.

<insert id="对应方法名" parameterType="java中所对应的参数类型">
	insert into table_name
	<trim prefix="(" suffix=")" suffixOverrides=",">
		<if test="后端字段名1 != null">
			数据库字段名称1,
		</if>
		<if test="后端字段名2 != null">
			数据库字段名称2
		</if>
	</trim>
	<trim prefix="values (" suffix=")" suffixOverrieds=",">
		<if test="后端字段名1 != null">
			#{后端字段名1,jdbcType=VARCHAR}
		</if>
		<if test="后端字段名2 != null">
			#{后端字段名2,jdbcType=VARCHAR}
		</if>
	</trim>
</insert>

borrar

DELETE 
FROM table_name
where  
table_name.var1='字符串1'
and table_name.var2='字符串2'

mybatis->eliminar

El valor de retorno predeterminado de eliminar es el número de filas de la base de datos afectadas, por lo que no es necesario escribir un tipo de retorno.
Nota :
Eliminar debe determinar claramente si la condición está vacía. Si está vacía, puede eliminar todos los campos de la tabla. .
Cuando solo hay una condición de eliminación, eliminar no se puede usar con la etiqueta if. Úsalos juntos, de lo contrario se informará un error. No
olvides que el conector en la declaración donde de eliminación es y. El prefijo y el sufijo en las etiquetas de recorte están empalmadas al frente y al final de una gran sección del contenido contenido en la etiqueta de recorte, por lo que al eliminar y no se pueden usar

<delete id="对应方法名" parameterType="java中所对应的参数类型">
	delete  
	from table_name
	where
	<trim suffixOverrieds="and">
		<if test="后端字段名1 != null">
			数据库字段名称1=#{后端字段名1,jdbcType=VARCHAR} and
		</if>
		<if test="后端字段名2 != null">
			数据库字段名称2=#{后端字段名2,jdbcType=VARCHAR}
		</if>
	</trim>
</delete>

seleccionar

SELECT col1,col2,col3
FROM table_name
WHERE 条件
[group by column]
[having 条件]
[order by DESC]
[limit 条件]

mybatis->seleccionar

Etiqueta resultMap :
ID del conjunto de resultados: el identificador único de resultMap, que se puede colocar en el atributo resultMap en la declaración de selección
ID en resultMap: contiene la clave principal de la tabla correspondiente (esta)
asociación en resultMap: esta etiqueta puede ser se utiliza para anidar un nuevo objeto (es decir, un objeto dentro de un objeto)
Nota:
Cuando nuestro valor de retorno contiene un objeto de un objeto, tenga en cuenta que puede haber problemas con el valor de retorno del mapa de resultados de dos capas. Se devuelven datos.
Tenga en cuenta que cuando tenemos dos datos, la capa externa Si el contenido correspondiente en el objeto es exactamente el mismo, incluso si el contenido en el objeto interno es diferente, solo se devolverá un dato.
:
1. Haga que el valor de retorno correspondiente al objeto externo sea diferente y agregue una clave principal a resultMap, pero la clase de entidad de fondo no escribe los atributos correspondientes al campo de clave principal.

<select id="对应方法名" parameterType="java中所对应的参数类型" resultMap="要调用的resultMap的名字">
	select 
	from table_name
	where
	<trim suffixOverrieds="and">
		<if test="后端字段名1 != null">
			数据库字段名称1=#{后端字段名1,jdbcType=VARCHAR} and
		</if>
		<if test="后端字段名2 != null">
			数据库字段名称2=#{后端字段名2,jdbcType=VARCHAR}
		</if>
	</trim>
</select>

<resultMap id="这个resultMap的唯一标识" type="对应的结果类型">
	<id column="" jdbcType=""/>
	<result column="" jdbcType=""/>
	<result column="strVar" jdbcType="VARCHAR" property="url"/>
	<result column="timeVar" jdbcType="TIMESTAMP" property="createTime"/>
	<result column="jsonObjectVar"
	                typeHandler="com.hisense.higw.message.config.json.ObjectJsonHandler"
	                jdbcType="VARCHAR"
                	property="dataPackage"/>      
    <association javaType= "大对象中的小对象"
					property="后台参数名"
					resultMap="这个小对象所对应的resultMap的id"

	/>
</resultMap>
<resultMap id="这个resultMap的唯一标识" type="对应的结果类型">
	<id column="" jdbcType=""/>
	<result column="" jdbcType=""/>  
</resultMap>

Supongo que te gusta

Origin blog.csdn.net/ABidMan/article/details/127567629
Recomendado
Clasificación