Vous apprendre étape par étape comment lire le code source Mybatis (1), créer un environnement de lecture de code source

J'utilise ici la base de données MySQL, mais bien sûr, vous pouvez également utiliser d'autres bases de données.

1. Création d'une base de données

Déclaration de création de table :


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. Construire un projet maven

Si cela ne fonctionne pas, envoyez-moi le catalogue. (Le projet maven ne peut pas être construit, il n'est donc pas approprié de regarder le code source pour le moment. J'en parlerai après avoir maîtrisé mybatis)

2.1. Structure du projet

Organigramme du projet

2.2.fichier pom

Dépendance, j'utilise ici la version 3.5.0

	<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. Codes associés

2.3.1 Fichier de configuration 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 fichier d'entité

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. fichier d'interface du mappeur

package com.fxy.mybatis.reposity;

import com.fxy.mybatis.entity.Payment;

public interface PaymentMapper {
    
    

    Payment getPayment(int id);
}

2.3.4, fichier de configuration 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. Fichier d'entrée de la fonction principale

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. Résultats d'exécution, c'est-à-dire des instructions de débogage simples

Insérer la description de l'image ici
Cela prouve qu'il n'y a aucun problème avec l'environnement que nous avons mis en place. Vient ensuite le processus de débogage et de lecture du code source étape par étape.
Notes :
 1. Veuillez avoir une certaine compréhension de l'utilisation de mybatis.
2. Lisez le code source dans un but précis. Par exemple, comment nos fichiers de configuration sont-ils obtenus et où sont-ils utilisés ? Quel est le lien entre l'interface du mappeur et mapper.xml ? Comment les méthodes de l'interface et le SQL en XML sont-elles liées entre elles ? Comment les paramètres d’entrée et les paramètres de sortie sont-ils convertis ? Où les paramètres d'entrée sont-ils remplacés par des paramètres dans l'instruction SQL ? Nous n'avons pas écrit l'implémentation de l'interface du mappeur, alors comment sont appelées les méthodes de l'interface ? Il y a beaucoup de problèmes. Si vous consultez le code source avec le problème pour trouver comment ils l'ont résolu, vous obtiendrez de meilleurs résultats. Sinon, ce sera ennuyeux et sans but à lire, et de nombreux détails seront ignorés.
3. Lors de la lecture du code source, vous devez également avoir une certaine compréhension de l'ensemble du cadre de mybatis, du macro au micro en passant par le résumé - du micro au macro. Le lire encore quelques fois vous permettra de mieux comprendre.

La section suivante donnera une introduction à l'ensemble du framework mybatis.

Je suppose que tu aimes

Origine blog.csdn.net/u010445301/article/details/106711836
conseillé
Classement