In den letzten zwei Jahren war die Kombination von springmvc + mybatis sehr beliebt. Was das Originalposter betrifft, bin ich in diesen Tagen nie wirklich mit mybatis in Berührung gekommen. Dieses Mal habe ich vor, eine Reihe von Tutorials zu mybatis zu erstellen, die auf meinem eigenen Lernfortschritt basieren, meinen Lernprozess aufzuzeichnen und ihn auch für Freunde zu erkunden, die noch nicht mit mybatis in Kontakt gekommen sind. Diese Reihe von Tutorials soll von oberflächlich (Verwendung) bis tiefgehend (Analyse der Implementierung des Mybatis-Quellcodes) reichen, daher kann es mehrere Tage dauern, bis das Update abgeschlossen ist. Okay, lasst uns diese mybatis-Lernreise beginnen. Dies ist das erste Tutorial. Schreiben wir einfach eine Demo und lernen wir mybatis kennen.
Der Einfachheit halber verwende ich Maven. Die Verwendung von Maven werde ich nicht vorstellen. Wenn Sie Maven noch nie verwendet haben, hat dies keinen Einfluss auf Ihre Lektüre.
1. Mybatis-Umgebungseinrichtung und einfache Beispiele
1. Erstellen Sie ein neues Webprojekt und fügen Sie Abhängigkeitspakete hinzu: Mybatis-Paket, Datenbanktreiberpaket (ich verwende MySQL), Protokollpaket (ich verwende log4j). Da ich ein Maven-Projekt bin, ist das Hinzufügen von Abhängigkeitspaketen einfach. Fügen Sie einfach Abhängigkeiten direkt in pom.xml hinzu.
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. Konfigurieren Sie log4j, konfigurieren Sie mybatis
Erstellen Sie eine log4j-Konfiguration in der Klassenpfad-Konfigurationsdatei log4j.properties und erstellen Sie dann eine Konfigurationsdatei „configuration.xml“ zum Konfigurieren von Mybatis (die Datei kann beliebig benannt werden). Ich werde nicht viel über die Konfiguration von log4j sagen. Hier werde ich hauptsächlich über die Konfiguration.xml sprechen:
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. Beginnen Sie mit dem Schreiben der Demo
Erstellen Sie zunächst einen Tabellenbenutzer:
in der MySQL-Datenbank test1
Beginnen Sie dann mit dem Schreiben von Java-Code.
Sehen Sie sich meine Projektstruktur an:
Schreiben Sie zuerst eine Entitätsklasse Benutzer: Die Benutzerklasse wird verwendet, um dem Benutzer zu entsprechen Tisch .
Benutzer:
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 }
Schreiben Sie eine weitere UserDao-Schnittstelle:
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 }
Schreiben Sie eine weitere userDao-mapping.xml (Sie können sie beliebig benennen):
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)!