快速初始化SpringBoot并整合Mybatis

搭建一个SpringBoot基础框架并实现mybatis的整合!

前言:一些废话

​ 最近在准备找工作,感觉自己关于框架的知识点很零散,所以我想花一些时间,整理整理,把以前学的知识串联起来,系统的整理一遍,加深映像。

1.打开Idea,会出现如下界面。

(img-DXEdActA-1579353578410)(C:\Users\gjt\AppData\Roaming\Typora\typora-user-images\1579340303617.png)]

2.选择Create New Project,新增一个项目。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qpHCmkDI-1579353578411)(C:\Users\gjt\AppData\Roaming\Typora\typora-user-images.png)]

箭头所指向的三处地方默认即可,不需要做其他修改。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B6vCbvIO-1579353578412)(C:\Users\gjt\AppData\Roaming\Typora\typora-user-images.png)]

画框的地方,maven项目和gradle项目都可以选择,只是项目管理的环境不同而已。这里我默认选择了maven,因为我的gradle下载实在太慢了。。。我懒得去修改镜像源。

依赖的选择如下图所示,他提供了很多依赖,其实很多我都没有用过。我也在不断尝试新的依赖。这里我选择了如下几个。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eqPwZAEM-1579353578413)(C:\Users\gjt\AppData\Roaming\Typora\typora-user-images.png)]

这是我选择的依赖。spring web 必须选,这里面包含了spring mvc的依赖,如果不选。。。。前后就无法交互。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ax665NK9-1579353578414)(C:\Users\gjt\AppData\Roaming\Typora\typora-user-images.png)]

创建完成,等待下载依赖。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JQ6vmkmr-1579353578417)(C:\Users\gjt\AppData\Roaming\Typora\typora-user-images.png)]

如果觉得慢的可以在pom文件里面加入这句话。这样你的下载就起飞了。。。。23333

<repositories>
    <repository>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </repository>
  </repositories>

初始化完成之后基本项目结构如下图所示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kQgnyjL0-1579353578435)(C:\Users\gjt\AppData\Roaming\Typora\typora-user-images.png)]

等待下载依赖中……

N minutes later

依赖安装完成。。。

3.启动之前的准备工作

修改文件后缀为yml

application.properties -> application.yml

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-79mAqeqD-1579353578464)(C:\Users\gjt\AppData\Roaming\Typora\typora-user-images.png)]

里面写如下内容

spring:
  application:
    name: demo
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/jwxt-test?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&&serverTimezone=GMT%2b8
    username: root
    password: root

然后点击Debug启动

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G7UB10jt-1579353578467)(C:\Users\gjt\AppData\Roaming\Typora\typora-user-images.png)]

一个SpringBoot的工程就启动完成了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sfFrfFuk-1579353578468)(C:\Users\gjt\AppData\Roaming\Typora\typora-user-images.png)]

4.尝试写一个接口

在controller文件夹下面编写如下代码

@RequestMapping(value = "/student")
@RestController
@CrossOrigin
public class StudentController {


    @GetMapping("/getStudentMsg")
    public String getStudentMsg() {
        return "get student msg success!";
    }
}

访问地址http://localhost:8080/student/getStudentMsg

得如下结果!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u8fjrxIk-1579353578473)(C:\Users\gjt\AppData\Roaming\Typora\typora-user-images.png)]

POST方法同理。测试起来比较麻烦,所以我就掠过。

5.完善其他层(service,dao)

完善之后的Controller层代码

@RequestMapping(value = "/student")
@RestController
@CrossOrigin
public class StudentController {


    @Autowired
    public StudentServiceImpl studentService;

    @GetMapping("/getStudentMsg")
    public String getStudentMsg() {
        return this.studentService.getStudentMsg();
    }

    @PostMapping("/postStudentMsg")
    public String postStudentMsg(@RequestBody  String name, @RequestBody String idCard) {
        return "post student msg success!";
    }
}

完善之后的service层代码

public interface StudentService {

    String getStudentMsg();
}
@Service
@Transactional(rollbackFor = Exception.class)
public class StudentServiceImpl implements StudentService {
    @Override
    public String getStudentMsg() {
        return "get student msg success!";
    }
}

测试:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QkdtigWJ-1579353578474)(C:\Users\gjt\AppData\Roaming\Typora\typora-user-images.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-difhCVcg-1579353578475)(C:\Users\gjt\AppData\Roaming\Typora\typora-user-images.png)]

dao层涉及到和mybatis的结合。。。emmm有点麻烦。。

因为dao层的代码有些复杂,我就从别处扒了点出来

修改过后的serviceimpl层代码

@Service
@Transactional(rollbackFor = Exception.class)
public class StudentServiceImpl implements StudentService {

    @Autowired
    public StudentMessageMapper studentMessageMapper;

    @Override
    public String getStudentMsg() {
        System.out.println("进入serviceImpl");
        return "get student msg success!";
    }

    @Override
    public List<StudentMessage> findAll() {
        PageDTO pageDTO = new PageDTO();
        pageDTO.setIndex(1);  // 设置当前页码为1
        pageDTO.setPagesize(20);  // 设置当前页数量为20
        // 处理分页
        // 重组分页条件
        ArrayList linkedList = new ArrayList();
        Integer index = (pageDTO.getIndex() - 1) * pageDTO.getPagesize();
        pageDTO.setIndex(index);
        // 如果搜索条件和搜索知不为空
        if(!pageDTO.getSearchCondition().equals("")&& !pageDTO.getSearchValue().equals("")) {
            // 设置SQL
            pageDTO.setSearchSql();
        }
        return this.studentMessageMapper.findAll(pageDTO);
    }
}

此时如果不修改main方法上面的注解,就会出现如下错误。

Field studentMessageMapper in org.gjt.demo.serviceimpl.StudentServiceImpl required a bean of type ‘org.gjt.demo.dao.mapper.StudentMessageMapper’ that could not be found.

The injection point has the following annotations:

  • @org.springframework.beans.factory.annotation.Autowired(required=true)

解决方案如下

@SpringBootApplication(scanBasePackages = "org.gjt.demo")
@MapperScan(basePackages = "org.gjt.demo.dao.*")
public class DemoApplication {

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

如果出现

Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port.

则修改application.yml切换端口!

server:
  port: 8081

如果出现

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): org.gjt.demo.dao.mapper.StudentMessageMapper.findAll

那么就是没有在yml文件中配置对应的映射的xml文件。。解决方案如下

mybatis:
  mapper-locations:
    - classpath*:/mapper/*.xml     #mybaits mapperxml文件路径
  configuration:
    map-underscore-to-camel-case: true

一切就绪之后。。。。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J1cYm4TP-1579353578477)(C:\Users\gjt\AppData\Roaming\Typora\typora-user-images)]

开始测试:

地址:http://localhost:8081/student/findAll

返回结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kTMXtRGk-1579353578478)(C:\Users\gjt\AppData\Roaming\Typora\typora-user-images.png)]

注:以上数据全部是模拟生成的假数据,没有一条是真的。

到此为止完成了一个简单的springboot的框架的初始化搭建。

下一篇将分析其中的每一个注解的含义和作用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值