`
wx1569567608
  • 浏览: 63900 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

7.从零开始学springboot-整合mybatis-annotations注解方式

 
阅读更多

前言

前章讲了下springboot使用JPA的当时连接mysql,本章我们来重点学习下mybatis连接数据库,为何重点讲这个?当然是因为流行、好用、用的人多!!

mybatis操作mysql又分两种方式,一种是注解,一种是mapper.xml文件。本章着重于注解方式的使用,因为比较简单。至于xml方式,下一章会讲。

创建一个空项目

好的,如果你和博主一步一步做的话,对这个流程应该无比的熟悉了,还是用IDEA无比流畅的创建出一个springboot空项目,依赖依旧手动加载。

添加依赖

打开pom.xml,添加如下依赖:

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

如图 1.png

记住这三个依赖,因为,接下来的几乎所有的案例都会99%有这三个依赖。实际开发中更是如此。

添加配置

老规矩,更改application.properties为application.yml,添加内容:

spring:
  datasource:
    url: jdbc:mysql://192.168.145.131:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT%2B8
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

建库

创建test库建表:

CREATE TABLE `person` (
  `id` int(11) NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `person` VALUES ('1', '1', '1');
INSERT INTO `person` VALUES ('2', '2', '2');
INSERT INTO `person` VALUES ('3', '3', '3');
INSERT INTO `person` VALUES ('4', '4', '4');
INSERT INTO `person` VALUES ('5', '5', '5');
INSERT INTO `person` VALUES ('6', '6', '6');
INSERT INTO `person` VALUES ('7', '7', '7');
INSERT INTO `person` VALUES ('8', '8', '8');
INSERT INTO `person` VALUES ('9', '9', '9');
INSERT INTO `person` VALUES ('10', '10', '10');
INSERT INTO `person` VALUES ('11', '11', '11');

表记录自行添加几条吧

完善

右键包创建如图所示的package和class文件

2.png

controller/DemoController:

package com.mrcoder.sbmannotations.controller;
import com.mrcoder.sbmannotations.domain.Demo;
import com.mrcoder.sbmannotations.service.DemoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;

@RestController
public class DemoController {
    @Autowired
    private DemoService demoService;

    @RequestMapping(value = "/person/{id}", method = RequestMethod.GET)
    public Demo getPersonById(@PathVariable int id) {
        return demoService.getPersonById(id);
    }

    @RequestMapping(value = "/person", method = RequestMethod.GET)
    public ArrayList<Demo> getPersonList() {
        return demoService.getPersonList();
    }
}

dao/DemoDao:

package com.mrcoder.sbmannotations.dao;
import com.mrcoder.sbmannotations.domain.Demo;
import org.apache.ibatis.annotations.*;
import java.util.ArrayList;

@Mapper
public interface DemoDao {
    @Select("select * from person where id = #{id}")
    // 返回 Map 结果集
    @Results({
            @Result(property = "id", column = "id"),
    })
    Demo getPersonById(@Param("id") int id);

    @Select("select * from person")
    ArrayList<Demo> getPersonList();

}

domain/Demo:

package com.mrcoder.sbmannotations.domain;

public class Demo {
    private Integer id;
    private String name;
    private Integer age;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return
                "id=" + id +
                        ", name='" + name + '\'' +
                        ", age=" + age
                ;
    }
}

service/DemoService:

package com.mrcoder.sbmannotations.service;

import com.mrcoder.sbmannotations.domain.Demo;

import java.util.ArrayList;

public interface DemoService {
    Demo getPersonById(int id);
    ArrayList<Demo> getPersonList();
}

service/impl/DemoService:

package com.mrcoder.sbmannotations.service.impl;

import com.mrcoder.sbmannotations.dao.DemoDao;
import com.mrcoder.sbmannotations.domain.Demo;
import com.mrcoder.sbmannotations.service.DemoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;

@Service
public class DemoServiceImpl implements DemoService {
    @Autowired
    private DemoDao demoDao;

    public Demo getPersonById(int id) {
        return demoDao.getPersonById(id);
    }

    public ArrayList<Demo> getPersonList() {
        return demoDao.getPersonList();
    }

}

运行

3.png

4.png

项目地址

https://github.com/MrCoderStack/SpringBootDemo/tree/master/sbm-annotations

https://gitee.com/MrCoderStack/SpringBootDemo/tree/master/sbm-annotations

Tips

windows端口占用问题解决

#找到对应端口的PID
netstat -ano|findstr "8080"

5.png

#根据PID找到程序名
tasklist|findstr "18804"

6.png

#杀死程序
taskkill /f /t /im java.exe

请关注我的订阅号

订阅号.png

转载于:https://my.oschina.net/u/3066875/blog/3055372

分享到:
评论

相关推荐

    Java开发案例-springboot-01-整合MyBatis-Plus-源代码+文档.rar

    Java开发案例-springboot-01-整合MyBatis-Plus-源代码+文档.rar Java开发案例-springboot-01-整合MyBatis-Plus-源代码+文档.rar Java开发案例-springboot-01-整合MyBatis-Plus-源代码+文档.rar Java开发案例-...

    Java开发案例-springboot-47-整合Mybatis-Flex操作SQL-源代码+文档.rar

    Java开发案例-springboot-47-整合Mybatis-Flex操作SQL-源代码+文档.rar Java开发案例-springboot-47-整合Mybatis-Flex操作SQL-源代码+文档.rar Java开发案例-springboot-47-整合Mybatis-Flex操作SQL-源代码+文档.rar...

    springboot-mybatis(1).rar

    1. 添加Mybatis和SpringBoot-Mybatis-Starter依赖。 2. 配置mybatis的主配置文件(mybatis-config.xml),定义数据源、事务管理器等。 3. 创建Mapper接口和对应的XML映射文件,实现SQL语句的编写。 4. 在SpringBoot...

    springboot-mybatis-demo

    【标题】"springboot-mybatis-demo"是一个演示项目,展示了如何在Spring Boot框架下整合MyBatis和MySQL数据库。这个项目是基于现有的示例代码进行调整和改造的,旨在为学习者提供一个基础的实践环境。 【描述】该...

    springboot-mybatis-0.0.1-SNAPSHOT.jar

    主要用来测试 docker部署springboot的jar包

    Springboot-的各种demo.rar

    Springboot-mybatis-annotation 这是mybatis 的注解版 Springboot-mail 这是springboot 发邮件 Springboot-redis springboot 之使用redis数据库 Springboot-editor.md springboot 与editor.md 整合 Springboot-...

    springboot-mybatis-demo.

    springboot-mybatis-demo. springboot-mybatis-demo. springboot-mybatis-demo.

    springboot-mybatis-tx

    springboot-mybatis-tx,springboot-mybatis-tx,springboot-mybatis-tx,springboot-mybatis-tx,springboot-mybatis-tx

    毕设-基于springboot+mybatis的选课管理系统.zip

    毕设-基于springboot+mybatis的选课管理系统.zip毕设-基于springboot+mybatis的选课管理系统.zip毕设-基于springboot+mybatis的选课管理系统.zip毕设-基于springboot+mybatis的选课管理系统.zip毕设-基于springboot+...

    springboot-mongodb-mybatis-demo.zip

    《整合Springboot、Mybatis-Plus与MongoDB的实战指南》 在当今的软件开发领域,Springboot以其轻量级、快速开发的优势,已经成为Java Web应用的首选框架。MongoDB作为NoSQL数据库的代表,因其非关系型特性和强大的...

    Springboot2.7.0 + mybatis 搭建多数据源

    &lt;artifactId&gt;mybatis-spring-boot-starter &lt;version&gt;2.2.2 ``` 2. **创建数据源配置**:在`application.yml`或`application.properties`中定义两个或更多的数据源。每个数据源都需要指定相关的数据库连接信息,...

    保姆级SpringBoot-Web-Mybatis整合教程.zip

    《保姆级SpringBoot-Web-Mybatis整合教程》是一份详尽的实践指南,旨在帮助初学者和开发者快速掌握如何将SpringBoot、Web和Mybatis框架整合在一起,构建高效、简洁的Java Web应用。这份教程涵盖了从项目初始化、...

    Springboot-Mybatis-demo.zip

    本示例项目"Springboot-Mybatis-demo.zip"提供了快速集成SpringBoot和Mybatis的实例,让你在短短的十分钟内就能了解并运行一个完整的微服务应用。 首先,我们来了解一下SpringBoot的核心特性。SpringBoot旨在简化...

    springboot-mybatis-jsp整合

    在"springboot-mybatis-jsp整合"项目中,首先需要配置Spring Boot的启动类,添加@EnableWebMvc注解开启Web MVC功能,并引入MyBatis的相关依赖。然后,定义MyBatis的配置文件(mybatis-config.xml),设置数据源、...

    springboot-mybatis配置20190819版本.zip

    - 创建Mybatis配置:创建`mybatis-config.xml`配置文件,设置数据源、事务管理器等。 - mapper配置:每个Mapper接口需要对应的XML文件,放置在`src/main/resources/mapper`目录下,定义SQL语句。 2. **SpringBoot...

    springboot-shiro-mybatis-demo.zip

    本篇文章将详细介绍如何从零开始,使用SpringBoot、Shiro和MyBatis搭建一个完整的项目。 首先,我们来看一下项目的构建基础——`pom.xml`。这是Maven项目的核心配置文件,它定义了项目依赖、插件和项目信息。在`...

    springboot-mybatis-plus.zip

    SpringBoot与MyBatis-Plus整合教程 在Java开发领域,SpringBoot因其便捷的配置、自动化的特性,已经成为快速构建应用的首选框架。而MyBatis-Plus则是在MyBatis的基础上进行了轻量级的封装,提供了更强大的CRUD操作...

    springboot-mybatis-sample

    本项目“springboot-mybatis-sample”正是将这两者结合的示例,旨在帮助开发者了解如何在SpringBoot项目中整合Mybatis,以及如何使用YML方式进行配置。 1. **SpringBoot基础** SpringBoot简化了Spring的配置,通过...

Global site tag (gtag.js) - Google Analytics