В этой статье представлен процесс интеграции SpringBoot с Mybatis (конфигурация XML).
1. Что такое MyBatis?
MyBatis — это превосходная структура уровня сохраняемости, которая поддерживает пользовательский SQL, хранимые процедуры и расширенное сопоставление. MyBatis избегает почти всего кода JDBC и ручной настройки параметров и выборки наборов результатов. MyBatis может использовать простой XML или аннотации для настройки и сопоставления собственных типов, интерфейсов и Java POJO (обычных старых объектов Java) с записями в базе данных.
Во-вторых, метод интеграции
Существует также два способа интеграции Mybatis в SpringBoot, а именно конфигурация XML и аннотации.Основные преимущества заключаются в следующем:
- Метод аннотации: Код более лаконичен и удобен.
- Метод конфигурации XML: изолируйте sql и бизнес-код, четко выражайте sql, особенно для длинных sql.
XML-файл сопоставления также прост и содержит всего несколько элементов верхнего уровня:
- cache — конфигурация кеша для данного пространства имен.
- cache-ref — ссылка на другие конфигурации кэша пространства имен.
- resultMap — самый сложный и мощный элемент, описывающий, как загружать объекты из набора результатов базы данных.
- sql — блок многократно используемых операторов, на который могут ссылаться другие операторы.
- вставка — Сопоставляет операторы вставки.
- update — операторы обновления карты.
- delete — сопоставить операторы удаления.
- select — оператор запроса карты.
В этой статье представлен метод конфигурации XML, а в последующих статьях будет представлен метод аннотации.
В-третьих, актуально
Новый проект Spring Boot Spring-Boot-MyBatis-XML, выполните следующие действия.
- Вставьте банку в pom.xml
В основе интеграции MyBatis лежит использование MyBatis-Spring-Boot-Starter, который обеспечивает:
- Существующий источник данных определяется автоматически.
- Будет создан и зарегистрирован экземпляр SqlSessionFactory, который использует SqlSessionFactoryBean для передачи этого источника данных в качестве входных данных.
- Экземпляр SqlSessionTemplate, полученный из SqlSessionFactory, будет создан и зарегистрирован.
- Автоматически сканируйте ваши преобразователи, связывайте их с SqlSessionTemplate и регистрируйте их в контексте Spring, чтобы их можно было внедрить в ваши bean-компоненты.
Важным содержанием pom.xml является следующее:
<!-- mybatis-starter -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<!-- MySQL 连接驱动依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.39</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
- Добавьте конфигурацию в application.yml
Добавьте конфигурацию источника данных и mybatis в application.yml следующим образом:
spring:
#数据源
datasource:
url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
#mybatis配置
mybatis:
typeAliasesPackage: com.example.springboot.mybatisxml.entity
mapperLocations: classpath:mapper/*.xml
config-location: classpath:mybatis-config.xml
- Добавить файл сопоставления пользователя
Содержимое UserMapper.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.example.springboot.mybatisxml.dao.mapper.UserMapper" >
<resultMap id ="UserMap" type="com.example.springboot.mybatisxml.entity.User">
<result column="id" property="id"/>
<result column="name" property="name"/>
<result column="sex" property="sex"/>
<result column="password" property="password"/>
<result column="des" property="des"/>
</resultMap>
<select id = "queryAllUsers" resultType= "com.example.springboot.mybatisxml.entity.User">
select * from user
</select>
</mapper>
- Добавить интерфейс дао
Имя интерфейса совпадает с именем файла сопоставления, а имя метода в интерфейсе совпадает с идентификатором тега в вызываемом файле сопоставления.
Код UserMapper.java выглядит следующим образом:
public interface UserMapper {
List<User> queryAllUsers();
}
- Добавить уровень контроля доступа
Код UserController выглядит следующим образом:
/**
* UserController
*
* @Author: java_suisui
*
*/
@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
/**
* 查询 所有用户
*
*/
@GetMapping("/queryAllUsers")
public List<User> queryAllUsers(){
return userService.queryAllUsers();
}
}
4. Тест
Откройте браузер локально и посетите http://localhost:8080/user/queryAllUsers. После успеха возвращаются следующие результаты:
[{"id":1,"name":"张三","password":"123456","sex":0,"des":"无备注"},
{"id":2,"name":"李四","password":"123456","sex":0,"des":"无备注"}]
На данный момент функции SpringBoot по интеграции Mybatis (метод конфигурации XML) полностью реализованы.Если у вас есть какие-либо вопросы, пожалуйста, оставьте сообщение для связи!
Полный исходный адрес:GitHub.com/Smash2019/…
Рекомендуемое чтение
1. Печать логов на Java, эти 4 пункта очень важны!
2. SpringBoot интегрирует JWT для реализации аутентификации авторизации.
3. Позвольте вам понять аутентификацию JWT за одну минуту!
4. Как элегантно прочитать файл конфигурации yml в SpringBoot?
5. Как гибко реализовать функцию шифрования и дешифрования данных интерфейса в SpringBoot?
Получите бесплатные материалы по Java в течение ограниченного времени, охватывающие Java, Redis, MongoDB, MySQL, Zookeeper, Spring Cloud, Dubbo/Kafka, Hadoop, Hbase, Flink и другие распределенные технологии с высокой степенью параллелизма, большие данные, машинное обучение и другие технологии. Подпишитесь на публичный аккаунт ниже, чтобы получить его бесплатно: