Utilizo la base de datos mysql aquí, pero, por supuesto, también puedes usar otras bases de datos.
1. Establecimiento de base de datos
Declaración de creación de tabla:
DROP TABLE IF EXISTS `payment`;
CREATE TABLE `payment` (
`id` bigint(20) NOT NULL,
`serial` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of payment
-- ----------------------------
INSERT INTO `payment` VALUES (1, '2323');
INSERT INTO `payment` VALUES (36, '121212');
SET FOREIGN_KEY_CHECKS = 1;
2. Construya un proyecto maven
Si esto no funciona envíame el catálogo. (El proyecto maven no se puede construir, por lo que no es adecuado mirar el código fuente en este momento. Hablaré de ello después de que domine mybatis)
2.1 Estructura del proyecto
2.2 archivo pom
Dependencia, estoy usando la versión 3.5.0 aquí
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.18</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.0</version>
</dependency>
</dependencies>
2.3 Códigos relacionados
2.3.1 archivo de configuración mybatis
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/db2019?serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/PaymentMapper.xml"/>
</mappers>
</configuration>
2.3.2 archivo de entidad
package com.fxy.mybatis.entity;
public class Payment {
private Long id;
private String serial;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getSerial() {
return serial;
}
public void setSerial(String serial) {
this.serial = serial;
}
@Override
public String toString() {
return "Payment{" +
"id=" + id +
", serial='" + serial + '\'' +
'}';
}
}
2.3.3 archivo de interfaz del asignador
package com.fxy.mybatis.reposity;
import com.fxy.mybatis.entity.Payment;
public interface PaymentMapper {
Payment getPayment(int id);
}
2.3.4, archivo de configuración mapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.fxy.mybatis.reposity.PaymentMapper">
<select id="getPayment" resultType="com.fxy.mybatis.entity.Payment">
select * from payment where id = #{id}
</select>
</mapper>
2.3.5 Archivo de entrada de función principal
package com.fxy.mybatis;
import com.fxy.mybatis.entity.Payment;
import com.fxy.mybatis.reposity.PaymentMapper;
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 java.io.IOException;
import java.io.InputStream;
public class OrgionCodeRead {
public static void main(String[] args) throws IOException {
//1\读取配置文件
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
//2、初始化mybatis,创建SqlSessionFactory类实例
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//3、创建Session实例
SqlSession session = sqlSessionFactory.openSession();
Payment payment = session.selectOne("com.fxy.mybatis.reposity.PaymentMapper.getPayment",36);
PaymentMapper paymentMapper = session.getMapper(PaymentMapper.class);
Payment payment1= paymentMapper.getPayment(1);
System.out.println(payment.toString());
System.out.println(payment1.toString());
}
}
3. Resultados de la ejecución, es decir, instrucciones de depuración sencillas.
Demuestra que no hay ningún problema con el entorno que configuramos, el siguiente es el proceso de depuración y lectura del código fuente paso a paso.
Notas:
1. Tenga cierta comprensión del uso de mybatis
2. Lea el código fuente con un propósito, por ejemplo, ¿cómo se obtienen nuestros archivos de configuración y dónde se usan? ¿Cómo se relacionan la interfaz del mapeador y mapper.xml? ¿Cómo se unen los métodos en la interfaz y el sql en xml? ¿Cómo se convierten los parámetros de entrada y los parámetros de salida? ¿Dónde se reemplazan los parámetros de entrada con parámetros en la declaración SQL? No hemos escrito la implementación de la interfaz del asignador, entonces, ¿cómo se llaman los métodos en la interfaz? Hay muchos problemas. Si vas al código fuente con el problema para ver cómo lo resolvieron, tendrás mejores resultados. De lo contrario, será aburrido y sin sentido de lectura, y se ignorarán muchos detalles.
3. Al leer el código fuente, también debe tener cierta comprensión de todo el marco de mybatis, de macro a micro y resumen, de micro a macro. Leerlo unas cuantas veces más le dará una comprensión más profunda.
La siguiente sección brindará una introducción al marco completo de mybatis.