一、知识引入
MyBatic是数据持久层ORM框架,实现动态SQL。
二、准备工作
下载 MySQL 5.7 版本和Navicate 15版本,navicate是对mysql的可视化
三、 MyBatis 使用步骤
1、在pomxml中添加依赖:
<!-- MyBatisPlus依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<!-- mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!-- 数据连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.20</version>
</dependency>
2、在application.properties中添加配置,mydb是数据库名称,username为数据库账户,password为账户密码,只需要修改这三处。
navicat连接MySQL,创建新数据库mydb,创建新表user,对应后续的User类:
3、在项目下创建mapper包,后续的数据库操作都在mapper包内。
4、添加Mapper全局扫描注解,在mapper包下创建MpdemoApplication.java文件,其中红色框修改为本项目的mapper的路径(选择mapper右键copy reference可复制)。
5、添加实体,在entity包下创建User类,右键选择generate自动生成get和set方法。
6、在mapper包下创建UserMapper的interface接口文件,mybatis在此处完成数据层操作,代码展示如下,接口文件一定要加上@Mapper注解:
package com.example.newtry.mapper;
import com.example.newtry.entity.User;
import org.apache.ibatis.annotations.*;
import java.util.List;
@Mapper
public interface UserMapper {
@Insert("insert into user values(#{name},#{phone})")
int add(User user);
@Update("update user set name=#{name} where phone=#{phone}")
int update(User user);
@Delete("delete from user where phone=#{phone}")
int delete(String phone);
@Select("select * from user where phone=#{phone}")
User findByPhone(String phone);
@Select("select * from user")
List<User>getAll();
}
mybatis的不同注解:
7、在Controller层中添加UserController.java控制器文件,添加实现方法,测试查询操作。
@Autowired :自动注入,Spring会自动实例化UserMapper,并注入此属性中(依赖注入)
import java.util.List;
@RestController
public class UserController {
@Autowired
private UserMapper userMapper;
@GetMapping("/user")
public List query(){
List<User> list = userMapper.getAll();
System.out.println(list);
return list;
//返回json给前端进行渲染
}
}
8、查询测试展示
四、MyBatisPlus 使用步骤
将interface文件修改为下方代码,可自动继承baseMapper会crud方法,只需确定为User类即可。
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
控制器修改方法,selectlist为查询方法,null代表查询条件为空。
import java.util.List;
@RestController
public class UserController {
@Autowired
private UserMapper userMapper;
@GetMapping("/user")
public List query(){
List<User> list = userMapper.selectList(null);
System.out.println(list);
return list;
//返回json给前端进行渲染
}
}
MyBatisPlus学习可查看官网的文档:https://baomidou.com/