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 .
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
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>
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、使用别名
更改mapper.xml中的User类的路径 为别名
br/> PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd /mybatis-3-mapper.dtd">
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">
values (#{name},#{age},#{birthday},#{address})
where id=#{id}
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
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();
}
}
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)!