Mit der Mapper-Schnittstelle müssen Sie keine Schnittstellenimplementierungsklasse schreiben und können den Datenbankvorgang direkt abschließen, was einfach und bequem ist. Um allen dabei zu helfen, die Mapper-Schnittstelle besser zu erlernen, hat der Herausgeber einige Wissenspunkte über die Mapper-Schnittstelle zusammengefasst, in der Hoffnung, Bedürftigen zu helfen.
Zuerst das Strukturdiagramm:
Das Folgende ist der spezifische Code:
1. User.java
实体类中的的get/set方法以及构造方法及toString方法就不贴了 public class User { private int id; private String name; private int age; }
2. UserMapper.java
Dies ist die Mapper-Schnittstelle, und die Idee der schnittstellenorientierten Programmierung ist immer noch sehr wichtig. Dies ist auch der wichtigste Teil dieses Blogbeitrags.
Die Schnittstellendefinition weist die folgenden Merkmale auf:
Der Name der Mapper-Schnittstellenmethode hat denselben Namen wie die ID jedes in UserMapper definierten SQL .xml.
Der Eingabeparametertyp der Mapper-Schnittstellenmethode ist derselbe wie der in UserMapper.xml definierte ParameterType-Typ von SQL.
Der Rückgabetyp der Mapper-Schnittstelle ist derselbe wie der in UserMapper.xml definierte Ergebnistyp von SQL
Achten Sie darauf Die Methode zum Erstellen der Tabelle. Es gibt eine Anmerkung @Param
package com.mi.mapper;import org.apache.ibatis.annotations.Param;import com.mi.beans.User;public interface UserMapper { void createTable (@Param("tableName") String tableName); void add(User user); void del(int id); void update(User user); User getUser(int id); User[] list(); }
3. userMappers.xml
Es muss hier notiert werden
1.xml-Dateinamespace sollte wie folgt geschrieben werden:
<mapper namespace="com.mi.mapper.UserMapper">
2 Wenn Sie die Anweisung zum dynamischen Erstellen einer Tabelle schreiben, schreiben Sie stattdessen ${tableName} #{}. Klicken Sie, um den Unterschied zwischen den beiden zu sehen
create table ${tableName}...
Das Folgende ist der vollständige Code: einschließlich Tabellenerstellung, CRUD
<mapper namespace="com.mi.mapper.UserMapper">create table ${tableName} (id int primary key auto_increment,name varchar(20),age int) insert into t_user(name,age) value(#{name},#{age}) delete from t_user where id = #{id} update t_user set name=#{name},age=#{age} where id=#{id}
4
Hier müssen zwei Dinge konfiguriert werden
JDBC-Verbindung konfigurieren
Mapper.xml konfigurieren
<?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> <environments default="development"> <environment id="development"> <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> <!-- 注册userMapper.xml文件 --> <mappers> <mapper resource="com/mi/mapping/userMappers.xml"/> </mappers></configuration>
5. SqlSessionUtil.java
Ich habe hier eine Toolklasse geschrieben, deren Hauptzweck darin besteht, sqlSession zu erhalten, da ich jedes Mal schreiben muss, wenn ich die Datenbank betreibe Es ist noch einmal, also kapsele ich es einmal Der folgende Satz
package com.mi.util;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;public class SqlSessionUtil { public static SqlSession getSqlSession() throws Exception{ String resource = "conf.xml"; //使用类加载器加载mybatis的配置文件(它也加载关联的映射文件) InputStream is = Resources.getResourceAsStream(resource); //构建sqlSession的工厂 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is); //创建能执行映射文件中sql的sqlSession SqlSession sqlSession = sessionFactory.openSession(); return sqlSession; } }
MyBatis wird über die dynamische Proxy-Mapper-Schnittstelle implementiert , danach ist es einfach zu handhaben, führen Sie einfach die in der Schnittstelle vorbereiteten Methoden aus.
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
Die Methode zur Verwendung der Mapper-Schnittstelle, ohne die Schnittstelle zum Implementieren der Klasse zu schreiben, schließt den Datenbankvorgang direkt ab, einfach und bequem. Beginnen wir mit dem Strukturdiagramm:
这里我只执行了创建表的方法. package com.mi.test;import org.apache.ibatis.session.SqlSession;import com.mi.beans.User;import com.mi.mapper.UserMapper; import com.mi.util.SqlSessionUtil;public class MyTest { public static void main(String[] args) throws Exception { SqlSession sqlSession = SqlSessionUtil.getSqlSession(); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); userMapper.createTable("t_user"); sqlSession.commit(); sqlSession.close(); } }
Das Folgende ist der spezifische Code:
1. User.java
2 , UserMapper.java Dies ist die Mapper-Schnittstelle, und die Idee der schnittstellenorientierten Programmierung ist immer noch sehr wichtig. Dies ist auch der wichtigste Teil dieses Blogbeitrags.
实体类中的的get/set方法以及构造方法及toString方法就不贴了public class User { private int id; private String name; private int age;
Die Schnittstellendefinition weist die folgenden Merkmale auf:
Der Name der Mapper-Schnittstellenmethode hat denselben Namen wie die ID jedes in UserMapper definierten SQL .xml.
3. userMappers.xml
Es muss hier notiert werdenpackage com.mi.mapper;import org.apache.ibatis.annotations.Param;import com.mi.beans.User;public interface UserMapper { void createTable (@Param("tableName") String tableName); void add(User user); void del(int id); void update(User user); User getUser(int id); User[] list(); }
1.xml-Dateinamespace sollte wie folgt geschrieben werden:
2 Wenn Sie die Anweisung zum dynamischen Erstellen einer Tabelle schreiben, schreiben Sie stattdessen ${tableName} #{}. Klicken Sie, um den Unterschied zwischen den beiden zu sehen
Das Folgende ist der vollständige Code: einschließlich Tabellenerstellung, CRUD
<mapper namespace="com.mi.mapper.UserMapper">
create table ${tableName}...
Hier müssen zwei Dinge konfiguriert werden
<mapper namespace="com.mi.mapper.UserMapper">create table ${tableName} (id int primary key auto_increment,name varchar(20),age int) insert into t_user(name,age) value(#{name},#{age}) delete from t_user where id = #{id} update t_user set name=#{name},age=#{age} where id=#{id}
JDBC-Verbindung konfigurieren
5. SqlSessionUtil.java
<?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> <environments default="development"> <environment id="development"> <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> <!-- 注册userMapper.xml文件 --> <mappers> <mapper resource="com/mi/mapping/userMappers.xml"/> </mappers></configuration>
MyBatis wird über die dynamische Proxy-Mapper-Schnittstelle implementiert , danach ist es einfach zu handhaben, führen Sie einfach die in der Schnittstelle vorbereiteten Methoden aus.
package com.mi.util;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;public class SqlSessionUtil { public static SqlSession getSqlSession() throws Exception{ String resource = "conf.xml"; //使用类加载器加载mybatis的配置文件(它也加载关联的映射文件) InputStream is = Resources.getResourceAsStream(resource); //构建sqlSession的工厂 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is); //创建能执行映射文件中sql的sqlSession SqlSession sqlSession = sessionFactory.openSession(); return sqlSession; } }
Verwandte Empfehlungen:
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
Oracle kombiniert Mybatis, um 10 Daten aus zu implementieren der Tisch
Spring Boot, Mybatis, Redis erstellen schnell moderne Webprojekte
Das obige ist der detaillierte Inhalt vonVerwendung von Mybatis (Mapper-Schnittstellenmethode). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!