这里写自定义目录标题
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}")publicUserselect(int id);
注意:
注解是用来替换映射配置文件方式配置的,所以使用了注解,
就不需要再映射配置文件中书写对应的 statement
Mybatis 针对 CURD 操作都提供了对应的注解,已经做到见名知意。如下:
在MyBatis中,常用的注解有以下几种:
- @Mapper:用于标识一个接口为MyBatis的Mapper接口,这样MyBatis就可以自动扫描到这个接口并进行相关的配置。
- @Select:用于标注查询语句的方法,可以指定SQL语句、参数映射等信息。
- @Insert:用于标注插入语句的方法,可以指定SQL语句、参数映射等信息。
- @Update:用于标注更新语句的方法,可以指定SQL语句、参数映射等信息。
- @Delete:用于标注删除语句的方法,可以指定SQL语句、参数映射等信息。
- @Results:用于标注查询结果集映射的方法,可以指定返回实体类的类型和属性。
- @Result:用于标注查询结果集中的单个字段映射的方法,可以指定返回实体类的属性和数据库字段名。
- @Param:用于标注查询方法中的参数,可以指定参数的名称和类型。 接下来我们做一个案例来使用 Mybatis 的注解开发代码实现:
下面是一个使用注解开发的示例:
@MapperpublicinterfaceUserMapper{@Select("SELECT * FROM user WHERE id = #{id}")UsergetUserById(@Param("id")int id);@Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})")voidaddUser(User user);@Update("UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}")voidupdateUser(User user);@Delete("DELETE FROM user WHERE id = #{id}")voiddeleteUser(@Param("id")int id);}
在上面的示例中,我们定义了一个UserMapper接口,并使用注解标注了查询、插入、更新和删除方法。通过这种方式,我们可以省去编写XML配置文件的步骤,使代码更加简洁和易于理解。
三,利MyBatisX注解实现CRUD
MyBatisX支持多种注解,如@TableName、@TableField、@TableId等。以下是一个简单的例子:
实体类:
packagecom.example.demo.entity;importcom.baomidou.mybatisplus.annotation.TableName;importjava.io.Serializable;@TableName("user")// 指定表名publicclassUserimplementsSerializable{privatestaticfinallong serialVersionUID =1L;@TableId("id")// 指定主键字段名privateLong id;@TableField("name")// 指定非主键字段名privateString name;// 省略getter和setter方法}
Mapper接口:
packagecom.example.demo.mapper;importcom.baomidou.mybatisplus.core.mapper.BaseMapper;importcom.example.demo.entity.User;importorg.apache.ibatis.annotations.Mapper;importorg.springframework.stereotype.Repository;@Mapper// 标识为MyBatis的Mapper接口@Repository// 标识为Spring的组件类publicinterfaceUserMapperextendsBaseMapper<User>{}
在这个例子中,我们使用了@TableName、@TableId和@TableField注解来指定实体类与数据库表之间的映射关系。这样,我们就可以直接使用MyBatisX提供的方法进行CRUD操作了。
注意:在官方文档中 入门 中有这样的一段话:
所以,注解完成简单功能,配置文件完成复杂功能。
下面介绍核心配置文件
四, MyBatis核心配置文件
核心配置文件中现有的配置之前已经给大家进行了解释,而核心配置文件中还可以配置很多内容。我们可以通过查询官网看可以配置的内容
接下来我们先对里面的一些配置进行讲解。
- 多环境配置 在核心配置文件的 environments 标签中其实是可以配置多个 environment ,使用 id 给每段环境起名,在environments 中使用 default=‘环境id’ 来指定使用哪儿段配置。我们一般就配置一个 environment 即可。
<environmentsdefault="development"><environmentid="development"><transactionManagertype="JDBC"/><dataSourcetype="POOLED"><!--数据库连接信息--><propertyname="driver"value="com.mysql.jdbc.Driver"/><propertyname="url"value="jdbc:mysql:///mybatis?useSSL=false"/><propertyname="username"value="root"/><propertyname="password"value="1234"/></dataSource></environment><environmentid="test"><transactionManagertype="JDBC"/><dataSourcetype="POOLED"><!--数据库连接信息--><propertyname="driver"value="com.mysql.jdbc.Driver"/><propertyname="url"value="jdbc:mysql:///mydatabase?useSSL=false"/><propertyname="username"value="root"/><propertyname="password"value="1234"/></dataSource></environment></environments>
- 类型别名 在映射配置文件中的 resultType 属性需要配置数据封装的类型(类的全限定名)。而每次这样写是特别麻烦的,Mybatis提供了 类型别名 (typeAliases) 可以简化这部分的书写。 首先需要现在核心配置文件中配置类型别名,也就意味着给pojo包下所有的类起了别名(别名就是类名),不区分大小写。 内容如下:
<typeAliases><!--name属性的值是实体类所在包--><packagename="com.itheima.pojo"/></typeAliases>
通过上述的配置,我们就可以简化映射配置文件中 resultType 属性值的编写
```xml
<mappernamespace="com.itheima.mapper.UserMapper"><selectid="selectAll"resultType="user">
select * from tb_user;
</select></mapper>
版权归原作者 老牛源码 所有, 如有侵权,请联系我们删除。