MyBatis开发者必备!IDEA快速掌握MyBatisX插件安装及注解开发技巧!


MyBatisX是一个基于MyBatis的增强插件,它提供了一些实用的功能,如自动分页、通用Mapper等。本文将介绍如何安装MyBatisX插件以及如何使用注解进行开发。

一、安装MyBatisX插件

  • MybatisX 是一款基于 IDEA 的快速开发插件,为效率而生。

  • 主要功能

     XML映射配置文件 和 接口方法 间相互跳转
     根据接口方法生成 statement
    
  • 安装方式

    点击 file ,选择 settings ,就能看到如下图所示界面
    在这里插入图片描述
    注意:安装完毕后需要重启IDEA

  • 插件效果
    在这里插入图片描述
    红色头绳的表示映射配置文件,蓝色头绳的表示mapper接口。在mapper接口点击红色头绳的小鸟图标会自动跳转
    到对应的映射配置文件,在映射配置文件中点击蓝色头绳的小鸟图标会自动跳转到对应的mapper接口。也可以在
    mapper接口中定义方法,自动生成映射配置文件中的 statement ,如图所示
    在这里插入图片描述

二,Mybatis注解实现CRUD

MyBatis注解开发是一种基于Java注解的方式来简化MyBatis的配置和操作数据库的方法。相比于传统的XML配置文件方式,注解开发更加简洁、易读、易于维护。
使用注解开发会比配置文件开发更加方便。如下就是使用注解进行开发

@Select(value = "select * from tb_user where id = #{id}")
public User select(int id);

注意:

注解是用来替换映射配置文件方式配置的,所以使用了注解,
就不需要再映射配置文件中书写对应的 statement

Mybatis 针对 CURD 操作都提供了对应的注解,已经做到见名知意。如下:

在MyBatis中,常用的注解有以下几种:

  1. @Mapper:用于标识一个接口为MyBatis的Mapper接口,这样MyBatis就可以自动扫描到这个接口并进行相关的配置。

  2. @Select:用于标注查询语句的方法,可以指定SQL语句、参数映射等信息。

  3. @Insert:用于标注插入语句的方法,可以指定SQL语句、参数映射等信息。

  4. @Update:用于标注更新语句的方法,可以指定SQL语句、参数映射等信息。

  5. @Delete:用于标注删除语句的方法,可以指定SQL语句、参数映射等信息。

  6. @Results:用于标注查询结果集映射的方法,可以指定返回实体类的类型和属性。

  7. @Result:用于标注查询结果集中的单个字段映射的方法,可以指定返回实体类的属性和数据库字段名。

  8. @Param:用于标注查询方法中的参数,可以指定参数的名称和类型。
    接下来我们做一个案例来使用 Mybatis 的注解开发
    代码实现:

下面是一个使用注解开发的示例:

@Mapper
public interface UserMapper {
    @Select("SELECT * FROM user WHERE id = #{id}")
    User getUserById(@Param("id") int id);

    @Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})")
    void addUser(User user);

    @Update("UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}")
    void updateUser(User user);

    @Delete("DELETE FROM user WHERE id = #{id}")
    void deleteUser(@Param("id") int id);
}

在上面的示例中,我们定义了一个UserMapper接口,并使用注解标注了查询、插入、更新和删除方法。通过这种方式,我们可以省去编写XML配置文件的步骤,使代码更加简洁和易于理解。

三,利MyBatisX注解实现CRUD

MyBatisX支持多种注解,如@TableName、@TableField、@TableId等。以下是一个简单的例子:

实体类:

package com.example.demo.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;

@TableName("user") // 指定表名
public class User implements Serializable {
    private static final long serialVersionUID = 1L;

    @TableId("id") // 指定主键字段名
    private Long id;

    @TableField("name") // 指定非主键字段名
    private String name;

    // 省略getter和setter方法
}

Mapper接口:

package com.example.demo.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

@Mapper // 标识为MyBatis的Mapper接口
@Repository // 标识为Spring的组件类
public interface UserMapper extends BaseMapper<User> {
}

在这个例子中,我们使用了@TableName、@TableId和@TableField注解来指定实体类与数据库表之间的映射关系。这样,我们就可以直接使用MyBatisX提供的方法进行CRUD操作了。
注意:在官方文档中 入门 中有这样的一段话:

在这里插入图片描述
所以,注解完成简单功能,配置文件完成复杂功能。下面介绍核心配置文件

四, MyBatis核心配置文件

核心配置文件中现有的配置之前已经给大家进行了解释,而核心配置文件中还可以配置很多内容。我们可以通过查询官网看可以配置的内容
在这里插入图片描述
接下来我们先对里面的一些配置进行讲解。

  • 多环境配置
    在核心配置文件的 environments 标签中其实是可以配置多个 environment ,使用 id 给每段环境起名,在environments 中使用 default=‘环境id’ 来指定使用哪儿段配置。我们一般就配置一个 environment 即可。
<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:///mybatis?useSSL=false"/>
			<property name="username" value="root"/>
			<property name="password" value="1234"/>
		</dataSource>
	</environment>
	<environment id="test">
		<transactionManager type="JDBC"/>
		<dataSource type="POOLED">
		<!--数据库连接信息-->
			<property name="driver" value="com.mysql.jdbc.Driver"/>
			<property name="url" value="jdbc:mysql:///mydatabase?useSSL=false"/>
			<property name="username" value="root"/>
			<property name="password" value="1234"/>
		</dataSource>
	</environment>
</environments>
  • 类型别名
    在映射配置文件中的 resultType 属性需要配置数据封装的类型(类的全限定名)。而每次这样写是特别麻烦的,Mybatis提供了 类型别名 (typeAliases) 可以简化这部分的书写。
    首先需要现在核心配置文件中配置类型别名,也就意味着给pojo包下所有的类起了别名(别名就是类名),不区分大小写。
    内容如下:
<typeAliases>
	<!--name属性的值是实体类所在包-->
	<package name="com.itheima.pojo"/>
</typeAliases>
通过上述的配置,我们就可以简化映射配置文件中 resultType 属性值的编写

```xml
<mapper namespace="com.itheima.mapper.UserMapper">
		<select id="selectAll" resultType="user">
		select * from tb_user;
	</select>
</mapper>

  • 25
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老牛源码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值