SpringBoot-20-Mybatis代码生成
什么是Mybatis?
mybatis是apache的一个开源项目ibatis
,2010年正式改名为mybatis
。他是一个Java的持久层框架,ibatis
提供的持久层框架包含 SqL Maps和Data Access Objects(Daos)
Mybatis特点:
-
Mybatis简单易学:可以通过官方文档,快速掌握和实现开发 -
支持动态sql编写 -
降低sql和代码的高耦合性,将业务层和数据访问层分开
但是在操作Mybatis的时候会有很多重复性操作,为了使得我们减少设置mybatis中的配置文件以及表交互的麻烦,出现了一些mybatis代码生成方案:
-
Mybatis Generator -
Mybtis Plus
我们这次介绍Mybatis Generator对Mybatis进行增强和Mybatis的数据操作。
Mybatis Generator实现
Mybatis Generator有多种实现方式xml配置实现方式,代码配置方式以及通过插件方式实现,今天我们就介绍一个最简单的Idea插件方式实现Mybatis Generator,better-mybatis-generator是一个可以根据表进行自动生成mybatis相关的代码,(包括:dao、example、domain、xml)相关插件better-mybatis-generator**官方网址,安装步骤如下:
使用better-mybatis-generator生成Mybatis代码过程
-
在Idea的DataBase中配置相对于的mysql链接步骤如下:
-
选择相对应的表进行代码生成,具体步骤如下图:
添加Mybatis的相关依赖
创建项目以后我们要在pom.xml
中添加mybatis和mysql驱动,初学者可以查看SpringBoot项目创建学校如何创建项目。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
添加Mybatis相关配置
我们需要在application.yml
配置数据库链接,以及Mybatis中xml文件存放位置。
server:
port: 8899
spring:
datasource:
url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf-8&useSSL=false
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
mapper-locations: classpath:mapper/*.xml
logging:
level:
com.learn.springboot: debug
配置Mybatis中mapper的包扫描位置
配置包扫描路径有两种方式(两者配置方法选一个):
-
在Main入口配置
@MapperScan(basePackages = {"com.learn.springboot.mapper"})
@SpringBootApplication
public class SpringBootPart18Application {
public static void main(String[] args) {
SpringApplication.run(SpringBootPart18Application.class, args);
}
}
-
添加Config配置类(个人推荐使用,为以后配置mybatis分页,多数据源等作准备)
@Configuration
@MapperScan(basePackages = {"com.learn.springboot.mapper"})
public class MybatisConfig {
}
Service层的实现
-
Service接口层的实现,代码如下:
public interface StudentService {
void saveStudent(Student student);
void deleteStudent(Long id);
void updateStudent(Student student);
Student getStudent(Long id);
List<Student> getAll();
}
-
Service层接口的实现代码如下:
@Service
public class StudentServiceImpl implements StudentService {
/**
* mapper注入
*/
@Autowired
private StudentDaoMapper studentDaoMapper;
/**
* 添加学生
* @param student
*/
@Override
public void saveStudent(Student student) {
//代码自动生成
studentDaoMapper.insert(student);
}
/**
* 根据ID删除学生
* @param id
*/
@Override
public void deleteStudent(Long id) {
//代码自动生成
studentDaoMapper.deleteByPrimaryKey(id);
}
/**
* 更新学生
* @param student
*/
@Override
public void updateStudent(Student student) {
//代码自动生成
studentDaoMapper.updateByPrimaryKeySelective(student);
}
/**
* 根据ID查询学生
* @param id
* @return
*/
@Override
public Student getStudent(Long id) {
//代码自动生成
return studentDaoMapper.selectByPrimaryKey(id);
}
/**
* 获取所有数据
* @return
*/
@Override
public List<Student> getAll() {
//代码自动生成
return studentDaoMapper.selectByExample(null);
}
}
Controller层的实现
@Slf4j
@RestController
@RequestMapping("/student")
public class StudentController {
@Autowired
private StudentService studentService;
@PostMapping("create")
public void saveStudent(@RequestBody Student student) {
studentService.saveStudent(student);
}
@GetMapping("/delete/{id}")
public void deleteStudent(@PathVariable("id") Long id) {
studentService.deleteStudent(id);
}
@PostMapping("update")
public void updateStudent(@RequestBody Student student) {
studentService.updateStudent(student);
}
@GetMapping("/select/{id}")
public Student getStudent(@PathVariable("id") Long id) {
return studentService.getStudent(id);
}
@GetMapping("/selectall")
public List<Student> getAll() {
return studentService.getAll();
}
}
测试
使用postman测试一下分别测试一下接口:
-
http://localhost:8899/student/selectall GET方法 -
http://localhost:8899/student/select/11 GET方法 -
http://localhost:8899/student/update POST方法 -
http://localhost:8899/student/delete/11 GET方法 -
http://localhost:8899/student/create POST方法
postman测试接口方法如下图:
如果您觉得本文不错,欢迎关注支持,您的关注是我坚持的动力!
原创不易,转载请注明出处,感谢支持!如果本文对您有用,欢迎转发分享!
原文始发于微信公众号(springboot葵花宝典):SpringBoot-20-Mybatis代码生成
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/184386.html