Mybatis [2] -múltiples archivos de mapeador y función de espacio de nombres

pexels-Johann-mayor-1435075

Múltiples archivos de mapeador y función de espacio de nombres

¿Qué hacer si hay varios archivos de mapeador y para qué sirve el espacio de nombres?
Primero, veamos la creación de una declaración de base de datos:

#创建数据库
CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
#创建数据表
CREATE TABLE `student` ( `id` INT NOT NULL AUTO_INCREMENT , `name` VARCHAR(20) NOT NULL ,
`age` INT NOT NULL , `score` DOUBLE NOT NULL , PRIMARY KEY (`id`)) ENGINE = MyISAM;

Aquí tenemos que volver a explicar el proceso de ejecución de Mybatis: Primero, Resources.getResourceAsStream("mybatis.xml")leemos mybatis.xmleste archivo. La configuración en este archivo es la configuración relacionada con todo el proyecto y la base de datos, como el entorno de la base de datos cuando se está ejecutando (qué base de datos conectarse a, La dirección, nombre de usuario, contraseña del servidor de la base de datos), o configurar un archivo de configuración externo, etc. Lo más importante es que este archivo se registre con un archivo de mapeo (archivo mapeador) , luego cuando lo usemos SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);, sqlSessionFactoryvolver mybatis.xmly leer el archivo de configuración leído en su interior, y obtendremos el archivo de Mappermapeo leído por cada archivo de configuración uno por uno . Cuando usemos la instancia openSession()obtenida sqlSession, por ejemplo , cuando la usemos , buscaremos sqlSession.insert("insertStudent",student);la declaración de configuración sql en cada mapper, que es similar al siguiente:

<mapper namespace="mapper1">
    <insert id="insertStudent" parameterType="bean.Student">
        insert into student(name,age,score) values(#{name},#{age},#{score})
    </insert>
</mapper>

idSimplemente encuentre el mismo, mucha gente dirá, dado que se usa la distinción id, ¿para qué es el atributo de espacio de nombres en mi archivo de mapeador?

Cuando tenemos dos o más de lo mismo id, debemos usar el espacio de nombres para distinguir, si solo hay un mapper.xmlarchivo, entonces podemos namespaceescribir cualquier cosa, cuando lo usemos, solo necesitamos: sqlSession.insert("insertStudent",student);está bien, si nuestros identificadores son los mismos, entonces necesitamos para usar: sqlSession.insert("mapper1.insertStudent",student);agregar al frente namspace. De lo contrario, aparecerá el siguiente error, indicándonos que usemos el nombre completo para incluirlo namespaceo redefinirlo id.
En general, o idson diferentes y se pueden utilizar directamente, o idson iguales, pero no son namespaceiguales, y las namespacediferencian a la hora de utilizarlas . De lo contrario, se informará el siguiente error:
Mybatis [2] -múltiples archivos de mapeador y función de espacio de nombres

Para varios archivos de mapeador, es necesario registrar dos archivos en el archivo mybatis.xml:

        <!-- 注册映射文件 -->
        <mappers>
            <mapper resource="mapper/mapper1.xml"/>
            <mapper resource="mapper/mapper2.xml"/>
        </mappers>

Agregue un espacio de nombres cuando use:
Mybatis [2] -múltiples archivos de mapeador y función de espacio de nombres

Este artículo solo representa mi propio registro de acumulación de estudios (el novato), o notas de estudio; si hay alguna infracción, comuníquese con el autor para eliminarlo. Nadie es perfecto, también lo es el artículo, la escritura es inmadura, no es buena en el siguiente, no rocíe, si hay errores, espero señalar, estoy agradecido ~

El camino hacia la tecnología no está en un momento, las montañas son altas y los ríos son largos, aunque sea lento, no se detendrá.
Número público: supermercado Qinhuai

Supongo que te gusta

Origin blog.51cto.com/13604316/2668459
Recomendado
Clasificación