Was ist Mybatis? Einführung in Mybatis-bezogene Inhalte
In diesem Artikel erfahren Sie, was Mybatis ist. Die Einführung von Mybatis-bezogenen Inhalten hat einen gewissen Referenzwert. Freunde in Not können darauf verweisen.
Einführung in MyBatis
MyBatis war ursprünglich ein Open-Source-Projekt iBatis von Apache. Im Jahr 2010 wurde dieses Projekt von Apache Software Foundation auf Google Code verschoben umbenannt in MyBatis. Im November 2013 auf Github migriert.
MyBatis ist ein hervorragendes Persistenzschicht-Framework, das benutzerdefiniertes SQL, gespeicherte Prozeduren und erweiterte Zuordnung unterstützt. MyBatis vermeidet fast den gesamten JDBC-Code und das manuelle Festlegen von Parametern sowie das Abrufen von Ergebnismengen. MyBatis kann einfaches XML oder Annotationen für die Konfiguration und native Maps verwenden, um Schnittstellen und Java-POJOs (Plain Old Java Objects, gewöhnliche Java-Objekte) in Datensätzen in der Datenbank abzubilden.
Offizielle MyBatis-Referenz-Website
http://www.mybatis.org/mybatis-3/zh/index.html
MyBatis-Downloadadresse
https://github.com/mybatis/mybatis-3
Vorteile von MyBatis
-
Open Source ausgezeichnetes Persistenzschicht-Framework
Trennung von SQL-Anweisungen und Code
Konfigurationsorientierte Programmierung
-
Gute Unterstützung für komplexe Datenzuordnung
Dynamisches SQL
MyBatis-Entwicklungsschritte
1. Fügen Sie das erforderliche JAR-Paket hinzu
1) mybatis-3.3.0-Kernpaket (wenn Sie einen Protokollvorgang benötigen, können Sie abhängige Pakete importieren)
2) Datenbanktreiber (mysql-connector-java-5.1.22 -bin)
Datenbank erstellen und Testdaten hinzufügen
create table `tal_employee` ( `id` int (11), `last_name` varchar (360), `email` varchar (300), `gender` char (9) );
3. Entitätsklasse erstellen
INSERT INTO `tal_employee` (`id`, `last_name`, `email`, `gender`) VALUES('1','韩信','hanxin@gemail.com','男'); INSERT INTO `tal_employee` (`id`, `last_name`, `email`, `gender`) VALUES('2','LiBaihH','libai@gemail.com','男'); INSERT INTO `tal_employee` (`id`, `last_name`, `email`, `gender`) VALUES('3','孙尚香','sunshangxiang@gemail.com','女'); INSERT INTO `tal_employee` (`id`, `last_name`, `email`, `gender`) VALUES('4','安琪拉','anqila@gemail.com','女'); INSERT INTO `tal_employee` (`id`, `last_name`, `email`, `gender`) VALUES('5','Hello','Hello@gemail.com','男'); INSERT INTO `tal_employee` (`id`, `last_name`, `email`, `gender`) VALUES('6','Miya','Miya@gemail.com','男');
4. Entitätsklassenzuordnungskonfigurationsdatei erstellen
public class Employee { private Integer id; private String lastName; private String email; private String gender; //此处省略get set toString。。。 }
5. Mybatis-Hauptkonfigurationsdatei erstellen
<?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="EmployeeMapper"> <!-- 定义一个查询方法 resultType 返回值类型--> <select id="findAll" resultType="com.simple.mybatis.entitys.Employee"> select * from tal_employee </select> </mapper>
SqlSessionFactory-Objekt abrufen
<?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> <!-- 配置环境 default默认使用环境名字--> <environments default="development"> <!-- 配置一个环境 --> <environment id="development"> <!-- 使用事务JDBC事务管理器 --> <transactionManager type="JDBC" /> <!-- 配置数据库连接 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/mybatis" /> <property name="username" value="root" /> <property name="password" value="root" /> </dataSource> </environment> </environments> <!-- 加载映射 --> <mappers> <mapper resource="com/simple/mybatis/entitys/EmployeeMapper.xml" /> </mappers> </configuration>
Auf die Datenbank zugreifen
Das SqlSession-Objekt abrufen, auf eine Konversation mit der Datenbank reagieren. Auf eine Konversation mit der Datenbank reagieren
private SqlSessionFactory sqlSessionFactory; @Before public void init() throws IOException{ //读取mybatis主配置文件 InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml"); /** * 实例化SqlSessionFactory * 如果没有指定默认环境,可以在这里指定使用的环境ID,比如我先在有个DEV环境 * sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream,"DEV"); * 我这里已经使用了默认环境所以我就不用这种方式创建了 */ sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); }
Alle Mitarbeiterdatensätze abrufen
EmployeeMapper ist der Namespace unserer Entity-Class-Mapping-Datei, findAll ist die ID unseres Select-Tags
SqlSession session = sqlSessionFactory.openSession();
Zugriffsergebnis:
List<Employee> employees = session.selectList("EmployeeMapper.findAll"); for (Employee employee : employees) { System.out.println(employee); }
Es ist normal, dass wir auf die zugreifen Datenbank hier, warum ist lastName leer?
Lösen Sie das Problem, dass Tabellenfelder nicht den Klassenattributnamen entsprechen
Grund: Es sollte daran liegen, dass das Attribut unserer Entitätsklasse namens lastName nicht dem entspricht Name der Datenbankspalte Nachname, daher wird der Wert erhalten. Der Wert ist leer
Lösung 1: Alias des Select-Tags in der Entitätsklassenzuordnungsdatei
Employee [id=1, lastName=null, email=hanxin@gemail.com, gender=男] Employee [id=2, lastName=null, email=libai@gemail.com, gender=男] Employee [id=3, lastName=null, email=sunshangxiang@gemail.com, gender=女] Employee [id=4, lastName=null, email=anqila@gemail.com, gender=女] Employee [id=5, lastName=null, email=Hello@gemail.com, gender=男] Employee [id=6, lastName=null, email=Miya@gemail.com, gender=男]
Lösung 2: Konfigurieren Sie die Benennung von Kamelbuchstaben In der Hauptkonfigurationsdatei von mybatis müssen Sie die Konfiguration an erster Stelle platzieren, andernfalls wird ein XML-Fehler gemeldet.
<select id="findAll" resultType="com.simple.mybatis.entitys.Employee"> select id,last_name AS lastName,email,gender from tal_employee </select>
Verwenden Sie Option 2. Das Attribut lastName in unserer Klasse stimmt mit dem Datenbankfeld last_name überein
Verwenden Sie Protokolle, um SQL-Anweisungen usw. anzuzeigen.
Zuerst müssen wir das mybatis-Abhängigkeitspaket hinzufügen
log4j.properties hinzufügen
<settings> <!-- 开启驼峰式命名规则 --> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings>
Also dass wir log4j verwenden können, um unsere SQL-Anweisungen und eingehenden Parameter anzuzeigen. . Warten
MyBatis-Konfigurationsdatei
Durch den vorherigen einfachen MyBatis-Fall sollten Sie die Grundstruktur des MyBatis-Frameworks verstehen, die dieselbe ist Als Hibernate enthält MyBatis eine Kernkonfigurationsdatei und eine Zuordnungsdatei.
Kernkonfigurationsdatei (mybatis-config.xml): Enthält die Kernkonfiguration von Mybatis, einschließlich Verbindungspoolinformationen, Transaktionen, Ladezuordnungsdateien, Parametereinstellungen und anderen Konfigurationen.
Zuordnungsdatei (EmployeeMapper.xml): implementiert hauptsächlich die Zuordnung von Entitätsobjekten zur Datenbank, Zuordnungen, SQL-Anweisungen usw.
Kernkonfigurationsdatei
Tag | Beschreibung | < /tr>||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Konfigurationsumgebung | ||||||||||||||
Einige externe Attribute, diese Attribute können ersetzt werden | |||||||||||||||
<🎜> | Die äußerst wichtigen Anpassungseinstellungen in Mybatis werden das Standardverhalten von Mybatis ändern. | ||||||||||||||
<🎜> | Legen Sie einen Alias für den Java-Typ fest, der sich nur auf die XML-Konfiguration bezieht. | ||||||||||||||
<🎜> | Mapper, lädt die MyBatis-Mapping-Datei. | ||||||||||||||
<🎜> | Plug-in, Mybatis ermöglicht es Benutzern, an einem bestimmten Punkt im Mapping abzufangen. |
环境配置
Mybatis可以通过
配置多种环境,比如开发环境、测试环境和生产环境等。
不过要记住,尽管可以配置多个环境,但是SqlSessionFactory对象只能加载一个。如果你需要同时连接多个数据库,需要创建多个SqlSessionFactory实例。
事务管理
在 MyBatis来进行事务的设置,其中有两种类型的事务管理器。
JDBC:这个配置就是直接使用了 JDBC 的提交和回滚设置,它依赖于从数据源得到的连接来管理事务范围。
MANAGED:这个配置几乎没做什么。它从来不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如 JEE 应用服务器的上下文)。 默认情况下它会关闭连接,然而一些容器并不希望这样,因此需要将 closeConnection 属性设置为 false 来阻止它默认的关闭行为。
<transactionManager type="MANAGED"> <property name="closeConnection" value="false"/> </transactionManager>
如果你正在使用 Spring + MyBatis,则没有必要配置事务管理器, 因为 Spring 模块会使用自带的管理器来覆盖前面的配置。
数据源
使用标准的 JDBC 数据源接口来配置 JDBC 连接对象的资源。有三种数据源类型
UNPOOLED:这个数据源的实现只是每次被请求时打开和关闭连接。
POOLED:这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来, 避免了创建新的连接实例时所必需的初始化和认证时间。
JNDI:使用JNDI在外部配置数据源。
properties标签
properties为外部属性,比如数据库连接信息可以配置到一个单独的properties文件中,然后在xml中进行引入。
添加一个db.properties文件
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/test username=root password=root
在mybatis主配置文件中引用
<properties resource="db.properties" /> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </dataSource> </environment> </environments>
映射器
通常MyBatis中将映射关系(非必须)和SQL语句写入到映射文件中,在配置文件中需要手动进行加载映射文件。加载映射文件使用进行加载。Mybatis中有4种加载方式。
1.使用resource,加载classpath路径进行加载。
<mappers> <mapper resource="com/simple/mybatis/entitys/EmployeeMapper.xml"/> </mappers>
2.使用url路径进行加载。
<mappers> <mapper url="file:///var/mappers/AuthorMapper.xml"/> </mappers>
3.使用calss进行加载,注解方式。
<!– 加载class类--> <mappers> <mapper class="使用注解的全类名"/> </mappers>
4.使用package进行加载,注解方式。
<!– 加载某个包下的所有class文件--> <mappers> <package name="com.simple.mybatis.entitys"/> </mappers>
别名的使用
之前,我们在sql映射xml文件中的引用实体类时,resultType需要写上实体类的全类名(包名+类名),如下:
<select id="findAll" resultType="com.simple.mybatis.entitys.Employee"> select id,last_name AS lastName,email,gender from tal_employee </select>
在mybatis主配置文件中加入
<typeAliases> <typeAlias type=“com.simple.mybatis.entitys.Employee" alias="Employee"/> </typeAliases>
这样在resultType中就可以直接使用Employee类型了。这个别名是不区分大小写的。
Das obige ist der detaillierte Inhalt vonWas ist Mybatis? Einführung in Mybatis-bezogene Inhalte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



iBatis vs. MyBatis: Wofür sollten Sie sich entscheiden? Einführung: Mit der rasanten Entwicklung der Java-Sprache sind viele Persistenz-Frameworks entstanden. iBatis und MyBatis sind zwei beliebte Persistenz-Frameworks, die beide eine einfache und effiziente Lösung für den Datenzugriff bieten. In diesem Artikel werden die Funktionen und Vorteile von iBatis und MyBatis vorgestellt und einige spezifische Codebeispiele gegeben, die Ihnen bei der Auswahl des geeigneten Frameworks helfen. Einführung in iBatis: iBatis ist ein Open-Source-Persistenz-Framework

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

Mehrere Möglichkeiten zur Implementierung von Batch-Löschanweisungen in MyBatis erfordern spezifische Codebeispiele. Aufgrund der zunehmenden Datenmenge sind Batch-Operationen in den letzten Jahren zu einem wichtigen Bestandteil von Datenbankoperationen geworden. In der tatsächlichen Entwicklung müssen wir häufig Datensätze in der Datenbank stapelweise löschen. Dieser Artikel konzentriert sich auf verschiedene Möglichkeiten zur Implementierung von Batch-Löschanweisungen in MyBatis und stellt entsprechende Codebeispiele bereit. Verwenden Sie das foreach-Tag, um eine Stapellöschung zu implementieren. MyBatis stellt das foreach-Tag bereit, mit dem ein Satz problemlos durchlaufen werden kann.

JPA und MyBatis: Vergleichende Analyse von Funktion und Leistung Einführung: In der Java-Entwicklung spielt das Persistenz-Framework eine sehr wichtige Rolle. Zu den gängigen Persistenz-Frameworks gehören JPA (JavaPersistenceAPI) und MyBatis. In diesem Artikel wird eine vergleichende Analyse der Funktionen und Leistung der beiden Frameworks durchgeführt und spezifische Codebeispiele bereitgestellt. 1. Funktionsvergleich: JPA: JPA ist Teil von JavaEE und bietet eine objektorientierte Datenpersistenzlösung. Es wird eine Annotation oder X übergeben

Für eine ausführliche Erläuterung der Verwendung von MyBatis-Batch-Löschanweisungen sind spezifische Codebeispiele erforderlich. Einführung: MyBatis ist ein hervorragendes Persistenzschicht-Framework, das umfangreiche SQL-Operationsfunktionen bietet. In der tatsächlichen Projektentwicklung stoßen wir häufig auf Situationen, in denen Daten stapelweise gelöscht werden müssen. In diesem Artikel wird die Verwendung von MyBatis-Batch-Delete-Anweisungen ausführlich vorgestellt und spezifische Codebeispiele angehängt. Verwendungsszenario: Beim Löschen einer großen Datenmenge in der Datenbank ist es ineffizient, die Löschanweisungen einzeln auszuführen. An dieser Stelle können Sie die Batch-Löschfunktion von MyBatis verwenden

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.

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