[Framework MyBatis] Premiers pas avec mybatis

Framework : Un produit semi-fini, un ensemble de composants, d'une application qui est un logiciel mature, continuellement mis à jour.

(1) Application : la conception réutilisable de tout ou partie du système, exprimée sous la forme d'un ensemble de composants abstraits et la méthode d'interaction entre les instances de composants ;

(2) Objectif : Squelette d'application personnalisé par les développeurs d'applications

Différents frameworks résolvent différents problèmes.Le framework encapsule de nombreux détails, permettant aux développeurs d'implémenter des fonctions de manière minimaliste et d'améliorer considérablement l'efficacité du développement.


Architecture à trois niveaux :

Couche de présentation : afficher les données

Couche métier : gère les exigences métier

Couche de persistance : interagir avec la base de données


JDBC技术:Connection,prepareStatement,ResultSet,JDBCTemplate

JDBC n'est pas un framework, c'est une spécification, et JDBCTemplate est une classe d'outils.

Problèmes JDBC :

Le vrai souci est l'instruction sql, et jdbc doit préparer beaucoup de contenu, qui est répétitif et peut être simplifié.


aperçu mybatis :

(1) Un excellent framework de couche de persistance basé sur Java, qui encapsule jdbc en interne , de sorte que les développeurs n'ont qu'à prêter attention à l'instruction sql elle-même, et n'ont pas besoin de dépenser de l'énergie pour charger des pilotes, créer des connexions, créer des instructions et d'autres éléments compliqués. processus.

(2) Configurez les différentes instructions à exécuter via xml ou des annotations, et mappez l'objet java et les paramètres dynamiques sql dans l'instruction pour générer l'instruction sql finale exécutée.Enfin, le framework mybatis exécute le sql et mappe le résultat à java objet et retour

(3) L'idée ORM est utilisée pour résoudre le problème de mappage d'entités et de bases de données, encapsule jdbc et protège les détails d'accès sous-jacents de jdbc api

ORM : mappage relationnel d'objets Mappage relationnel d'objets, qui mappe les tables de base de données sur les classes d'entités et les attributs des classes d'entités, afin que nous puissions exploiter la base de données en exploitant les classes d'entités


Persistance des données :

*La persistance est le processus de conversion des données du programme en état persistant et en état transitoire

* Mémoire : perdue lors de la mise hors tension

Couche de persistance : le bloc de code qui complète le travail de persistance


Le premier programme Mybatis :

Construire l'environnement--->Importer MyBatis--->Ecrire du code--->Tester

Construisez la base de données :

Nouveau projet:

1. Créer un nouveau projet maven

 2. Supprimer la source

3. Importer des dépendances

pom.xml :

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.kuang</groupId>
    <artifactId>Mybatis-study</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>mybatis-01</module>
    </modules>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>

        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>



        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>
    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

</project>

 

4. Créer des sous-projets

 

5. Écrivez le fichier de configuration du noyau 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.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?userSSL=true&amp;
                userUnicode=true&amp;characterEncoding=UTF-8"/>
                <property name="username" value="root"/>
                <property name="password" value="lfd011003"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/kuang/dao/UserMapper.xml"/>
    </mappers>
</configuration>

Écrivez la classe d'outils :

package com.kuang.utils;

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;

//sqlSessionFactory --> sqlSession
public class MybatisUtils {

    private static SqlSessionFactory sqlSessionFactory;

    static {
        try {
            //使用mybatis第一步:获取sqlSessionFactory对象
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    //既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。
    // 你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句

    public static SqlSession getSqlSession(){
        return sqlSessionFactory.openSession();
    }

}

classe d'entité

package com.kuang.pojo;

public class User {
    private int id;
    private String name;
    private String pwd;

    public User() {
    }

    public User(int id, String name, String pwd) {
        this.id = id;
        this.name = name;
        this.pwd = pwd;
    }

    public int getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", pwd='" + pwd + '\'' +
                '}';
    }
}

Interface Dao

package com.kuang.dao;

import com.kuang.pojo.User;

import java.util.List;

public interface UserDao {
    List<User> getUserList();
}

classe d'implémentation d'interface

<?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.kuang.dao.UserDao">
    <select id="getUserList" resultType="com.kuang.pojo.User">
        select * from mybatis.user
    </select>
</mapper>

Classe d'essai :

package com.kuang.dao;

import com.kuang.pojo.User;
import com.kuang.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

import java.util.List;

public class UserDaoTest {
    @Test
    public void test(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserDao mapper = sqlSession.getMapper(UserDao.class);
        List<User> userList = mapper.getUserList();
        for (User user : userList) {
            System.out.println(user);
        }

    }
}

 

Je suppose que tu aimes

Origine blog.csdn.net/m0_52043808/article/details/124005245
conseillé
Classement