0
点赞
收藏
分享

微信扫一扫

mybatis使用二:springboot 整合 mybatis,创建开发环境


文章目录

  • ​​前言​​
  • ​​一、pom依赖​​
  • ​​1. 新增maven依赖​​
  • ​​2. 全部maven依赖​​
  • ​​二、yml配置​​
  • ​​1. 配置数据源​​
  • ​​三、修改启动主类​​
  • ​​四、java代码​​
  • ​​1. controller 控制层​​
  • ​​2. service业务层​​
  • ​​a. StudentService 接口​​
  • ​​b. StudentServiceImpl 实现类​​
  • ​​3. dao数据层​​
  • ​​五、postman请求测试​​
  • ​​1. 请求/stu 方式一​​
  • ​​2. 请求/stu 方式二​​

前言

  • 根据上一个博客的后继书写,上一个博客地址springboot使用一:springboot整合mybatis,使用逆向工程生成java代码。
  • 上一个博客仅仅是使用mybatis generator生成SQL和java模型代码,但是却没有开发环境。这里就写一下流程,对maven的依赖更加熟练一下。
  • 代码也是根据基于上一个博客的代码进行开发。都是很简单的demo。可以直接复习看。
  • 代码在​​https://github.com/fengfanli/springboot-mybatis​​ 这儿,再分支​​dev01​​中。

一、pom依赖

1. 新增maven依赖

<!--数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>

<!--数据源-->
<!--http://localhost:8083/druid/index.html 通过这个网址 对 SQL进行监控-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>

2. 全部maven依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.feng</groupId>
<artifactId>springboot-mybatis</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-mybatis</name>
<description>springboot-mybatis</description>

<properties>
<java.version>1.8</java.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>


<!-- mybatis逆向工程jar包:mybatis-generator-core -->
<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-maven-plugin -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
</dependency>
<!--逆向工程,自动生成@Table、@Id等注解,会使用到下面两个注解-->
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0</version>
</dependency>
<!--通用Mapper启动器-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.0.3</version>
</dependency>

<!--第一次新增加:mysql驱动和Druid数据源-->
<!--数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>

<!--数据源-->
<!--http://localhost:8083/druid/index.html 通过这个网址 对 SQL进行监控-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>

</dependencies>

<build>
<finalName>springboot-mybatis</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<overwrite>true</overwrite>
<configurationFile>src/main/resources/mybatis-generator/generatorConfig.xml</configurationFile>
<!--避免操作不当,覆盖原来的类,设置为不覆盖:false-->
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!--<dependency>
<groupId>com.thunisoft.arterybase</groupId>
<artifactId>ArteryBase</artifactId>
<version>3.6.2.2</version>
</dependency>-->
<!--自动生成@Table、@Id等注解-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>4.0.0</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>

</project>

二、yml配置

1. 配置数据源

server:
port: 8086
spring:
application:
name: company-frame
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://192.168.131.168:3306/CLASS?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: root
password: Dataadt123!

mybatis:
# 配置映射类所在的包名
type-aliases-package: com.feng.bean
# 配置 mapper xml 文件所在的路径, 如果不配置 会报错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
mapper-locations: classpath:mapper/*.xml

三、修改启动主类

package com.feng;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@MapperScan(value = {"com.feng.dao"})
//@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
@SpringBootApplication
public class SpringbootMybatisApplication {

public static void main(String[] args) {
SpringApplication.run(SpringbootMybatisApplication.class, args);
}

}

四、java代码

1. controller 控制层

package com.feng.controller;

import com.feng.bean.Student;
import com.feng.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class StudentController {

@Autowired
private StudentService studentService;

@RequestMapping("/stu/{userId}")
public Student getStuByIdPath(@PathVariable Integer userId){
Student student = studentService.getStuById(userId);
return student;
}

@GetMapping(value = "/stu")
@ResponseBody
public DataResult<Student> getCompanyByIdGET(@RequestParam(value = "userId") Integer id) {
Student student = studentService.getStuById(id);
DataResult result = DataResult.success(student);
return result;
}
}

2. service业务层

a. StudentService 接口

package com.feng.service;

import com.feng.bean.Student;
import com.feng.vo.req.StudentPageReqVo;
import com.feng.vo.resp.PageRespVo;

import java.util.List;


public interface StudentService {

Student getStuById(Integer userId);
}

b. StudentServiceImpl 实现类

impl包下的​​StudentServiceImpl.java​​ 实现类

package com.feng.service.impl;

import com.feng.bean.Student;
import com.feng.dao.StudentMapper;
import com.feng.service.StudentService;
import com.feng.utils.PageUtil;
import com.feng.vo.req.StudentPageReqVo;
import com.feng.vo.resp.PageRespVo;
import com.github.pagehelper.PageHelper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class StudentServiceImpl implements StudentService {

@Resource
private StudentMapper studentMapper;

@Override
public Student getStuById(Integer userId) {
return studentMapper.selectByPrimaryKey(userId);
}
}

3. dao数据层

这里不在复制了,dao层为接口,mapper为SQL语句,都为mybatis逆向生成的。GitHub中可查看。

五、postman请求测试

1. 请求/stu 方式一

​http://localhost:8086/stu/1​

mybatis使用二:springboot 整合 mybatis,创建开发环境_spring

2. 请求/stu 方式二

​http://localhost:8086/stu?userId=1​

mybatis使用二:springboot 整合 mybatis,创建开发环境_spring boot_02

到现在为止,springboot整合mybatis generator、mybatis,开发环境,已经可以啦


举报

相关推荐

0 条评论