✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人
个人主页:Leo的博客
当前专栏: Spring专栏
✨特色专栏: MySQL学习
本文内容:Spring5学习笔记之整合MyBatis
️个人小站 :个人博客,欢迎大家访问
个人知识库: 知识库,欢迎大家访问
学习参考 :
在我们之前的系列文章中,我们已经深入探讨了Spring5的两大核心组件:IOC 和 AOP,它们是Spring框架的基石。下面我们接着讨论开始讨论Spring5对于持久层框架MyBatis的整合,让我们一起开启新的的篇章吧。
在开始之前,确保您已经安装了以下软件:
Spring整合持久层的主要目的是为了简化和提高应用程序的开发和维护效率,以及提供更好的可扩展性和可测试性。以下是一些Spring整合持久层的好处:
综上所述,Spring整合持久层可以简化开发工作,提供事务管理、多种持久化技术的支持,提供数据访问抽象层,并支持依赖注入和面向切面编程。这些优势使得应用程序更易于开发、维护和扩展,提高了开发效率和代码质量。
Spring可以与多种持久层技术进行整合,包括但不限于以下几种:
总之,Spring可以与多种持久层技术进行整合,通过提供统一的API和工具类,简化了数据访问和持久化操作的开发工作。无论是关系型数据库还是NoSQL数据库,都可以方便地与Spring整合使用。
MyBatis原生的开发一共有如下几个步骤
1.实体
2.实体别名
3.数据表
4.创建DAO接口
5.实现Mapper文件
6.注册Mapper文件
7.MyBatisAPI的调用
首先,我们需要创建一个Maven项目。打开IDEA,选择自己的工作目录,点击确定即可:
创建一个名为Leo-spring-mybatis
的新Maven项目。
打开pom.xml
文件,并添加以下依赖项:
<dependencies>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-contextartifactId>
<version>5.3.9version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-jdbcartifactId>
<version>5.3.9version>
dependency>
<dependency>
<groupId>org.mybatisgroupId>
<artifactId>mybatisartifactId>
<version>3.5.7version>
dependency>
<dependency>
<groupId>org.mybatisgroupId>
<artifactId>mybatis-springartifactId>
<version>2.0.7version>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<version>8.0.26version>
dependency>
dependencies>
这些依赖项将添加所需的Spring和MyBatis库以及MySQL数据库驱动程序。
在src/main/resources
目录下创建一个名为mybatis-config.xml
的新文件,并添加以下内容:
DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<typeAlias type="org.javatop.pojo.User" alias="User"/>
typeAliases>
<environments default="default">
<environment id="default">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/teach-spring5?useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
dataSource>
environment>
environments>
<mappers>
<mapper resource="UserMapper.xml"/>
mappers>
configuration>
在这个文件中,我们配置了一个dataSource
bean,它使用MySQL数据库的连接信息。然后,我们配置了一个sqlSessionFactory
bean,它使用dataSource
bean并指定了MyBatis映射文件的位置。最后,我们配置了一个sqlSession
bean,它使用sqlSessionFactory
bean。
SQL语句
CREATE TABLE `user` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '编号',
`name` varchar(255) DEFAULT NULL COMMENT '名称',
`email` varchar(255) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1003 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
在src/main/java/com/integration
目录下创建一个名为User.java
的新Java类,并添加以下内容:
package org.javatop.integration;
/**
* @author : Leo
* @version 1.0
* @date 2023-10-19 21:37
* @description : User实体类
*/
public class User {
private Integer id;
private String name;
private String email;
public User() {
}
public User(Integer id, String name, String email) {
this.id = id;
this.name = name;
this.email = email;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", email='" + email + '\'' +
'}';
}
}
这是一个简单的User类,它包含id、name和email字段,并提供了相应的getter和setter方法以及toString方法。
在src/main/java/com/integration
目录下创建一个名为UserDao.java
的新Java接口,并添加以下内容:
package org.javatop.integration.mappper;
import org.javatop.integration.pojo.User;
import java.util.List;
/**
* @author : Leo
* @version 1.0
* @date 2023-10-19 21:43
* @description : UserMapper
*/
public interface UserMapper {
/**
* 通过用户ID查询用户
* @param id 用户ID
* @return 用户信息
*/
User getUserById(int id);
/**
* 查询所有用户
* @return 全部用户信息
*/
List<User> getAllUsers();
/**
* 添加用户
* @param user 用户
*/
void insertUser(User user);
/**
* 更新用户
* @param user 用户
*/
void updateUser(User user);
/**
* 删除用户
* @param id 用户id
*/
void deleteUser(int id);
}
这个接口定义了一些用于操作User对象的方法。
在src/main/resources/org/javatop/integration/mapper
目录下创建一个名为UserMapper.xml
的新文件,并添加以下内容:
<mapper namespace="com.integration.mappers.UserMapper">
<select id="getUserById" resultType="com.integration.User">
SELECT * FROM users WHERE id = #{id}
select>
<select id="getAllUsers" resultType="com.integration.User">
SELECT * FROM users
select>
<insert id="insertUser" parameterType="com.integration.User">
INSERT INTO users (name, email) VALUES (#{name}, #{email})
insert>
<update id="updateUser" parameterType="com.integration.User">
UPDATE users SET name = #{name}, email = #{email} WHERE id = #{id}
update>
<delete id="deleteUser" parameterType="int">
DELETE FROM users WHERE id = #{id}
delete>
mapper>
这个文件定义了一些SQL语句,用于查询、插入、更新和删除用户数据。
在test/org/javatop/
目录下创建TestMyBatis测试类编写测试方法
/**
* 用于测试: 查询所有用户
*/
@Test
public void test01() throws IOException {
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = userMapper.getAllUsers();
for (User user : userList) {
System.out.println("user = " + user);
}
}
控制台打印结果:
我们详细介绍了如何使用Spring 5整合MyBatis框架来构建一个完整的Java应用程序。我们学习了如何配置Spring和MyBatis,创建数据模型,实现数据访问对象和服务层,以及创建控制器来处理HTTP请求。最后,我们测试了应用程序的不同功能。希望这篇博客对您有所帮助!
以上便是本文的全部内容,本人才疏学浅,文章有什么错误的地方,欢迎大佬们批评指正!我是Leo,一个在互联网行业的小白,立志成为更好的自己。
如果你想了解更多关于Leo,可以关注公众号-程序员Leo,后面文章会首先同步至公众号。