02 快速入门

快速开始

在学习MyBatis-Plus 前需要掌握Maven,Spring,MyBatis 基础知识;下面我们将通过一个简单的CRUD操作来体验MyBatis-Plus的强大之处;

本教程是基于MyBatis 3.0.3 最新版本。
本教程示例代码 https://gitee.com/hxxiaodao/MyBatisPlusExample

在数据创建表(User)

DROP TABLE IF EXISTS user;

CREATE TABLE user(
    id BIGINT(20) NOT NULL COMMENT '主键ID',
    name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
    age INT(11) NULL DEFAULT NULL COMMENT '年龄',
    email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
    PRIMARY KEY (id)
);
INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');

此处是以MySQL 为例

创建工程,添加依赖

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus</artifactId>
    <version>3.0.3</version>
</dependency>

引入 MyBatis-Plus 之后请不要再次引入 MyBatis 以及 MyBatis-Spring,以避免因版本差异导致的问题。

Spring 集成MyBatis-Plus

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
	<property name="url" value="jdbc:mysql://127.0.0.1:3306/test" />
	<property name="username" value="root" />
	<property name="password" value="root" />
</bean>

<!--
    Spring 整合的时候只需要将以前 SqlSessionFactoryBean(org.mybatis.spring.SqlSessionFactoryBean)
    替换为MyBatisSqlSessionFactoryBean(com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean)
    3.0 以前使用的是(com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean)
-->
<bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
	<property name="dataSource" ref="dataSource" />
	<!--原生 MyBatis 所支持的配置 -->
	<property name="configuration">
		<bean class="com.baomidou.mybatisplus.core.MybatisConfiguration">
			<!--是否开启自动驼峰命名规则(camel case)映射 默认值:true-->
            <!--<property name="mapUnderscoreToCamelCase" value="true" />-->
            <!--当设置为 true 的时候,懒加载的对象可能被任何懒属性全部加载,否则,每个属性都按需加载。默认为true需要和 lazyLoadingEnabled 一起使用-->
            <!--<property name="aggressiveLazyLoading" value="true"/>-->
            <!--<property name="lazyLoadingEnabled" value="true"/>-->
            <!--
 		默认值:partial
            MyBatis 自动映射策略,通过该配置可指定 MyBatis 是否并且如何来自动映射数据表字段与对象的属性,总共有 3 种可选值:
            AutoMappingBehavior.NONE:不启用自动映射
            AutoMappingBehavior.PARTIAL:只对非嵌套的 resultMap 进行自动映射
            AutoMappingBehavior.FULL:对所有的 resultMap 都进行自动映射
            -->
            <!--<property name="autoMappingBehavior" value="PARTIAL"/>-->
            <!--
            MyBatis 自动映射时未知列或未知属性处理策略,通过该配置可指定 MyBatis 在自动映射过程中遇到未知列或者未知属性时如何处理,总共有 3 种可选值:
            AutoMappingUnknownColumnBehavior.NONE:不做任何处理 (默认值)
            AutoMappingUnknownColumnBehavior.WARNING:以日志的形式打印相关警告信息
            AutoMappingUnknownColumnBehavior.FAILING:当作映射失败处理,并抛出异常和详细信息
            -->
            <!--<property name="autoMappingUnknownColumnBehavior" value="NONE"/>-->

            <!--全局地开启或关闭配置文件中的所有映射器已经配置的任何缓存,默认为 true。-->
            <!--<property name="cacheEnabled" value="true"/>-->

            <!--
		                默认值:false
		                指定当结果集中值为 null 的时候是否调用映射对象的 Setter(Map 对象时为 put)方法,通常运用于有 Map.keySet() 依赖或 null 值初始化的情况。
		                通俗的讲,即 MyBatis 在使用 resultMap 来映射查询结果中的列,如果查询结果中包含空值的列,则 MyBatis 在映射的时候,不会映射这个字段,这就导致在调用到该字段的时候由于没有映射,取不到而报空指针异常。
            -->
            <!--<property name="callSettersOnNulls" value="false"/>-->
		</bean>
	</property>
</bean>

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
	<property name="basePackage" value="com.javaee.dao" />
</bean>

编码

1. 编写实体类User.java
@Data
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}
2. 编写Mapper类 UserMapper.java
public interface UserMapper extends BaseMapper<User>{
    //使用MyBatis-Plus 只需要将Mapper集成BaseMapper 泛型填写操作具体的表对应的实体类类名
}
3. 调用MyBatisPlus 提供的方法
insert(Object entity);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值