


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
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
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Préparez-vous en application par rapport à Mavenorgradletobuildajarorwarfile, externalisationConfiguration.2.ChoOSEADPLOYENDIRONMENT: Runonbaremetal / vmwithjava-jarandsystemd, deploywarontomcat, compeneriserisewithdocker, orusecloudplatformslikelise.

L'utilisation de SLF4J combinée avec la journalisation ou le log4j2 est le moyen recommandé de configurer les journaux dans les applications Java. Il introduit des bibliothèques API et implémentation en ajoutant des dépendances Maven correspondantes; 2. Obtenez l'enregistreur via le loggerfactory de SLF4J dans le code et écrivez le code journal découplé et efficace à l'aide de méthodes de journalisation paramétrée; 3. Définir le format de sortie du journal, le niveau, la cible (console, le fichier) et le contrôle du journal du package via Logback.xml ou les fichiers de configuration log4j2.xml; 4. Activer éventuellement la fonction de balayage de fichiers de configuration pour atteindre un ajustement dynamique du niveau de journal, et Springboot peut également être géré via des points de terminaison de l'actionneur; 5. Suivez les meilleures pratiques, y compris

CASTORENablesxml-to-javaObjectMappingViadefaultConverionsOrexplicitMappingFiles; 1) DefinejavaclasseswithGetters / seters; 2) useUnmarShallertOConvertXmltoObjects; 3)

Aself-joinisusedtocomparerowswithinthesametable,suchasinhierarchicaldatalikeemployee-managerrelationships,bytreatingthetableastwoseparateinstancesusingaliases,asdemonstratedwhenlistingemployeesalongsidetheirmanagers'nameswithaLEFTJOINtoincludetop-lev

Le contexte d'exécution SQL fait référence à l'identité ou au rôle lors de l'exécution des instructions SQL, qui déterminent les ressources et les autorisations de fonctionnement qui peuvent être accessibles. Le paramètre d'autorisation doit suivre le principe des autorisations minimales, et les autorisations courantes incluent la sélection, l'insertion, l'exécution, etc. Pour résoudre les problèmes d'autorisation, vous devez confirmer le nom de connexion, les autorisations de rôle, les paramètres d'exécution et l'autorisation de schéma. La réalisation de commutation de contexte peut être mise en œuvre via Executeas, mais l'attention doit être accordée à l'existence des utilisateurs, à l'octroi de l'autorisation et à l'impact de la sécurité des performances. Il est recommandé d'éviter d'attribuer arbitrairement les rôles DB_OWNER ou SYSADMIN. Le compte de demande ne doit accéder qu'aux objets nécessaires et être autorisés via le schéma.

TheassertKeywordInjavaisUsedTovalIdateShandshandingsDuringDevelopment, ThrowinganAssertionErroriftheconditionisfalse.2.ithastwoforms: AssertCondition; AndSersertCondition: Message; avecthelatterProvidActureCustomerMessage.3.

CrossApplyreturnonSlyrows sepromheleftablethaThavematchingResultsIntheAppliedSubQueryorfonction, tandis que les rapports de renforce

Utilisez runtime.exec () pour exécuter des commandes externes, mais les tableaux de chaîne doivent être utilisés pour éviter les problèmes d'espace; 2. Il est recommandé d'utiliser ProcessBuilder car il est plus flexible et peut définir des variables d'environnement, des répertoires de travail et une syntaxe claire; 3. Vous devez lire STDOUT et STDERR en même temps et les flux d'entrée et de sortie de processus; 4. Évitez l'injection de commande et gérez correctement les exceptions et les fermetures de flux; 5. Faites attention à la dépendance à la plate-forme des commandes, et un nouveau code devrait donner la priorité à l'utilisation de ProcessBuilder pour garantir la sécurité et la maintenabilité.
