Maison > Java > javaDidacticiel > le corps du texte

Premiers pas avec MyBatis (1) --- Utilisation de base

黄舟
Libérer: 2016-12-21 14:21:13
original
1545 Les gens l'ont consulté

1. Introduction à MyBatis

1.1. Présentation

MyBatis est un excellent framework de couche de persistance qui prend en charge le SQL personnalisé, les procédures stockées et le mappage avancé.

MyBatis évite presque tout le code JDBC, le réglage manuel des paramètres et la récupération des jeux de résultats.

MyBatis peut utiliser du XML simple ou des annotations pour la configuration et des cartes natives pour mapper les interfaces et les POJO Java (Plain Old Java Objects, objets Java ordinaires) dans les enregistrements de la base de données.

1.2, ORM

Idée de base de l'outil ORM
Que vous ayez utilisé hibernate ou mybatis, vous pouvez apprendre qu'ils ont une chose en commun :
1. le fichier de configuration (généralement dans le fichier de configuration XML) Obtenez sessionfactory.
2. Générez une session
à partir de sessionfactory 3. Terminez l'ajout, la suppression, la modification et la vérification des données et la soumission des transactions dans la session.
4 . Fermer après utilisation.

5. Il existe un fichier de configuration de mappage entre l'objet Java et la base de données, qui est généralement un fichier XML.

2. Configuration de l'environnement

2.1. Package Jar requis

Pour utiliser MyBatis, placez simplement le fichier mybatis-x.x.x.jar dans le chemin de classe. .

Premiers pas avec MyBatis (1) --- Utilisation de base

2.2. Établir la base de données et insérer les données

La base de données MySQL est utilisée ici :

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 = '用户表';
Copier après la connexion

insérer dans l'utilisateur (id, nom , âge, anniversaire, adresse) valeurs (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. Créer un projet Web et introduire le package Jar dans le projet

Premiers pas avec MyBatis (1) --- Utilisation de base

3. Établir des fichiers de configuration, des classes d'entités et des interfaces

3.1. Établir des classes d'entités

/*** @Titre : Utilisateur.java

* @Package com.pb.mybatis.po

* @Description : TODO (classe d'utilisateur)

* @auteur Liu Nan

* @date 2015-10-26 17:42:13

* @version V1.0

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

* @Description : TODO (classe d'utilisateur)

* @auteur Liu Nan

* @date 2015-10-26 17h :42:13

**/public class User {    
   /**
* identifiant (ID utilisateur)*/
   identifiant int privé ;    /**
* nom (nom d'utilisateur)*/
   privée Nom de la chaîne ;    /**
*age (âge de l'utilisateur)*/
   âge int privé ;    /**
* anniversaire (anniversaire de l'utilisateur)*/
   date d'anniversaire privée ;    /**
* adresse (adresse de l'utilisateur)*/
   adresse de chaîne privée ;    /**
    * @renvoie l'identifiant    */
   public int getId() {        return id;
   }    /**
    * @param id l'identifiant à définir    */
   public void setId(int id) {        this.id = id;
   }    /**
    * @renvoie le nom    */
   public String getName() {        return name;
   }    /**
    * @param name le nom à définir    */
   public void setName(String name) {        this.name = nom;
   }    /**
    * @retourne l'âge    */
   public int getAge() {        return age;
   }    /**
    * @param age l'âge à définir    */
   public void setAge(int age) {        this .age = age;
   }    /**
    * @retour de l'anniversaire    */
   public Date getBirthday() {        return brithday;
   }    /**
    * @param brithday l'anniversaire à définir    */
   public void setBirthday(Date anniversaire ) {        this.birthday = anniversaire;
   }    /**
    * @retourner l'adresse    */
   public String getAddress() {        adresse de retour;
   }    /**
    * @param address l'adresse à définir    */
   public void setAddress (Adresse de chaîne) {        this.address = adresse;
   }
   

}

 

3.2、写实体类接口

 

/*** @Titre : UserMapper.java

* @Package com.pb.mybatis.dao

* @Description : TODO (décrivez ce que fait ce fichier en une phrase)

* @auteur Liu Nan

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

* @version V1.0

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

* @Description : TODO (interface d'accès aux données de classe utilisateur)

* @auteur Liu Nan

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

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

* @Description : TODO (requête basée sur l'ID utilisateur)

* @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

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

3.5. Requête simple basée sur l'ID

/*** @Titre : Test1.java

* @Package com.pb.mybatis.test

* @Description : TODO (décrivez ce que fait ce fichier en une phrase)

* @auteur Liu Nan

* @date 2015-10-26 17:55:54 pm

* @version V1.0

*/package com.pb.mybatis.test; importer java.io.IOException; importer java.io.Reader; importer org.apache.ibatis.io.Resources; importer org.apache. ibatis.session.SqlSession; importer org.apache.ibatis.session.SqlSessionFactory; importer org.apache.ibatis.session.SqlSessionFactoryBuilder; importer com.pb.mybatis.dao.UserMapper; importer com.pb.mybatis.po.User; /**
* @ClassName : Test1

* @Description : TODO (Classe de test)

* @auteur Liu Nan

* @date 2015-10-26 17h :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 (Rechercher un utilisateur en fonction de l'ID)
void*/
   public static void selectById(){        //加载配置文件
       essayez {
           reader=Resources.getResourceAsReader("configuration.xml");            //建立SqlSessionFactory
           sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);            //打开Session
           session=sqlSessionFactory.openSession();            //获取用户接口对象
           UserMapper userMapper=session.getMapper(UserMapper.class);            //调用查询方法
           Utilisateur user=userMapper.selectUserById(1);
           System.out.println(user.getName() "..." user.getAge() "..." user.getBirthday ().toLocaleString() "..." user.getAddress());
        } catch (IOException e) {
           e.printStackTrace();
       >
       
   }

}

 

3.6、使用别名

Premiers pas avec MyBatis (1) --- Utilisation de base

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

Premiers pas avec MyBatis (1) --- Utilisation de base


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

测试类不变

3.7、使用resultMap

在mapper.xml中使用resultMap

 

br/> PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
< ;!--Clé primaire -->

La classe de test reste inchangée

Implémenter l'ajout, la suppression, la modification et la requête de base

4.1. Ajouter et flouter dans l'interface Requête, ajouter, modifier, supprimer des méthodes,

/*** @Titre : UserMapper.java


* @Package com.pb.mybatis.dao

* @Description : TODO (décrivez ce que fait ce fichier en une phrase)

* @auteur Liu Nan

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

* @version V1.0

*/package com.pb.mybatis.dao ;importer java.util.Date;importer java.util .List;importer com.pb.mybatis.po.User;/**
* @ClassName : UserMapper

* @Description : TODO (interface d'accès aux données de classe utilisateur)

* @auteur Liu Nan

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

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

* @Description : TODO (requête basée sur l'ID utilisateur)

* @param id
* @return User*/
public Utilisateur selectUserById(int id); /**
*
* @Title : selectUserLikeName

* @Description : TODO (requête floue basée sur le nom)

* @param name
* @return List*/
public void addUser(Utilisateur de la chaîne); ; /**
*
* @Title : addUser

* @Description : TODO (Ajouter un utilisateur)

* @param user void*/
public void updateUser(Utilisateur utilisateur); /**
*
* @Title : updateUser

* @Description : TODO (modifier l'utilisateur)

* @param user void*/
public void deleteUser(int id);
}




4.2, dans le mappeur Ajouter le mappage correspondant


au .xml

br/> PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
< ;!--Clé primaire -->> ;insérer dans user(name,age,birthday,address)
values ​​(#{name},#{age},#{birthday},#{address})
mettre à jour l'ensemble d'utilisateurs name=#{name},age=#{age},birthday=#{birthday},address= #{address}
where id=#{id}
supprimer de l'utilisateur
où id=#{id}

4.3. Catégorie de test

/**

* @Titre : Test1.java

* @Package com.pb.mybatis.test

* @Description : TODO (décrivez ce que fait ce fichier en une phrase)

* @auteur Liu Nan

* @date 2015-10-26 17:55:54

* @version V1.0

*/package com.pb.mybatis.test; importer java.io.IOException; importer java.io.Reader; importer java.text.ParseException; importer java.text.SimpleDateFormat; importer java .util.Date ; importer java.util.List ; importer org.apache.ibatis.io.Resources ; importer org.apache.ibatis.session.SqlSession ; importer org.apache.ibatis.session.SqlSessionFactory ; importer org.apache. ibatis.session.SqlSessionFactoryBuilder;import com.pb.mybatis.dao.UserMapper;import com.pb.mybatis.po.User;/**
* @ClassName : Test1
*
* @Description : TODO(classe de test)
*
* @auteur Liu Nan
*
* @date 2015-10- 26 17:55:54
*
*
*/public class Test1 {    // Session工厂
   static SqlSessionFactory sqlSessionFactory = nul ;    // Session
   session SqlSession statique = null ;    // 字符流
   static Reader reader = null;    public static void main(String[] args) {

       
   }    /**
*
* @Title : selectById
*
* @Description : TODO (trouver un utilisateur en fonction de son identifiant) 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);            // 调用查询方法
           Utilisateur 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 (requête floue basée sur le nom d'utilisateur) void*/
   public static void selectLikeName() {          // 加载配置文件
       essayez {
          reader = Resources.getResourceAsReader("configuration .xml");            // 建立SqlSessionFactory
           sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);            // 打开Session
           session = sqlSessionFactory.openSession();            // 获取用户接口对象
           UserMapper userMapper = session.getMapper(UserMapper.class);            // 调用查询方法
           Liste users = userMapper.selectUserLikeName("张");            pour (Utilisateur utilisateur : utilisateurs) {
               System.out.println(user.getName() "..." user.getAge()                         "..." user.getBirthday().toLocaleString() "... "
                        user.getAddress());
           }
        } catch (IOException e) {
           e.printStackTrace();
        }

   }    /**
*
* @Title : addUser

* @Description : TODO(Ajouter un utilisateur)
void*/
public static void addUser() { //Charger le fichier de configuration
try {
reader = Resources.getResourceAsReader("configuration.xml"); // Créer SqlSessionFactory
s qlSessionFactory = new SqlSessionFactoryBuilder().build( reader ); // Ouvrir la session
session = sqlSessionFactory.Opensesion (); // Récupérer l'objet de l'interface utilisateur
UserMapper = Session.getMapper (UserMapper.class); = Nouvel utilisateur();
            user.setName("Hehe"); SimpleDateFormat sdf =new SimpleDateFormat("aaaa-MM-JJ HH:mm:ss");
        Date date=sdf.parse(d) ;
            user.setBirthday(date); Savoir où il se trouve");
userMapper.addUser(user);
System.out.println("Insert ID" user.getId()); // Valider la transaction session.commit();
                                                                                                                                                                                                                                 ; }

} /**
*
* @Title : updateUser

* @Description : TODO (modifier l'utilisateur)
void*/
public static void updateUser() { // Charger le fichier de configuration
essayer {
        reader = Resources.getResourceAsReader("configuration.xml");     // Créer SqlSessionFactory
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);            // Récupérer l'objet de l'interface utilisateur
                                                             ' s ' s ' s OUT through through ' s ' s ' ‐ out‐through ‐ through ‐ ‐ ‐ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ; //Mettre à jour userMapper.updateUser(user); commit();
} catch (IOException e) {
e.printTrace();
Stack }

} public static void detleUser() {                                                                                                                                                                                                                                                  Chargement du fichier de configuration sqlSessionFactory = new SqlSessionFactoryBuilder ().build(reader ); // Ouvrir la session
session = sqlSessionFactory.Openses (); // Récupérer l'objet de l'interface utilisateur
UserMapper UserMapper = Session.getMapper (UserMapper.class); / Supprimer > UserMapper.Deleteuseus (6);e.printStackTrace();
}

}

Premiers pas avec MyBatis (1) --- Utilisation de base

Ce qui précède est l'introduction à MyBatis (1) --- utilisation de base contenu, Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!