Heim Java javaLernprogramm Erste Schritte mit MyBatis (6) --- Integration von Mybatis und Spring

Erste Schritte mit MyBatis (6) --- Integration von Mybatis und Spring

Dec 21, 2016 pm 02:35 PM

1. Integration benötigt

1.1, Methode

Daten im vorherigen Kapitel

erfordert sPRing zur Verwaltung von SqlsessionFactory

Spring- und Mybatis-Integration generiert Proxy Objekte und verwendet SqlSessionFactory zum Erstellen von SqlSession

(Spring- und Mybatis-Integration werden automatisch abgeschlossen)

Die Mapper der Persistenzschicht müssen von Spring verwaltet werden

2. Erstellen ein Projekt Umgebung integrieren

2.1, Projekt erstellen

Erste Schritte mit MyBatis (6) --- Integration von Mybatis und Spring

2.2, Daten

db.properties

#Datenbankkonfiguration Informationen
#Driver
driverClass=com.MySQL.jdbc.Driver
#Verbindungs-URL
jdbcUrl=jdbc:mysql://localhost:3306/mybatis?character=utf8#Benutzername
Benutzer = root
#Password
passWord=root
#Mindestanzahl der im Verbindungspool beibehaltenen Verbindungen
minPoolSize=10#Maximale Anzahl der im Verbindungspool beibehaltenen Verbindungen. Standard: 15 maxPoolSize=20#Maximale Leerlaufzeit, die Verbindung wird verworfen, wenn sie nicht innerhalb von 1800 Sekunden verwendet wird. Wenn es 0 ist, wird es niemals verworfen. Standard: 0 maxIdletime=1800#Die Anzahl der Verbindungen, die c3p0 gleichzeitig erhält, wenn die Verbindungen im Verbindungspool erschöpft sind. Standard: 3acquireIncrement=3#Die Anzahl der anfänglichen Verbindungen im Verbindungspool sollte zwischen minPoolSize und maxPoolSize liegen. Der Standardwert ist 3
initialPoolSize=15

2.3, Konfiguration

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










2.4 POJO-Klassen und Schnittstellen

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

* @ClassName: Autor

* @Description: TODO(Autor)

* @Autor Liu Nan

* @Datum 2015 -31.10. 12:39:33 Uhr

**/public class Author {    //作者id
   private Integer authorId;    //作者姓名
   private String authorUserName;    //作者密码
   private String authorPassword;    //作者邮箱
   private String authorEmail;    //作者介绍
   private String authroBio;    //注册时间
   private Date registerTime;     getAuthorUserName() {        return authorUserName;
   }    public void setAuthorUserName(String authorUserName) {        this.authorUserName = authorUserName;
   }    public String getAuthorPassword() {        return authorPassword;
   }    public void setAuthorPassword(String authorPassword) {       this.authorPassword = authorPassword;
   }    public String getAuthorEmail() {        return authorEmail;
   }    public void setAuthorEmail(String authorEmail) {        this.authorEmail = authorEmail;
   }    public String getAuthroBio() {        return ;
   }    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 "Author [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 { /**
*

* @Title: findAuthorById

* @Description: TODO (Suche nach ID)

* @param @param id
* @param @ return Setting file

* @return Author Rückgabetyp

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

* @Title: addAuthor

* @Description: TODO(Add)

* @param @param author
* @param @return Set Definierte Datei

* @return int Rückgabetyp

* @throws
*/
public int addAuthor(Autor Autor); /**
*

* @Title: updateAuthor

* @Description: TODO(update)

* @param @param author
* @param @return Set Definierte Datei

* @return int Rückgabetyp

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




mapper.xml





< ;?xml version="1.0" binding="UTF-8"?>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})
update authorauthor_username=#{authorUserName},author_password=#{authorPassword},author_email=#{authorEmail},author_bio=#{authroBio},register_time=#{registerTime} if>where author_id=#{authorId}delete from author where author_id= #{authorId}

3. Integration mit Mybatis-Konfigurationsdatei.xml

3.1、写applicationContext.xml

< ;!--加载数据库驱动  -->< ;property name="maxIdletime" value="${maxIdletime}"/>

 

3.2、测试

 

Paket com.pb.ssm.mapper;import java.io.InputStream;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 org.junit.Before;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com. pb.ssm.po.Author;public class AuthorMapperTest {    private ApplicationContext applicationContext;

   @Before    public void setUp() throws Exception {
       applicationContext=new ClassPathXmlApplicationContext("ApplicationContext.xml");
}

   @Test    public void testFindAuthorById() {
       

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

   @Test    public void testAddAuthor() {        // 获取会话工厂
       AuthorMapper 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 ()); ;
       Author 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})
update authorauthor_username=#{authorUserName},author_password=#{authorPassword},> ;author_email=#{authorEmail},register_time=#{registerTime}where author_id=#{authorId}< ;/update>vom Autor löschen, wobei author_id=#{authorId}

 

测试类同上

 以上就是MyBatis入门(六)---mybatis与spring的整合的内容,更多相关内容请关注PHP中文网(www.php.cn)! 


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Verwenden Sie Spring Boot und Spring AI, um generative Anwendungen für künstliche Intelligenz zu erstellen Verwenden Sie Spring Boot und Spring AI, um generative Anwendungen für künstliche Intelligenz zu erstellen Apr 28, 2024 am 11:46 AM

Als Branchenführer bietet Spring+AI durch seine leistungsstarke, flexible API und erweiterte Funktionen führende Lösungen für verschiedene Branchen. In diesem Thema werden wir uns mit den Anwendungsbeispielen von Spring+AI in verschiedenen Bereichen befassen. Jeder Fall wird zeigen, wie Spring+AI spezifische Anforderungen erfüllt, Ziele erreicht und diese LESSONSLEARNED auf ein breiteres Anwendungsspektrum ausdehnt. Ich hoffe, dieses Thema kann Sie dazu inspirieren, die unendlichen Möglichkeiten von Spring+AI tiefer zu verstehen und zu nutzen. Das Spring-Framework hat eine mehr als 20-jährige Geschichte im Bereich der Softwareentwicklung, und seit der Veröffentlichung der Spring Boot 1.0-Version sind 10 Jahre vergangen. Nun kann niemand diesen Frühling bestreiten

Ausführliche Erläuterung der Funktion „Tag festlegen' in den dynamischen SQL-Tags von MyBatis Ausführliche Erläuterung der Funktion „Tag festlegen' in den dynamischen SQL-Tags von MyBatis Feb 26, 2024 pm 07:48 PM

Interpretation der dynamischen SQL-Tags von MyBatis: Detaillierte Erläuterung der Verwendung von Set-Tags. MyBatis ist ein hervorragendes Persistenzschicht-Framework. Es bietet eine Fülle dynamischer SQL-Tags und kann Datenbankoperationsanweisungen flexibel erstellen. Unter anderem wird das Set-Tag zum Generieren der SET-Klausel in der UPDATE-Anweisung verwendet, die sehr häufig bei Aktualisierungsvorgängen verwendet wird. In diesem Artikel wird die Verwendung des Set-Tags in MyBatis ausführlich erläutert und seine Funktionalität anhand spezifischer Codebeispiele demonstriert. Was ist Set-Tag? Set-Tag wird in MyBati verwendet

Analysieren Sie den Caching-Mechanismus von MyBatis: Vergleichen Sie die Eigenschaften und die Verwendung des Caches der ersten Ebene und des Caches der zweiten Ebene Analysieren Sie den Caching-Mechanismus von MyBatis: Vergleichen Sie die Eigenschaften und die Verwendung des Caches der ersten Ebene und des Caches der zweiten Ebene Feb 25, 2024 pm 12:30 PM

Analyse des MyBatis-Caching-Mechanismus: Der Unterschied und die Anwendung von First-Level-Cache und Second-Level-Cache Im MyBatis-Framework ist Caching eine sehr wichtige Funktion, die die Leistung von Datenbankoperationen effektiv verbessern kann. Unter diesen sind der First-Level-Cache und der Second-Level-Cache zwei häufig verwendete Caching-Mechanismen in MyBatis. In diesem Artikel werden die Unterschiede und Anwendungen von First-Level-Cache und Second-Level-Cache im Detail analysiert und spezifische Codebeispiele zur Veranschaulichung bereitgestellt. 1. Level-1-Cache Der Level-1-Cache wird auch als lokaler Cache bezeichnet. Er ist standardmäßig aktiviert und kann nicht deaktiviert werden. Der Cache der ersten Ebene ist SqlSes

Ausführliche Erklärung des First-Level-Cache von MyBatis: Wie kann die Effizienz des Datenzugriffs verbessert werden? Ausführliche Erklärung des First-Level-Cache von MyBatis: Wie kann die Effizienz des Datenzugriffs verbessert werden? Feb 23, 2024 pm 08:13 PM

Ausführliche Erklärung des First-Level-Cache von MyBatis: Wie kann die Effizienz des Datenzugriffs verbessert werden? Während des Entwicklungsprozesses war der effiziente Datenzugriff schon immer einer der Schwerpunkte der Programmierer. Für Persistenzschicht-Frameworks wie MyBatis ist Caching eine der Schlüsselmethoden zur Verbesserung der Datenzugriffseffizienz. MyBatis bietet zwei Caching-Mechanismen: Cache der ersten Ebene und Cache der zweiten Ebene. Der Cache der ersten Ebene ist standardmäßig aktiviert. In diesem Artikel wird der Mechanismus des First-Level-Cache von MyBatis ausführlich vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern ein besseres Verständnis zu erleichtern

Interpretation und Best Practices der MyBatis Generator-Konfigurationsparameter Interpretation und Best Practices der MyBatis Generator-Konfigurationsparameter Feb 23, 2024 am 09:51 AM

MyBatisGenerator ist ein offiziell von MyBatis bereitgestelltes Codegenerierungstool, mit dem Entwickler schnell JavaBeans, Mapper-Schnittstellen und XML-Zuordnungsdateien generieren können, die der Datenbanktabellenstruktur entsprechen. Bei der Verwendung von MyBatisGenerator zur Codegenerierung ist die Einstellung der Konfigurationsparameter von entscheidender Bedeutung. Dieser Artikel beginnt aus der Perspektive der Konfigurationsparameter und untersucht eingehend die Funktionen von MyBatisGenerator.

Ausführliche Erläuterung der Eins-zu-Viele-Abfragekonfiguration von MyBatis: Lösung häufiger verwandter Abfrageprobleme Ausführliche Erläuterung der Eins-zu-Viele-Abfragekonfiguration von MyBatis: Lösung häufiger verwandter Abfrageprobleme Feb 22, 2024 pm 02:18 PM

Ausführliche Erläuterung der Eins-zu-Viele-Abfragekonfiguration von MyBatis: Um häufig auftretende Abfrageprobleme zu lösen, sind spezifische Codebeispiele erforderlich. Bei der tatsächlichen Entwicklungsarbeit stoßen wir häufig auf Situationen, in denen wir das Hauptentitätsobjekt und die damit verbundenen mehreren Slave-Entitätsobjekte abfragen müssen . In MyBatis ist die Eins-zu-viele-Abfrage eine gängige Datenbankzuordnungsabfrage. Bei korrekter Konfiguration können die Abfrage, Anzeige und Bedienung verknüpfter Objekte problemlos realisiert werden. In diesem Artikel wird die Konfigurationsmethode für Eins-zu-Viele-Abfragen in MyBatis vorgestellt und erläutert, wie einige häufig auftretende Abfrageprobleme gelöst werden

Vertiefendes Verständnis des Batch-Insert-Implementierungsprinzips in MyBatis Vertiefendes Verständnis des Batch-Insert-Implementierungsprinzips in MyBatis Feb 21, 2024 pm 04:42 PM

MyBatis ist ein beliebtes Java-Persistenzschicht-Framework, das in verschiedenen Java-Projekten häufig verwendet wird. Unter diesen ist das Einfügen von Stapeln ein häufiger Vorgang, der die Leistung von Datenbankvorgängen effektiv verbessern kann. In diesem Artikel wird das Implementierungsprinzip von Batch Insert in MyBatis eingehend untersucht und anhand spezifischer Codebeispiele detailliert analysiert. Batch-Einfügung in MyBatis In MyBatis werden Batch-Einfügungsvorgänge normalerweise mit dynamischem SQL implementiert. Durch Konstruieren eines S, das mehrere eingefügte Werte enthält

Sicherheit geht vor: Best Practices zur Verhinderung von SQL-Injection in MyBatis Sicherheit geht vor: Best Practices zur Verhinderung von SQL-Injection in MyBatis Feb 22, 2024 pm 12:51 PM

Mit der Weiterentwicklung der Netzwerktechnologie kommt es immer häufiger zu Angriffen auf Datenbanken. SQL-Injection ist eine der häufigsten Angriffsmethoden. Angreifer geben schädliche SQL-Anweisungen in das Eingabefeld ein, um illegale Vorgänge auszuführen, was zu Datenverlust, Manipulation oder sogar Löschung führt. Um SQL-Injection-Angriffe zu verhindern, müssen Entwickler beim Schreiben von Code besondere Aufmerksamkeit auf sich ziehen und bei der Verwendung eines ORM-Frameworks wie MyBatis einige Best Practices befolgen, um die Sicherheit des Systems zu gewährleisten. 1. Parametrisierte Abfrage Parametrisierte Abfrage ist das Anti-

See all articles