Heim > Datenbank > MySQL-Tutorial > Hauptteil

Verstehen Sie die Grundlagen von Mybatis

coldplay.xixi
Freigeben: 2021-01-22 09:29:55
nach vorne
1841 Leute haben es durchsucht

Verstehen Sie die Grundlagen von Mybatis

Empfohlenes kostenloses Lernen: MySQL-Video-Tutorial

mybatis

mybatis-config.xml detaillierte Konfiguration (löschen Sie beim Konfigurieren die redundanten Attribute und kein Chinesisch, sonst wird ein Fehler angezeigt gemeldet!)

<?xml  version="1.0" encoding="UTF-8" ?>nbsp;configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd"><!--configuration核心配置  配置文件的根元素 --><configuration>
    <!-- 属性:定义配置外在化 -->
    <properties></properties>
    <!-- 设置:定义mybatis的一些全局性设置 -->
    <settings>
        <!-- 具体的参数名和参数值 -->
        <setting></setting>
    </settings>
    <!-- 类型名称:为一些类定义别名 -->
    <typealiases>
        <!-- 实体类少 建议 第一种取别名方式-->
        <typealias></typealias>
        <!--实体类多 建议  第二种取别名方式
        默认情况下用这种方式 别名为类名 首字母最好小写
        -->
        <package></package>
    </typealiases>
    <!-- 类型处理器:定义Java类型与数据库中的数据类型之间的转换关系 -->
    <typehandlers></typehandlers>
    <!-- 对象工厂 -->
    <objectfactory></objectfactory>
    <!-- 插件:mybatis的插件,插件可以修改mybatis的内部运行规则 -->
    <plugins>
        <plugin></plugin>
    </plugins>
    <!-- 环境:配置mybatis的环境 -->
    <environments>
        <!-- 环境变量:可以配置多个环境变量,比如使用多数据源时,就需要配置多个环境变量 -->
        <environment>
            <!-- 事务管理器 -->
            <transactionmanager></transactionmanager>
            <!-- 数据源 配置连接我的数据库-->
            <datasource>
                <property></property>
                <property></property>
                <property></property>
                <property></property>
            </datasource>
        </environment>
    </environments>
    <!-- 数据库厂商标识 -->
    <databaseidprovider></databaseidprovider>
    <!-- 映射器:指定映射文件或者映射类 -->
    <mappers>
        <mapper></mapper>
    </mappers></configuration>
Nach dem Login kopieren

Paging

Datenzugriff reduzieren
limt implementiert Paging
SQL-Anweisung: select * from table name limt 0,5;

  • 0: Die Startposition der Daten
  • 5: Die Länge von die Daten. Eins: Mybatis verwenden. 1 Schnittstelle
  • 1.Schnittstelle
List getUserList() ;

2. Implementieren Sie die Schnittstelle

  List<user> getUserByLimit(Map<string> map);</string></user>
Nach dem Login kopieren
3. Test:

   <select>
        select *
        from mybatis.user
        limit ${starIndex},${pageSize}    </select>
Nach dem Login kopieren

Die dritte Methode: Verwenden Sie das Paging-Plug-in pageHeIper

SQL-Viele-zu-Eins-Verarbeitung
Datenbank:

pojo

Datenbank Die Lehrertabellentabelle in der Datenbank entspricht der Entitätsklasse Teacher

<resultmap>
        <result></result>
    </resultmap>
Nach dem Login kopieren
Die Benutzertabelle in der Datenbank entspricht der Entitätsklasse Student
 @Test
    public void getUserByLimitTest() {
        SqlSession sqlSession = MyBatisUtils.getSqlSession ();
        UserMapper mapper = sqlSession.getMapper (UserMapper.class);
        HashMap hashMap = new HashMap<string> ();
        hashMap.put ("starIndex", 1);
        hashMap.put ("pageSize", 2);
        List userByLimit = mapper.getUserByLimit (hashMap);
        for (Object o : userByLimit) {
            System.out.println (o);
        }

        sqlSession.close ();
    }</string>
Nach dem Login kopieren

1. InterfaceVerstehen Sie die Grundlagen von Mybatis
<select>
        select *
        from mybatis.user    </select>
Nach dem Login kopieren
2.xml Konfigurationsimplementierungsschnittstelle

 /**
     * 测试使用RowBounds实现分页
     */@Test
    public void getUserByLimitRowBoundsTest() {
        SqlSession sqlSession = MyBatisUtils.getSqlSession ();
        RowBounds rowBounds = new RowBounds (0, 2);
        List<user> userList = sqlSession.selectList ("com.kuang.w.dao.UserMapper.getUserList", null, rowBounds);
        for (User user : userList) {
            System.out.println (user);
        }
        //关闭
        sqlSession.close ();
    }</user>
Nach dem Login kopieren
package com.kuang.w.pojo;

import lombok.Data;

/**
 * @author W
 */
@Data
public class Teacher {
    private int tId;
    private String tName;

}
Nach dem Login kopieren
mybatis-config.xm-Konfiguration
package com.kuang.w.pojo;import lombok.Data;/**
 * @author W
 */@Datapublic class Student {
    private int id;
    private int tid;
    private String name;
    private String password;
    private Teacher teacher;}
Nach dem Login kopieren
3 Test

   List<student> getStudentList();</student>
Nach dem Login kopieren
Verstehen Sie die Grundlagen von Mybatis
SQL-Eins-zu-viele-Verarbeitung
Die der Datentabellenstruktur entsprechende Entitätsklasse bleibt unverändert

Der erste Weg: Gemeinsame Abfrage mit mehreren Tabellen

1 Schnittstelle

  <!-- 多对一查询
    1 子查询 mysql 通过一个表里是数据   与另一个表的一个数据相的情况下 查询另一个的数据 一起显示
  -->
    <select>
        select *
        from mybatis.user;    </select>
    <resultmap>
        <!--  复杂属性 对象用 :association 集合用:collection-->
        <!--column 数据库中的字段 property 实体类中的属性-->
        <result></result>
        <result></result>
        <result></result>
        <!--javaType	一个 Java 类的全限定名
        ,或一个类型别名(关于内置的类型别名,可以参考上面的表格)。
        如果你映射到一个 JavaBean,MyBatis 通常可以推断类型。
        然而,如果你映射到的是 HashMap,
        那么你应该明确地指定 javaType 来保证行为与期望的相一致。-->
        <association></association>
    </resultmap>
    <select>
        select *
        from mybatis.teacher_table
        where tid = #{id};    </select>
Nach dem Login kopieren
2.1 XML-Implementierungsschnittstelle

 <!--2 多表联查-->
    <select>
        select u.id       uid,
               u.name     uname,
               u.password upassword,
               u.tid      utid,
               t.tname
        from mybatis.user u,
             mybatis.teacher_table t
        where t.tid = u.tid;    </select>
     <!-- 映射-->
    <resultmap>
        <result></result>
        <result></result>
        <result></result>
        <result></result>
        <association>
            <result></result>
        </association>
    </resultmap>
Nach dem Login kopieren
2.2 Zuordnungskonfiguration

<?xml  version="1.0" encoding="UTF8" ?>nbsp;configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration>
    <properties></properties>
    <settings>
        <setting></setting>
    </settings>
    <typealiases>
        <typealias></typealias>
        <typealias></typealias>
    </typealiases>

    <environments>
        <environment>
            <transactionmanager></transactionmanager>
            <datasource>
                <property></property>
                <property></property>
                <property></property>
                <property></property>
            </datasource>
        </environment>
    </environments>
    <mappers>
        <!--   <mapper resource="com/kuang/w/dao/TeacherMapper.xml"></mapper>
           <mapper resource="com/kuang/w/dao/StudentMapper.xml"></mapper>-->
        <mapper></mapper>
        <mapper></mapper>
    </mappers></configuration>
Nach dem Login kopieren
3 Test

 @Test
    public void getStudentListTest() {
        SqlSession sqlSession = MyBatisUtils.getSqlSession ();
        StudentMapper mapper = sqlSession.getMapper (StudentMapper.class);


        List<student> studentList = mapper.getStudentList ();
        for (Student student : studentList) {
            System.out.println (student);
        }

        sqlSession.commit ();
        sqlSession.close ();
    }</student>
Nach dem Login kopieren
Ergebnis
    List<teacher> getTeacher(int tid);</teacher>
Nach dem Login kopieren
Zweiter Weg: Unterabfrage

1 Schnittstelle

  <select>
        select t.tid, t.tname, u.id, u.name, u.password
        from mybatis.user u,
             mybatis.teacher_table t
        where t.tid = u.tid
          and t.tid = #{tid};    </select>
Nach dem Login kopieren
2 Schnittstelle implementieren

<resultmap>
        <result></result>
        <result></result>
        <!--  复杂属性 对象用 :association 集合用:collection-->
        <collection>
            <!--javaType 指定属性类型 一个 Java 类的全限定名-->
            <result></result>
            <result></result>
            <result></result>
            <result></result>
        </collection>
    </resultmap>
Nach dem Login kopieren

3 Testen Sie wie oben
. . . .

Verwandte kostenlose Lernempfehlungen:

MySQL-Datenbank

(Video)

Das obige ist der detaillierte Inhalt vonVerstehen Sie die Grundlagen von Mybatis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!