目录
一.什么是MyBatis?
MyBatis是一个开源的持久层框架,它是用Java编写的,并且可以与多种关系型数据库进行交互。MyBatis的设计目标是避免或尽量减少程序中的冗余代码,同时提供灵活性和高效性。它通过XML或注解的方式,将Java方法与SQL语句进行映射,简化了数据库操作的过程。
MyBatis提供了一种将SQL语句和Java代码解耦的方式,使得开发人员可以更专注于SQL逻辑和业务逻辑的实现,而不必过多地关注数据库连接、资源管理等底层细节。同时,MyBatis还提供了丰富的映射功能,能够将数据库查询结果自动映射为Java对象,简化了数据的处理过程。
总的来说,MyBatis作为一种持久层框架,可以帮助开发人员更方便地进行数据库操作,提高了代码的可维护性和可读性,是Java企业应用开发中常用的框架之一。
1.MyBatis的作用
数据库操作封装:MyBatis提供了简单、直观的方式来执行数据库操作,开发人员可以通过配置文件或注解来定义SQL语句,将Java对象与数据库表之间进行映射。这样可以避免编写大量的JDBC代码和手动设置参数,减少了开发工作量。
灵活的SQL映射:MyBatis支持灵活的SQL映射,开发者可以在SQL语句中使用条件判断、循环等逻辑,以及嵌套查询等高级特性。这样可以满足复杂的业务需求,同时也提高了SQL的可读性和维护性。
对象关系映射(ORM):MyBatis可以将数据库查询结果自动映射为Java对象,大大简化了数据的处理过程。通过配置映射规则,可以实现一对一、一对多、多对一等关系的映射,使得数据操作更加便捷。
缓存机制:MyBatis具有缓存机制,可以在适当的情况下缓存查询结果,提高系统的性能和响应速度。开发者可以根据需要配置缓存策略,包括本地缓存和分布式缓存等。
总的来说,MyBatis作为一种持久层框架,可以帮助开发人员更方便地进行数据库操作,提高代码的可读性和可维护性,同时还提供了灵活的SQL映射和缓存机制,使得系统的性能得到提升,简化了代码以操作的繁琐.
2.MyBatis的操作步骤
1.在idea中创建项目导入相关开发模块
在pox.xml文件中导入mybatis的依赖
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
2.写MyBits核心配置文件,替换连接信息,简化硬编码问题。
新建一个新建一个mybatis-config.xml文件
<?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="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>
3.写sql映射文件
创建一个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="org.mybatis.example.BlogMapper">
<select id="selectBlog" resultType="Blog">
select * from Blog where id = #{id}
</select>
</mapper>
二.什么是MyBatis-plus?
MyBatis-Plus是一个为MyBatis提供增强功能的开发包,它在MyBatis的基础上扩展了许多实用的功能,简化了开发流程,提高了开发效率。MyBatis-Plus可以与MyBatis完美集成,并且提供了许多便捷的操作方式和工具,让开发者更加轻松地进行数据库操作。
一些MyBatis-Plus的特性包括:
简化CRUD操作:MyBatis-Plus提供了丰富的API,可以简化常见的数据库操作,例如插入、更新、删除和查询等,开发者不必再手动编写大量的SQL和Mapper接口。
自动生成SQL:MyBatis-Plus内置了代码生成器,可以根据数据库表自动生成对应的实体类、Mapper接口以及XML映射文件,大大减少了重复劳动和出错的可能性。
条件构造器:MyBatis-Plus提供了方便的条件构造器,开发者可以通过链式调用的方式来构建复杂的查询条件,避免了手动拼接SQL语句的麻烦。
分页插件:MyBatis-Plus还提供了分页插件,可以方便地实现分页查询功能。总的来说,MyBatis-Plus是一个功能强大、易于使用的增强工具,它简化了MyBatis的开发流程,提高了开发效率,是许多Java项目中常用的工具
1.MyBatis-plus的作用
MyBatis-Plus(简称MP)是一个基于MyBatis的增强工具,旨在简化开发过程、提高开发效率。它提供了许多实用的功能和工具,可以帮助开发者更轻松地进行数据库操作。
以下是MyBatis-Plus的一些主要作用:
简化CRUD操作:MyBatis-Plus提供了一套简洁而强大的API,通过继承通用Mapper或使用Wrapper等方式,可以极大地简化常见的CRUD操作,如插入(Insert)、更新(Update)、删除(Delete)和查询(Select),减少了编写重复SQL语句的工作量。
自动生成SQL:MyBatis-Plus内置了代码生成器,可以根据数据库表结构自动生成对应的实体类、Mapper接口以及XML映射文件,减少了手动编写这些文件的时间和精力,提高了开发效率。
条件构造器:MyBatis-Plus提供了方便的条件构造器,可以通过链式调用的方式来构建复杂的查询条件,避免了手动拼接SQL语句的麻烦,使得查询操作更加灵活和可读性更高。
分页插件:MyBatis-Plus提供了分页插件,可以方便地实现分页查询功能,开发者只需简单配置即可实现数据库的分页查询,避免了手动处理分页逻辑的麻烦。
乐观锁插件:MyBatis-Plus提供了乐观锁插件,可以实现基于版本号或时间戳的乐观锁机制,用于解决并发更新时的数据一致性问题。总的来说,MyBatis-Plus通过简化开发流程、提供便捷的操作方式和工具,帮助开发者更高效地进行数据库操作,减少了样板代码的编写,提高了开发效率。它是MyBatis生态中的一个重要组成部分,被广泛应用于Java
2.MyBatis-plus的操作步骤
idea中创建项目文件
(1)导入mybatis-plus相关依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
(2)在全局配置文件中配置数据库相关信息
spring:
datasource:
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456
(3)创建实体类
@Data
@TableName("user")
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
}
(4)创建mapper接口
public interface UserMapper extends BaseMapper<User> {
}
(5)编写业务代码
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}
(6)在测试类中运行测试
三.mybatis-plus与mybatis的区别
MyBatis和MyBatis-Plus是两个相关但不同的项目,它们之间有一些区别。
功能扩展:MyBatis是一个持久层框架,提供了基本的SQL映射和数据库操作功能。而MyBatis-Plus是在MyBatis的基础上进行扩展的增强工具,提供了更多实用的功能和工具,如自动生成SQL、条件构造器、分页插件等,简化了开发流程。
编码规范:MyBatis对于SQL的编写比较自由,开发者需要手动编写和维护SQL语句和映射关系。而MyBatis-Plus倡导使用约定大于配置的方式,提供了通用的CRUD接口和默认的SQL映射规则,遵循了一定的编码规范,减少了手动编写SQL的工作量。
代码生成器:MyBatis-Plus内置了代码生成器,可以根据数据库表结构自动生成实体类、Mapper接口和XML映射文件,减少了手动编写这些文件的时间和精力。而MyBatis并没有提供官方的代码生成器,需要借助第三方工具或手动编写这些文件。
社区活跃度:MyBatis是一个成熟且广泛应用的框架,拥有庞大的用户群体和活跃的社区,有丰富的文档和资源可供参考。MyBatis-Plus相对较新,虽然也有一定的用户群体和社区支持,但相对来说还不如MyBatis成熟和广泛。
需要注意的是,MyBatis和MyBatis-Plus并不冲突,它们可以共同使用。开发者可以在项目中同时引入MyBatis和MyBatis-Plus,利用MyBatis的灵活性编写复杂的SQL语句,同时使用MyBatis-Plus提供的便捷功能简化开发流程。