Maison  >  Article  >  Java  >  Utilisation de MyBatis pour le mappage SQL dans le développement d'API Java

Utilisation de MyBatis pour le mappage SQL dans le développement d'API Java

WBOY
WBOYoriginal
2023-06-18 08:45:081184parcourir

Utilisation de MyBatis pour le mappage SQL dans le développement d'API Java

Dans le développement Web Java, nous avons souvent besoin d'appeler l'API de base de données pour lire et écrire des données. Cependant, il est très fastidieux d'utiliser directement l'API JDBC (Java Database Connectivity) pour les opérations sur les données, ce qui nécessite l'écriture manuelle d'instructions SQL, le traitement des connexions à la base de données, des jeux de résultats, etc. Ces tâches triviales réduisent non seulement considérablement l'efficacité du travail du développeur, mais augmentent également la difficulté de lisibilité et de maintenabilité du code. Par conséquent, nous avons besoin d’un excellent framework ORM (Object Relational Mapping) pour résoudre ces problèmes.

MyBatis est un excellent framework ORM qui permet aux développeurs d'effectuer des opérations de base de données simplement et rapidement avec juste un peu de configuration. L'article suivant vous présentera les opérations de base de l'utilisation de MyBatis pour le mappage SQL dans le développement d'API Java.

1. La configuration de base de MyBatis

Avant d'utiliser MyBatis pour le développement, nous devons d'abord comprendre la configuration de base de MyBatis. Tout d'abord, nous devons ajouter les dépendances liées à MyBatis dans le fichier pom.xml du projet :

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

Ensuite, nous devons créer un fichier de configuration mybatis-config.xml dans le répertoire src/main/resources pour définir les informations de configuration de MyBatis. . Parmi eux, le plus important est la configuration de la source de données. Nous pouvons la configurer de la manière suivante :

<configuration>
    <environments default="dev">
        <environment id="dev">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/test"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mybatis/mapper/PersonMapper.xml"/>
    </mappers>
</configuration>

Grâce à la configuration ci-dessus, nous configurons les informations de connexion de la base de données et l'emplacement de lecture du fichier de mappage. Parmi eux, la balise mapper spécifie les fichiers de mappage SQL que nous utiliserons ici, nous utilisons un fichier de mappage PersonMapper.xml comme exemple. mapper 标签指定了我们将要使用哪些 SQL 映射文件,这里我们使用一个 PersonMapper.xml 映射文件作为示例。

二、定义 MyBatis 的映射文件

在 MyBatis 中,SQL 语句的编写是通过 XML 文件来实现的。我们需要定义一个映射文件(如 PersonMapper.xml),用于存放数据表与 Java 实体类的映射信息以及相关 SQL 语句。

下面举一个例子,假设我们有一个 Person 实体类,包含 id、name 和 age 三个属性,我们需要将其映射到数据库的 person 表中。那么,我们可以在 PersonMapper.xml 文件中定义如下的 SQL 映射语句:

<mapper namespace="com.example.mapper.PersonMapper">
    <select id="selectPersonById" parameterType="int" resultType="com.example.model.Person">
        SELECT * FROM person WHERE id = #{id}
    </select>
    <insert id="insertPerson" parameterType="com.example.model.Person">
        INSERT INTO person (id, name, age) VALUES (#{id}, #{name}, #{age})
    </insert>
    <delete id="deletePersonById" parameterType="int">
        DELETE FROM person WHERE id=#{id}
    </delete>
    <update id="updatePerson" parameterType="com.example.model.Person">
        UPDATE person SET name=#{name}, age=#{age} WHERE id=#{id}
    </update>
</mapper>

以上代码中,我们定义了四个 SQL 映射语句,分别对应了查询、插入、删除以及更新 person 表中的数据。在每一个 SQL 映射语句中,我们需要指定 SQL 语句的类型(如 select、insert、delete、update 等),并指明 SQL 语句所对应的方法名、参数类型以及返回值类型。

三、使用 MyBatis 进行简单的数据操作

当我们定义好了 MyBatis 的配置文件和 SQL 映射文件之后,我们就可以在 Java 代码中调用对应的方法来实现相应的数据操作了。下面举一个根据 ID 查询 Person 对象的例子。

1)定义 Person 类

假设我们有一个 Person 实体类,它包含 id、name 和 age 三个属性:

public class Person {
    private int id;
    private String name;
    private int age;
    // getters and setters
}

2)定义 PersonMapper 接口

在 PersonMapper 接口中,我们可以定义方法来对 person 表进行增删改查操作,如下所示:

public interface PersonMapper {
    Person selectPersonById(int id);
    void insertPerson(Person person);
    void deletePersonById(int id);
    void updatePerson(Person person);
}

3)使用 MyBatis 进行数据操作

在 Java 代码中,我们可以使用 MyBatis 的 SqlSessionFactory 类来创建一个 SQL 会话工厂对象。通过这个对象,我们可以获得一个 SQL 会话对象,然后调用该对象的方法来进行数据操作。下面是一个根据 ID 查询 Person 对象的简单例子:

SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory factory = builder.build(inputStream);
SqlSession session = factory.openSession();
PersonMapper personMapper = session.getMapper(PersonMapper.class);
Person person = personMapper.selectPersonById(1);
System.out.println(person.getName());

在上述代码中,我们使用 SqlSessionFactoryBuilder 类从 mybatis-config.xml 文件中创建了一个 SqlSessionFactory 对象。然后,我们通过 SqlSessionFactory 对象创建了一个 SqlSession 对象,通过该对象的 getMapper

2. Définir le fichier de mappage de MyBatis

Dans MyBatis, l'écriture des instructions SQL est implémentée via des fichiers XML. Nous devons définir un fichier de mappage (tel que PersonMapper.xml) pour stocker les informations de mappage entre les tables de données et les classes d'entités Java et les instructions SQL associées.

Ce qui suit est un exemple. Supposons que nous ayons une classe d'entité Person, qui contient trois attributs : id, name et age. Nous devons la mapper à la table person dans la base de données. Ensuite, nous pouvons définir l'instruction de mappage SQL suivante dans le PersonMapper. Dans chaque instruction de mappage SQL, nous devons spécifier le type d'instruction SQL (comme select, insert, delete, update, etc.) et indiquer le nom de la méthode, le type de paramètre et le type de valeur de retour correspondant à l'instruction SQL. 🎜🎜3. Utilisez MyBatis pour des opérations de données simples🎜🎜Après avoir défini le fichier de configuration et le fichier de mappage SQL de MyBatis, nous pouvons appeler les méthodes correspondantes dans le code Java pour implémenter les opérations de données correspondantes. Voici un exemple d’interrogation d’objets Person en fonction de l’ID. 🎜🎜1) Définir la classe Person 🎜🎜 Supposons que nous ayons une classe d'entité Person, qui contient trois attributs : id, name et age : 🎜rrreee🎜2) Définir l'interface PersonMapper 🎜🎜Dans l'interface PersonMapper, nous pouvons définir des méthodes pour manipuler la personne Ajoutez, supprimez, modifiez et interrogez la table comme suit : 🎜rrreee🎜3) Utilisez MyBatis pour les opérations sur les données🎜🎜Dans le code Java, nous pouvons utiliser la classe SqlSessionFactory de MyBatis pour créer un objet d'usine de session SQL. Grâce à cet objet, nous pouvons obtenir un objet de session SQL, puis appeler la méthode de l'objet pour effectuer des opérations sur les données. Voici un exemple simple d'interrogation d'un objet Person basé sur l'ID : 🎜rrreee🎜 Dans le code ci-dessus, nous utilisons la classe SqlSessionFactoryBuilder pour créer un objet SqlSessionFactory à partir du fichier mybatis-config.xml. Ensuite, nous avons créé un objet SqlSession via l'objet SqlSessionFactory et obtenu un objet de classe proxy PersonMapper via la méthode getMapper de l'objet. Enfin, nous avons appelé la méthode selectPersonById de la classe proxy, obtenu l'objet Person avec l'ID 1 et imprimé le résultat. N'est-ce pas très simple ? 🎜🎜4. Résumé🎜🎜MyBatis est un très excellent framework ORM Grâce à son fichier de mappage, nous pouvons effectuer un mappage SQL facilement et rapidement. Cet article présente la configuration et l'utilisation de base de MyBatis, dans l'espoir d'aider tout le monde dans les opérations de données dans le développement d'API Java. Bien sûr, il existe de nombreuses autres fonctionnalités avancées et techniques d'optimisation utilisant MyBatis, que nous présenterons dans les articles suivants, alors restez à l'écoute ! 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn