Au cours des deux dernières années, springmvc mybatis a été très populaire dans cette combinaison. Quant à l'affiche originale, je n'ai jamais vraiment été en contact avec mybatis. J'apprendrai mybatis quand j'aurai du temps libre ces jours-ci. Cette fois, je prévois de réaliser une série de tutoriels sur mybatis basés sur mes propres progrès d'apprentissage, d'enregistrer mon processus d'apprentissage et de l'explorer également pour des amis qui ne sont pas encore entrés en contact avec mybatis. Cette série de didacticiels est destinée à aller du superficiel (utilisation) au approfondissement (analyse de l'implémentation du code source de mybatis), la mise à jour peut donc prendre plusieurs jours. D'accord, commençons ce parcours d'apprentissage de mybatis. Ceci est le premier tutoriel. Écrivons simplement une démo et apprenons à connaître mybatis ensemble.
Pour plus de commodité, j'utilise maven. Quant à la façon d'utiliser maven, je ne le présenterai pas. Si vous n’avez jamais utilisé Maven, cela n’affectera pas votre lecture.
1. Configuration de l'environnement Mybatis et exemples simples
1. Créez un nouveau projet Web et ajoutez des packages de dépendances : package mybatis, package de pilote de base de données (j'utilise mysql), Package de journaux (j'utilise log4j), puisque je suis un projet maven, l'ajout de packages de dépendances est simple, il suffit d'ajouter des dépendances directement dans pom.xml.
pom.xml :
<dependencies> <!-- 添加junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <!-- 添加log4j --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version> </dependency> <!-- 添加mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.6</version> </dependency> <!-- 添加mysql驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.12</version> </dependency> </dependencies>
2. Configurez log4j, configurez mybatis
Créez une configuration log4j sur le fichier de configuration du chemin de classe log4j.properties, puis créez un fichier de configuration configuration.xml pour configurer Mybatis (le fichier peut être nommé arbitrairement). Je ne dirai pas grand chose sur la configuration de log4j. Ici je parlerai principalement de configuration.xml :
configuration.xml:
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE configuration 3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 5 <configuration> 6 7 <!-- 指定properties配置文件, 我这里面配置的是数据库相关 --> 8 <properties resource="dbConfig.properties"></properties> 9 10 <!-- 指定Mybatis使用log4j --> 11 <settings> 12 <setting name="logImpl" value="LOG4J"/> 13 </settings> 14 15 <environments default="development"> 16 <environment id="development"> 17 <transactionManager type="JDBC"/> 18 <dataSource type="POOLED"> 19 <!-- 20 如果上面没有指定数据库配置的properties文件,那么此处可以这样直接配置 21 <property name="driver" value="com.mysql.jdbc.Driver"/> 22 <property name="url" value="jdbc:mysql://localhost:3306/test1"/> 23 <property name="username" value="root"/> 24 <property name="password" value="root"/> 25 --> 26 27 <!-- 上面指定了数据库配置文件, 配置文件里面也是对应的这四个属性 --> 28 <property name="driver" value="${driver}"/> 29 <property name="url" value="${url}"/> 30 <property name="username" value="${username}"/> 31 <property name="password" value="${password}"/> 32 33 </dataSource> 34 </environment> 35 </environments> 36 37 <!-- 映射文件,mybatis精髓, 后面才会细讲 --> 38 <mappers> 39 <mapper resource="com/dy/dao/userDao-mapping.xml"/> 40 </mappers> 41 42 </configuration>
. 3. Commencez à écrire la démo
Commencez par créer un utilisateur de table :
dans la base de données MySQL test1
Ensuite, commencez à écrire du code Java.
Regardez la structure de mon projet :
Écrivez d'abord une classe d'entité Utilisateur : La classe Utilisateur est utilisée pour correspondre à l'Utilisateur tableau .
Utilisateur :
1 package com.dy.entity; 2 3 public class User { 4 5 private int id; 6 private String name; 7 private String password; 8 private int age; 9 private int deleteFlag; 10 11 public int getId() { 12 return id; 13 } 14 public void setId(int id) { 15 this.id = id; 16 } 17 public String getName() { 18 return name; 19 } 20 public void setName(String name) { 21 this.name = name; 22 } 23 public String getPassword() { 24 return password; 25 } 26 public void setPassword(String password) { 27 this.password = password; 28 } 29 public int getAge() { 30 return age; 31 } 32 public void setAge(int age) { 33 this.age = age; 34 } 35 public int getDeleteFlag() { 36 return deleteFlag; 37 } 38 public void setDeleteFlag(int deleteFlag) { 39 this.deleteFlag = deleteFlag; 40 } 41 42 }
Écrire une autre interface UserDao :
UserDao :
1 package com.dy.dao; 2 3 import java.util.List; 4 5 import com.dy.entity.User; 6 7 public interface UserDao { 8 9 public void insert(User user); 10 11 public User findUserById (int userId); 12 13 public List<User> findAllUsers(); 14 15 }
Écrivez un autre userDao-mapping.xml (vous pouvez le nommer comme vous voulez) :
userDao-mapping.xml :
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper 3 PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" 4 "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd"> 5 <mapper namespace="com.dy.dao.UserDao"> 6 7 <select id="findUserById" resultType="com.dy.entity.User" > 8 select * from user where id = #{id} 9 </select> 10 11 </mapper>
userDao-mapping.xml相当于是UserDao的实现, 同时也将User实体类与数据表User成功关联起来。
4. 下面编写junit测试代码UserDaoTest:
UserDaoTest:
1 public class UserDaoTest { 2 3 @Test 4 public void findUserById() { 5 SqlSession sqlSession = getSessionFactory().openSession(); 6 UserDao userMapper = sqlSession.getMapper(UserDao.class); 7 User user = userMapper.findUserById(2); 8 Assert.assertNotNull("没找到数据", user); 9 } 10 11 //Mybatis 通过SqlSessionFactory获取SqlSession, 然后才能通过SqlSession与数据库进行交互12 private static SqlSessionFactory getSessionFactory() { 13 SqlSessionFactory sessionFactory = null; 14 String resource = "configuration.xml"; 15 try { 16 sessionFactory = new SqlSessionFactoryBuilder().build(Resources 17 .getResourceAsReader(resource)); 18 } catch (IOException e) { 19 e.printStackTrace(); 20 } 21 return sessionFactory; 22 } 23 24 }
好啦,这样一个简单的mybatis 的demo就能成功运行啦。通过这个demo, 应该你就也能初步看出mybatis的运行机制,如果不清楚,也没关系。从下一篇文章开始,才开始正式讲解mybatis。
以上就是深入浅出Mybatis系列(一)---Mybatis入门 的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!