Introducción a MyBatis y el primer programa

Que es MyBatis

MyBatis es un excelente marco de capa de persistencia

MyBatis evita casi todo el código JDBC y el proceso de configuración manual de parámetros y obtención de conjuntos de resultados

MyBatis puede usar XML simple o anotaciones para configurar y mapear información nativa, y mapear interfaces y clases de entidad Java [Plain Old Java Objects] a registros en la base de datos.

MyBatis era originalmente un proyecto de código abierto de apache, ibatis. En 2010, este proyecto se migró de apache a google code y pasó a llamarse MyBatis.

Migrado a Github en noviembre de 2013.

Documento oficial de Mybatis: http://www.mybatis.org/mybatis-3/zh/index.html

GitHub: https://github.com/mybatis/mybatis-3

¿Por qué necesitas Mybatis?

Simplificar la operación
Mybatis es ayudar a los programadores a almacenar datos en la base de datos y recuperar datos de la base de datos.

Las operaciones jdbc tradicionales tienen muchos bloques de código duplicados. Por ejemplo: encapsulación cuando se recuperan datos, establecimiento de conexión de base de datos, etc., el marco puede reducir la duplicación de código y mejorar la eficiencia del desarrollo.

MyBatis es un marco ORM semiautomático (Object Relationship Mapping) -> Object Relationship Mapping

Todo se puede hacer sin Mybatis, pero con él, ¡todas las implementaciones serán más fáciles! No existe alta o baja tecnología, solo las personas que usan esta tecnología tienen altas o bajas diferencias

Ventajas de MyBatis

Sencillo y fácil de aprender En
sí mismo, es pequeño y sencillo. No hay dependencia de terceros. La instalación más simple es siempre que se configuren dos archivos jar + varios archivos de mapeo SQL. Es fácil de aprender y fácil de usar. A través de la documentación y el código fuente, puede comprender completamente sus ideas de diseño e implementación.

El
mybatis flexible no impone ninguna influencia sobre el diseño existente de la aplicación o base de datos. sql está escrito en xml, lo que es conveniente para una gestión y optimización unificadas. A través de la declaración sql se pueden satisfacer todas las necesidades de funcionamiento de la base de datos.

Desacoplamiento de SQL y código de programa: al proporcionar una capa DAO, la lógica empresarial y la lógica de acceso a datos se separan, lo que hace que el diseño del sistema sea más claro, más fácil de mantener y más fácil de probar unitariamente. La separación de sql y código mejora la mantenibilidad.

Proporcione etiquetas xml, soporte para escribir SQL dinámico.

El primer programa MyBatis

Proceso de idea: entorno de compilación -> importar Mybatis -> escribir código -> probar

Demostración de código

1. Cree una base de datos experimental

CREATE DATABASE `mybatis`;

USE `mybatis`;

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (
`id` int(20) NOT NULL,
`name` varchar(30) DEFAULT NULL,
`pwd` varchar(30) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

insert  into `user`(`id`,`name`,`pwd`) 
values (1,'狂神','123456'),
(2,'张三','abcdef'),
(3,'李四','987654');

2. Importe el paquete jar relacionado con MyBatis

Buscar en GitHub

<dependency>
   <groupId>org.mybatis</groupId>
   <artifactId>mybatis</artifactId>
   <version>3.5.2</version>
</dependency>
<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>5.1.47</version>
</dependency>

3. Escriba el archivo de configuración principal de MyBatis

Ver el documento de ayuda

<?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.jdbc.Driver"/>
               <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=utf8"/>
               <property name="username" value="root"/>
               <property name="password" value="123456"/>
           </dataSource>
       </environment>
   </environments>
   <mappers>
       <mapper resource="com/kuang/dao/userMapper.xml"/>
   </mappers>
</configuration>

4. Escriba la clase de herramientas MyBatis

Ver el documento de ayuda

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 MybatisUtils {
    
    

   private static SqlSessionFactory sqlSessionFactory;

   static {
    
    
       try {
    
    
           String resource = "mybatis-config.xml";
           InputStream inputStream = Resources.getResourceAsStream(resource);
           sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
      } catch (IOException e) {
    
    
           e.printStackTrace();
      }
  }

   //获取SqlSession连接
   public static SqlSession getSession(){
    
    
       return sqlSessionFactory.openSession();
  }

}

5. Crea una clase de entidad

public class User {
    
    
   
   private int id;  //id
   private String name;   //姓名
   private String pwd;   //密码
   
   //构造,有参,无参
   //set/get
   //toString()
   
}

6, escriba la clase de interfaz Mapper

import com.kuang.pojo.User;
import java.util.List;

public interface UserMapper {
    
    
   List<User> selectUser();
}

7. Escriba el archivo de configuración Mapper.xml

El espacio de nombres es muy importante, ¡no puedes escribirlo mal!

<?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.kuang.dao.UserMapper">
 <select id="selectUser" resultType="com.kuang.pojo.User">
  select * from user
 </select>
</mapper>

8. Escribir clases de prueba

Prueba de paquete Junit

public class MyTest {
    
    
   @Test
   public void selectUser() {
    
    
       SqlSession session = MybatisUtils.getSession();
       //方法一:
       //List<User> users = session.selectList("com.kuang.mapper.UserMapper.selectUser");
       //方法二:
       UserMapper mapper = session.getMapper(UserMapper.class);
       List<User> users = mapper.selectUser();

       for (User user: users){
    
    
           System.out.println(user);
      }
       session.close();
  }
}

9. Ejecute la prueba

Nuestros datos han sido consultados con éxito, ¡de acuerdo!

Puede haber un problema

Problema de filtrado de recursos estáticos de Maven

<resources>
   <resource>
       <directory>src/main/java</directory>
       <includes>
           <include>**/*.properties</include>
           <include>**/*.xml</include>
       </includes>
       <filtering>false</filtering>
   </resource>
   <resource>
       <directory>src/main/resources</directory>
       <includes>
           <include>**/*.properties</include>
           <include>**/*.xml</include>
       </includes>
       <filtering>false</filtering>
   </resource>
</resources>

Supongo que te gusta

Origin blog.csdn.net/david2000999/article/details/114526798
Recomendado
Clasificación