Heim  >  Artikel  >  Java  >  Erste Schritte mit MyBatis (1)---Grundlegende Verwendung

Erste Schritte mit MyBatis (1)---Grundlegende Verwendung

黄舟
黄舟Original
2016-12-21 14:21:131508Durchsuche

1. Einführung in MyBatis

1.1. Überblick

MyBatis ist ein hervorragendes Persistenzschicht-Framework, das benutzerdefiniertes SQL, gespeicherte Prozeduren und erweiterte Zuordnung unterstützt.

MyBatis vermeidet fast den gesamten JDBC-Code und die manuelle Einstellung von Parametern und den Abruf von Ergebnismengen.

MyBatis kann einfaches XML oder Annotationen für die Konfiguration und native Karten verwenden, um Schnittstellen und Java-POJOs (Plain Old Java Objects, gewöhnliche Java-Objekte) Datensätzen in der Datenbank zuzuordnen.

1.2, ORM

Grundidee des ORM-Tools
Ob Sie Hibernate oder Mybatis verwendet haben, Sie können lernen, dass sie eines gemeinsam haben:
Von die Konfigurationsdatei (normalerweise in der XML-Konfigurationsdatei) Holen Sie sich Sessionfactory.
2. Generieren Sie eine Sitzung
aus Sessionfactory 3. Schließen Sie das Hinzufügen, Löschen, Ändern und Überprüfen von Daten und die Transaktionseinreichung in der Sitzung ab.
4 . Schließen Sie die Sitzung nach der Verwendung.

5. Zwischen dem Java-Objekt und der Datenbank gibt es eine Zuordnungskonfigurationsdatei, bei der es sich normalerweise um eine XML-Datei handelt.

2. Umgebungseinrichtung

2.1. Erforderliches Jar-Paket

Um MyBatis zu verwenden, platzieren Sie einfach die Datei mybatis-x.x.x.jar im Klassenpfad. Das ist es .

Erste Schritte mit MyBatis (1)---Grundlegende Verwendung

2.2. Datenbank erstellen und Daten einfügen

MySQL-Datenbank wird hier verwendet:

CREATE TABLE `mybatis`.`user` (
  `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
  `name` VARCHAR(45) NOT NULL DEFAULT '无名氏' COMMENT '用户名',
  `age` TINYINT(3) NOT NULL DEFAULT 21 COMMENT '用户年龄',
  `birthday` DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00' COMMENT '用户生日',
  `address` VARCHAR(256) NOT NULL DEFAULT '北京' COMMENT '用户地址',  PRIMARY KEY (`id`)  COMMENT '')
COMMENT = '用户表';

insert into user(id,name , Alter, Geburtstag, Adresse)values(1,'Zhang San',23,'1990-01-23 20:24:21','Shanghai'),(2,'Li Si',18,'1986-12 - 23 12:13:11','Guangzhou'),(3,'

2.3. Erstellen Sie ein Webprojekt und führen Sie das Jar-Paket in das Projekt ein

Erste Schritte mit MyBatis (1)---Grundlegende Verwendung

3. Konfigurationsdateien, Entitätsklassen und Schnittstellen erstellen

3.1. Entitätsklassen erstellen

/*** @Title: User.java

* @Package com.pb.mybatis.po

* @Description: TODO (Benutzerklasse)

* @author Liu Nan

* @Datum 26.10.2015 17:42:13 Uhr

* @Version V1.0

*/package com.pb.mybatis.po;import java.util.Date;/**
* @ClassName: Benutzer

* @Description: TODO (Benutzerklasse)

* @Autor Liu Nan

* @Datum 26.10.2015, 17 Uhr :42:13

**/public class User {    
   /**
* id (Benutzer-ID)*/
   private int id;    /**
* Name (Benutzername)*/
   private String name;    /**
*Alter (Benutzeralter)*/
   private int age;    /**
* Geburtstag (Geburtstag des Benutzers)*/
   privat Datum Geburtstag;    /**
* Adresse (Benutzeradresse)*/
   private String-Adresse;    /**
    * @return the id    */
   public int getId() {        return id;
   }    /**
    * @param id die festzulegende ID    */
   public void setId(int id) {        this.id = id;
   }    /**
    * @return den Namen    */
   public String getName() {        return name;
   }    /**
    * @param name der festzulegende Name    */
   public void setName(String name) {        this.name = name;
   }    /**
    * @return the age    */
   public int getAge() {        return age;
   }    /**
    * @param age das festzulegende Alter    */
   public void setAge(int age) {        this .age = age;
   }    /**
    * @return the brithday    */
   public Date getBirthday() {        return brithday;
   }    /**
    * @param brithday der festzulegende Geburtstag    */
   public void setBirthday(Date Geburtstag ) {        this.birthday = Geburtstag;
   }    /**
    * @return die Adresse    */
   public String getAddress() {        return address;
   }    /**
    * @param-Adresse die festzulegende Adresse    */
   public void setAddress (String-Adresse) {        this.address = address;
   }
   

}

 

3.2、写实体类接口

 

/*** @Title: UserMapper.java

* @Package com.pb.mybatis.dao

* @Description: TODO (beschreiben Sie in einem Satz, was diese Datei tut)

* @Autor Liu Nan

* @Datum 26.10.2015 17:45:13 Uhr

* @Version V1.0

*/package com.pb.mybatis.dao;import com.pb.mybatis.po.User;/**
* @ClassName: UserMapper

* @Description: TODO (Benutzerklassen-Datenzugriffsschnittstelle)

* @Autor Liu Nan

* @Datum 2015-10- 26 17:45:13

**/public interface UserMapper {    /* *
*
* @Title: selectUserById

* @Description: TODO (Abfrage basierend auf Benutzer-ID)

* @param id
* @return User*/
   public User selectUserById(int id);

}

 

3.3、与db.properties

 db.properties

#数据库基本配置
#驱动
driver=com.mysql.jdbc.Driver
#连接url
url=jdbc:mysql://localhost: 3306/mybatis?characterEncoding=utf8#用户名
username=root
#密码
passWord=root

3.4、建立映射文件与configuration.xml配置

 

 UserMapper.xml

br/> PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
> ;

configuration.xml

< ;!DOCTYPE-Konfiguration
PUBLIC " -//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">< ;Konfiguration>< ;environment id="development">

3.5. Einfache Abfrage basierend auf der ID

/*** @Title: Test1.java

* @Package com.pb.mybatis.test

* @Description: TODO (beschreiben Sie in einem Satz, was diese Datei tut)

* @Autor Liu Nan

* @Datum 26.10.2015 17:55:54 Uhr

* @Version V1.0

*/package com.pb.mybatis.test;import java.io.IOException;import java.io.Reader;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 com.pb.mybatis.dao.UserMapper;import com.pb.mybatis.po.User; /**
* @ClassName: Test1

* @Description: TODO (Testklasse)

* @author Liu Nan

* @date 26.10.2015 17 Uhr :55:54

**/public class Test1 {    //Session工厂
   static SqlSessionFactory sqlSessionFactory=null;    //Session
   static SqlSession session=null;    //字符流
   static Reader reader=null;    
   public static void main(String[] args) {
       
       selectById();
   }    /**
*
* @Title: selectById

* @Description: TODO (Benutzer anhand der ID suchen)
void*/
   public static void selectById(){        //置文件
       try {
           reader=Resources.getResourceAsReader("configuration.xml");            //建立SqlSessionFactory
           sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);            //打开Session
           session=sqlSessionFactory.openSession();            //获取用户接口对象
           UserMapper userMapper=session.getMapper(UserMapper.class);            //调用查询方法
           Benutzer user=userMapper.selectUserById(1);
           System.out.println(user.getName()+"..."+user.getAge()+"..." +user.getBirthday().toLocaleString()+"..."+user.getAddress());
       } Catch (IOException e) {
           e.printStackTrace();
       }

   }

}

 

3.6、使用别名

Erste Schritte mit MyBatis (1)---Grundlegende Verwendung

> ;

更改mapper.xml中的User类的路径 为别名

Erste Schritte mit MyBatis (1)---Grundlegende Verwendung


br/>  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd /mybatis-3-mapper.dtd">
  wählen Sie * aus Benutzer
wobei id=#{id}

测试类不变

3.7、使用resultMap

在mapper.xml中使用resultMap

 

br/> PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
< ;!--Primärschlüssel -->< ;!--Primärschlüssel -->> ist ;insert into user(name,age,birthday,address)
values ​​(#{name},#{age},#{birthday},#{address})
update user set name=#{name},age=#{age},birthday=#{birthday},address= #{address}
where id=#{id}
delete from user
wobei id=#{id}

4.3, Testklasse

/**

* @Title: Test1.java

* @Package com.pb.mybatis.test

* @Description: TODO (beschreiben Sie in einem Satz, was diese Datei tut)

* @Autor Liu Nan

* @Datum 26.10.2015 17:55:54 Uhr

* @Version V1.0

*/package com.pb.mybatis.test;import java.io.IOException;import java.io.Reader;import java.text.ParseException;import java.text.SimpleDateFormat;import java .util.Date;import java.util.List;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 com.pb.mybatis.dao.UserMapper;import com.pb.mybatis.po.User;/**
* @ClassName: Test1
*
* @Description: TODO(test class)
*
* @author Liu Nan
*
* @date 2015-10- 26 17:55:54 Uhr
*
*
*/public class Test1 {    // Session工厂
   static SqlSessionFactory sqlSessionFactory = null;    // Session
   static SqlSession session = null;    // 字符流
   static Reader reader = null;    public static void main(String[] args) {

       
   }    /**
*
* @Title: selectById
*
* @Description: TODO (Benutzer anhand der ID suchen) void*/
   public static void selectById() {        // Versuchen Sie es {
           reader = Resources.getResourceAsReader("configuration.xml");            // 建立SqlSessionFactory
           sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);            // 打开Session
           session = sqlSessionFactory.openSession();            // 获取用户接口对象
           UserMapper userMapper = session.getMapper(UserMapper.class);            // 调用查询方法
           Benutzer user = userMapper.selectUserById(1);
           System.out.println(user.getName() + "..." + user.getAge() + "..."
                   + user.getBirthday().toLocaleString() + "..."
                   + user.getAddress());
       } Catch (IOException e) {
           e. printStackTrace();
       }

   }    /**
*
* @Title: selectLikeName
*
* @Description: TODO (Fuzzy-Abfrage basierend auf Benutzername) void*/
   public static void selectLikeName() {        // 加载配置文件
       versuchen   reader = Resources.getResourceAsReader("configuration. xml");            // 建立SqlSessionFactory
           sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);            // 打开Session
           session = sqlSessionFactory.openSession();            // 获取用户接口对象
           UserMapper userMapper = session.getMapper(UserMapper.class);            // 调用查询方法
           List user = userMapper.selectUserLikeName("张");            for (Benutzer Benutzer: Benutzer) {
               System.out.println(user.getName() + "..." + user.getAge()                         + "..." + user.getBirthday().toLocaleString() + "..."
                       + user.getAddress());
         }

}    /**
*
* @Title: addUser

* @Description: TODO(Benutzer hinzufügen)
void*/
public static void addUser() { //Konfigurationsdatei laden
try {
reader = Resources.getResourceAsReader("configuration.xml"); // SqlSessionFactory erstellen
s qlSessionFactory = new SqlSessionFactoryBuilder().build( Leser );                                                                       Use   use   use   use   use   use                  User();
            user.setName("Hehe"); SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-DD HH:mm:ss");
        Date date=sdf.parse(d);
            user.setBirthday(date); Wissen, wo es ist");
userMapper.addUser(user);
System.out.println("Insert ID"+ user.getId()); //Transaktion festschreiben session.commit();
                                                                                                file
try {
                                                                            // Build SqlSessionFactory
tory = new SqlSessionFactoryBuilder().build(reader);                         // Holen Sie sich das Benutzeroberflächenobjekt
                    UserMapper userMapper = session.getMapper(UserMapper. Class); ;                                                                                                                                                                                                                  //Transaktion festschreiben );
🎜>
} public static void detleUser() { // Konfigurationsdatei laden
try {
reader = Resources.getResourceAsReader("configuration.xml") ; // SqlSessionFactory erstellen
sqlSessionFactory = new SqlSessionFactoryBuilder().build( Reader); // Sitzung öffnen
session = sqlSessionFactory.Opension (); // Benutzeroberflächenobjekt abrufen
UserMapper = Session .getMapper (UserMapper.Class).                                                                                                        mite.printStackTrace();
}

}

Erste Schritte mit MyBatis (1)---Grundlegende Verwendung

Das Obige ist die Einführung in MyBatis (1) – grundlegende Verwendung Inhalt, Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Stellungnahme:
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