Enseñarle paso a paso cómo leer el código fuente de Mybatis (1) y crear un entorno de lectura de código fuente.

Utilizo la base de datos mysql aquí, pero, por supuesto, también puedes usar otras bases de datos.

1. Establecimiento de base de datos

Declaración de creación de tabla:


DROP TABLE IF EXISTS `payment`;
CREATE TABLE `payment`  (
  `id` bigint(20) NOT NULL,
  `serial` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of payment
-- ----------------------------
INSERT INTO `payment` VALUES (1, '2323');
INSERT INTO `payment` VALUES (36, '121212');

SET FOREIGN_KEY_CHECKS = 1;

2. Construya un proyecto maven

Si esto no funciona envíame el catálogo. (El proyecto maven no se puede construir, por lo que no es adecuado mirar el código fuente en este momento. Hablaré de ello después de que domine mybatis)

2.1 Estructura del proyecto

Diagrama de estructura del proyecto

2.2 archivo pom

Dependencia, estoy usando la versión 3.5.0 aquí

	<dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.18</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.0</version>
        </dependency>
    </dependencies>

2.3 Códigos relacionados

2.3.1 archivo de configuración mybatis

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/db2019?serverTimezone=UTC"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mapper/PaymentMapper.xml"/>
    </mappers>
</configuration>

2.3.2 archivo de entidad

package com.fxy.mybatis.entity;

public class Payment {
    
    
        private Long id;
        private String serial;

    public Long getId() {
    
    
        return id;
    }

    public void setId(Long id) {
    
    
        this.id = id;
    }

    public String getSerial() {
    
    
        return serial;
    }

    public void setSerial(String serial) {
    
    
        this.serial = serial;
    }

    @Override
    public String toString() {
    
    
        return "Payment{" +
                "id=" + id +
                ", serial='" + serial + '\'' +
                '}';
    }
}

2.3.3 archivo de interfaz del asignador

package com.fxy.mybatis.reposity;

import com.fxy.mybatis.entity.Payment;

public interface PaymentMapper {
    
    

    Payment getPayment(int id);
}

2.3.4, archivo de configuración mapper.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.fxy.mybatis.reposity.PaymentMapper">
    <select id="getPayment" resultType="com.fxy.mybatis.entity.Payment">
        select * from payment where id = #{id}
    </select>
</mapper>

2.3.5 Archivo de entrada de función principal

package com.fxy.mybatis;

import com.fxy.mybatis.entity.Payment;
import com.fxy.mybatis.reposity.PaymentMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;

public class OrgionCodeRead {
    
    

    public static void main(String[] args) throws IOException {
    
    
        //1\读取配置文件
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        //2、初始化mybatis,创建SqlSessionFactory类实例
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //3、创建Session实例
        SqlSession session = sqlSessionFactory.openSession();
        Payment payment = session.selectOne("com.fxy.mybatis.reposity.PaymentMapper.getPayment",36);
        PaymentMapper paymentMapper = session.getMapper(PaymentMapper.class);
        Payment payment1= paymentMapper.getPayment(1);
        System.out.println(payment.toString());
        System.out.println(payment1.toString());

    }
}

3. Resultados de la ejecución, es decir, instrucciones de depuración sencillas.

Insertar descripción de la imagen aquí
Demuestra que no hay ningún problema con el entorno que configuramos, el siguiente es el proceso de depuración y lectura del código fuente paso a paso.
Notas:
1. Tenga cierta comprensión del uso de mybatis
2. Lea el código fuente con un propósito, por ejemplo, ¿cómo se obtienen nuestros archivos de configuración y dónde se usan? ¿Cómo se relacionan la interfaz del mapeador y mapper.xml? ¿Cómo se unen los métodos en la interfaz y el sql en xml? ¿Cómo se convierten los parámetros de entrada y los parámetros de salida? ¿Dónde se reemplazan los parámetros de entrada con parámetros en la declaración SQL? No hemos escrito la implementación de la interfaz del asignador, entonces, ¿cómo se llaman los métodos en la interfaz? Hay muchos problemas. Si vas al código fuente con el problema para ver cómo lo resolvieron, tendrás mejores resultados. De lo contrario, será aburrido y sin sentido de lectura, y se ignorarán muchos detalles.
3. Al leer el código fuente, también debe tener cierta comprensión de todo el marco de mybatis, de macro a micro y resumen, de micro a macro. Leerlo unas cuantas veces más le dará una comprensión más profunda.

La siguiente sección brindará una introducción al marco completo de mybatis.

Supongo que te gusta

Origin blog.csdn.net/u010445301/article/details/106711836
Recomendado
Clasificación