Maison Java javaDidacticiel Premiers pas avec MyBatis (6) --- Intégration de mybatis et spring

Premiers pas avec MyBatis (6) --- Intégration de mybatis et spring

Dec 21, 2016 pm 02:35 PM

1. Besoins d'intégration

1.1, méthode

Les données du chapitre précédent

nécessitent sPRing pour gérer SqlsessionFactory

l'intégration Spring et Mybatis génère un proxy objets, et utilise SqlSessionFactory pour créer SqlSession

(l'intégration spring et mybatis est automatiquement terminée)

Les mappeurs de la couche de persistance doivent être gérés par spring

2. Créer un projet Intégrer l'environnement

2.1, créer un projet

Premiers pas avec MyBatis (6) --- Intégration de mybatis et spring

2.2, data

db.properties

#Configuration de la base de données informations
#Driver
driverClass=com.MySQL.jdbc.Driver
#Connection url
jdbcUrl=jdbc:mysql://localhost:3306/mybatis?character=utf8#Username
user = root
#Password
passWord=root
#Nombre minimum de connexions conservées dans le pool de connexions
minPoolSize=10#Nombre maximum de connexions conservées dans le pool de connexions. Par défaut : 15 maxPoolSize=20#Durée d'inactivité maximale, la connexion sera supprimée si elle n'est pas utilisée dans les 1 800 secondes. S'il vaut 0, il ne sera jamais supprimé. Par défaut : 0 maxIdletime=1800#Le nombre de connexions que c3p0 obtient en même temps lorsque les connexions du pool de connexions sont épuisées. Par défaut : 3acquireIncrement=3#Le nombre de connexions initiales dans le pool de connexions doit être compris entre minPoolSize et maxPoolSize. La valeur par défaut est 3
initialPoolSize=15

2.3, configuration

br/> PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd" > ;< ;!--Configuration - ->










2.4 Classes et interfaces POJO

package com.pb.ssm.po;import java.util.Date;/**
*

* @ClassName : Auteur

* @Description : TODO(auteur)

* @auteur Liu Nan

* @date 2015 -10-31 12:39:33

**/public class Author {    //作者id
   private Integer authorId ;    //作者姓名
   private String authorUserName ;    //作者密码
   private String authorPassword ;    //作者邮箱
   private String authorEmail ;    //作者介绍
   private String authroBio ;    //注册时间
   private Date registerTime ;    
   
   
   public Integer getAuthorId() {        return authorId;
       public void setAuthorId(Integer authorId) {        this.authorId = authorId;
   }    public String getAuthorUserName() {        return authorUserName;
   }    public void setAuthorUserName(String authorUserName) {        this.authorUserName = authorUserName;
   }    public String getAuthorPassword() {        return authorPassword;
   }    public void setAuthorPassword(Str ing authorPassword) {        this.authorPassword = authorPassword;
   }    public String getAuthorEmail() {        return authorEmail;
   }    public void setAuthorEmail(String authorEmail) {        this.authorEmail = authorEmail;
       public String getAuthroBio() {        return authroBio ;
   }    public void setAuthroBio( String authroBio) {        this.authroBio = authroBio;
   }    public Date getRegisterTime() {        return registerTime;
       public void setRegisterTime(Date registerTime) {        this.registerTime = registerTime;
   }
   @Override public String toString() {        return "Auteur [authorId=" authorId ", authorUserName="
                authorUserName ", authorPassword=" authorPassword                 ", authorEmail=" authorEmail ", authroBio=" authroBio              ", RegisterTime=" RegisterTime "]" ;
   }
   
   
}

 

接口

 

package com.pb.ssm.mapper;import com.pb.ssm.po.Author;public interface AuthorMapper { /**
*

* @Titre : findAuthorById

* @Description : TODO (recherche par identifiant)

* @param @param id
* @param @ return Fichier de paramètres

* @return Auteur Type de retour

* @throws
*/
public Author findAuthorById(int id); **
*

* @Titre : addAuthor

* @Description : TODO(Add)

* @param @param author
* @param @return Set Fichier défini

* @return int Type de retour

* @throws
*/
public int addAuthor(Auteur auteur); /**
*

* @Titre : updateAuthor

* @Description : TODO(update)

* @param @param author
* @param @return Set Fichier défini

* @return int Type de retour

* @throws
*/
public int updateAuthor(Auteur auteur); > public int delteAuthor(int id);
}




mapper.xml





< ;?xml version="1.0" encoding="UTF-8"?>br/> PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http:/ /mybatis.org/dtd/mybatis-3-mapper.dtd">where author_id=#{ id}INSERT INTO author(author_username,author_password, author_email,author_bio)
VALUES(#{authorUserName},#{authorPassword},#{authorEmail},#{authroBio})
update authorauthor_username=#{authorUserName},author_password=#{authorPassword},author_email=#{authorEmail},author_bio=#{authroBio},register_time=#{registerTime} if>where author_id=#{authorId}supprimer de l'auteur où author_id= #{authorId}

3. Intégrer à l'aide du fichier de configuration Mybatis.xml

3.1、applicationContext.xml

< ;!--加载数据库驱动  -->< ; propriété name = "maxidleTime" value = "$ {maxidleTime}" / & gt; & lt;! - 当连接池中的连接耗尽的时候 c3p0 一次同时获取的连接数。default: 3 - & gt; & lt; property name="acquireIncrement" value="${acquireIncrement}"/>

 

3.2、测试

 

package com.pb.ssm.mapper; importer java.io.InputStream; importer org.apache.ibatis.io.Resources; importer org.apache.ibatis.session.SqlSession; importer org.apache.ibatis.session. SqlSessionFactory ; importer org.apache.ibatis.session.SqlSessionFactoryBuilder ; importer org.junit.Before ; importer org.junit.Test ; importer org.springframework.context.ApplicationContext ; importer org.springframework.context.support.ClassPathXmlApplicationContext ; importer com. pb.ssm.po.Author;public class AuthorMapperTest {    private ApplicationContext applicationContext;

   @Avant    public void setUp() lève une exception {
       applicationContext=new ClassPathXmlApplicationContext("ApplicationContext.xml");
}

   @Test    public void testFindAuthorById() {
       

       AuthorMapper authorMapper = (AuthorMapper) applicationContext.getBean("authorMapper");
       Author author = authorMapper. findAuthorById (2 );
       System.out.println(author);
   
   }

   @Test    public void testAddAuthor() {        // 获取会话工厂
       Auteur Mappeur authorMapper = (AuthorMapper) applicationContext .getBean("authorMapper");
       
       Author author=new Author();
       author.setAuthorUserName("程序猿");
       author.setAuthorPassword("QWERdlfdad");
author.setAuthorEmail("QWER@QQ.com");        
       
       int  num = authorMapper.addAuthor(author);
   
       System.out.println("num=" num);
       System.out.println("添加后的ID: " author.getAuthorId());
   }

   @Test    public void testUpdateAuthor() {        // 获取会话工厂
       AuthorMapper authorMapper = (AuthorMapper) applicationContext.getBean("authorMa poivre");
       Auteur author = authorMapper.findAuthorById(13);
       author.setAuthroBio("天天写代码");
       author.setAuthorUserName("码农");        int num=authorMapper.updateAuthor(author);
   
       System.out.println("num=" num);
       System.out.println(author);
     }

   @Test    public void testDeleteAuthor() {        // 获取会话工厂
       AuthorMapper authorMapper = (AuthorMapper) applicationContext.getBean("authorMapper");        int num= authorMapper.delteAuthor(13);
       
   }

}

 

 

 

四、不使用mybatis配置文件

4.1、写ApplicationContext.xml

 


< ;!-- 注入数据源  -->

 

更改Mapper.xml,因为不能使用别名,所以type要写POJO类的全路径

br/>  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">INSERT INTO author(author_username,author_password,author_email,author_bio)
VALUES(#{authorUserName},#{authorPassword},#{authorEmail} ,#{authroBio})
mettre à jour l'auteurauthor_username=#{authorUserName},author_password=#{authorPassword},> ;author_email=#{authorEmail},register_time=#{registerTime}où author_id=#{authorId}< ;/update>supprimer de l'auteur où author_id=#{authorId}

 

测试类同上

 以上就是MyBatis入门(六)---mybatis与spring的整合的内容,更多Application PHP (www.php.cn)! 


Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Utilisez Spring Boot et Spring AI pour créer des applications d'intelligence artificielle générative Utilisez Spring Boot et Spring AI pour créer des applications d'intelligence artificielle générative Apr 28, 2024 am 11:46 AM

En tant que leader du secteur, Spring+AI fournit des solutions de pointe pour divers secteurs grâce à son API puissante et flexible et ses fonctions avancées. Dans cette rubrique, nous examinerons les exemples d'application de Spring+AI dans divers domaines. Chaque cas montrera comment Spring+AI répond à des besoins spécifiques, atteint ses objectifs et étend ces LEÇONS APPRISES à une gamme plus large d'applications. J'espère que ce sujet pourra vous inciter à comprendre et à utiliser plus profondément les possibilités infinies de Spring+AI. Le framework Spring a une histoire de plus de 20 ans dans le domaine du développement logiciel, et cela fait 10 ans que la version Spring Boot 1.0 est sortie. Maintenant, personne ne peut contester ce printemps

Explication détaillée de la fonction Définir la balise dans les balises SQL dynamiques MyBatis Explication détaillée de la fonction Définir la balise dans les balises SQL dynamiques MyBatis Feb 26, 2024 pm 07:48 PM

Interprétation des balises SQL dynamiques MyBatis : explication détaillée de l'utilisation des balises Set MyBatis est un excellent cadre de couche de persistance. Il fournit une multitude de balises SQL dynamiques et peut construire de manière flexible des instructions d'opération de base de données. Parmi elles, la balise Set est utilisée pour générer la clause SET dans l'instruction UPDATE, qui est très couramment utilisée dans les opérations de mise à jour. Cet article expliquera en détail l'utilisation de la balise Set dans MyBatis et démontrera ses fonctionnalités à travers des exemples de code spécifiques. Qu'est-ce que Set tag Set tag est utilisé dans MyBati

Interprétation des paramètres de configuration de MyBatis Generator et bonnes pratiques Interprétation des paramètres de configuration de MyBatis Generator et bonnes pratiques Feb 23, 2024 am 09:51 AM

MyBatisGenerator est un outil de génération de code officiellement fourni par MyBatis, qui peut aider les développeurs à générer rapidement des JavaBeans, des interfaces Mapper et des fichiers de mappage XML conformes à la structure des tables de base de données. Dans le processus d'utilisation de MyBatisGenerator pour la génération de code, la définition des paramètres de configuration est cruciale. Cet article commencera du point de vue des paramètres de configuration et explorera en profondeur les fonctions de MyBatisGenerator.

Explication détaillée de la configuration des requêtes un-à-plusieurs de MyBatis : résolution des problèmes de requêtes associés courants Explication détaillée de la configuration des requêtes un-à-plusieurs de MyBatis : résolution des problèmes de requêtes associés courants Feb 22, 2024 pm 02:18 PM

Explication détaillée de la configuration des requêtes un-à-plusieurs de MyBatis : Pour résoudre les problèmes de requêtes associés courants, des exemples de code spécifiques sont nécessaires. Dans le travail de développement réel, nous rencontrons souvent des situations dans lesquelles nous devons interroger un objet d'entité maître et ses multiples objets d'entité esclave associés. . Dans MyBatis, la requête un-à-plusieurs est une requête d'association de base de données courante avec une configuration correcte, l'interrogation, l'affichage et le fonctionnement des objets associés peuvent être facilement réalisés. Cet article présentera la méthode de configuration des requêtes un-à-plusieurs dans MyBatis et comment résoudre certains problèmes de requêtes courants associés.

Analyser le mécanisme de mise en cache de MyBatis : comparer les caractéristiques et l'utilisation du cache de premier niveau et du cache de deuxième niveau Analyser le mécanisme de mise en cache de MyBatis : comparer les caractéristiques et l'utilisation du cache de premier niveau et du cache de deuxième niveau Feb 25, 2024 pm 12:30 PM

Analyse du mécanisme de mise en cache MyBatis : la différence et l'application du cache de premier niveau et du cache de deuxième niveau Dans le framework MyBatis, la mise en cache est une fonctionnalité très importante qui peut améliorer efficacement les performances des opérations de base de données. Parmi eux, le cache de premier niveau et le cache de deuxième niveau sont deux mécanismes de mise en cache couramment utilisés dans MyBatis. Cet article analysera en détail les différences et les applications du cache de premier niveau et du cache de deuxième niveau, et fournira des exemples de code spécifiques pour illustrer. 1. Cache de niveau 1 Le cache de niveau 1 est également appelé cache local. Il est activé par défaut et ne peut pas être désactivé. Le cache de premier niveau est SqlSes

Explication détaillée du cache de premier niveau MyBatis : Comment améliorer l'efficacité de l'accès aux données ? Explication détaillée du cache de premier niveau MyBatis : Comment améliorer l'efficacité de l'accès aux données ? Feb 23, 2024 pm 08:13 PM

Explication détaillée du cache de premier niveau MyBatis : Comment améliorer l'efficacité de l'accès aux données ? Au cours du processus de développement, un accès efficace aux données a toujours été l’une des priorités des programmeurs. Pour les frameworks de couche de persistance comme MyBatis, la mise en cache est l'une des méthodes clés pour améliorer l'efficacité de l'accès aux données. MyBatis fournit deux mécanismes de mise en cache : le cache de premier niveau et le cache de deuxième niveau. Le cache de premier niveau est activé par défaut. Cet article présentera en détail le mécanisme du cache de premier niveau MyBatis et fournira des exemples de code spécifiques pour aider les lecteurs à mieux comprendre

La sécurité d'abord : meilleures pratiques pour empêcher l'injection SQL dans MyBatis La sécurité d'abord : meilleures pratiques pour empêcher l'injection SQL dans MyBatis Feb 22, 2024 pm 12:51 PM

À mesure que la technologie réseau continue de se développer, les attaques de bases de données deviennent de plus en plus courantes. L'injection SQL est l'une des méthodes d'attaque courantes. Les attaquants saisissent des instructions SQL malveillantes dans la zone de saisie pour effectuer des opérations illégales, provoquant une fuite, une falsification ou même une suppression de données. Afin de prévenir les attaques par injection SQL, les développeurs doivent accorder une attention particulière lors de l'écriture du code, et lorsqu'ils utilisent un framework ORM tel que MyBatis, ils doivent suivre certaines bonnes pratiques pour garantir la sécurité du système. 1. Requête paramétrée La requête paramétrée est l'anti-

Compréhension approfondie du principe d'implémentation de l'insertion par lots dans MyBatis Compréhension approfondie du principe d'implémentation de l'insertion par lots dans MyBatis Feb 21, 2024 pm 04:42 PM

MyBatis est un framework de couche de persistance Java populaire qui est largement utilisé dans divers projets Java. Parmi elles, l'insertion par lots est une opération courante qui peut améliorer efficacement les performances des opérations de base de données. Cet article explorera en profondeur le principe de mise en œuvre de l'insertion par lots dans MyBatis et l'analysera en détail avec des exemples de code spécifiques. Insertion par lots dans MyBatis Dans MyBatis, les opérations d'insertion par lots sont généralement implémentées à l'aide de SQL dynamique. En construisant un S contenant plusieurs valeurs insérées

See all articles