mybatis里面mysql驱动包_入门Springboot结合mybatis做简单接口

目前已经入职公司一周时间了,最近因为京东准备618大促,也没有很多的开发时间,实习生基本也是比较闲的,遂开始学习新的技术。

01 前言

由于我是从事前端开发的,大部分的时间都是与用户这方面打的交道,自己也是比较满足现在的情况。但是最近公司也是比较缺人手,后端人员也是比较繁忙,所以在leader的建议之下,我开始后端的知识学习。

在之前的总结方法学习上,我用三步法来快速入门一门新的技术。现在我是从零开始的,也是逐步摸索这其中的奥秘。

  • 开始HelloWorld之旅
  • 快速刷视频教程
  • 动手实践项目

接下来就围绕着这几个问题谈谈自己是怎么开始出发的。

02 一些想法

这个其实不用多说,基本上程序员都懂怎么开启新世界的大门。

要想实现helloworld其实并不难,网上的教程很多,基本上也是可以满足你的要求的,我们需要的就是找一个靠谱合适的、系统的教程。现在我学习的就是关于java的知识,详细来说就是springboot的知识。

就像我们前端的一样,每一门语言都会在不断的发展中衍生出自己的一个框架,方便我们快速就进行项目的开发。

「我们可以来和前端进行类比一下。我们熟知的前端web框架有哪些?」

  • Express
  • Koa

其实springboot这个框架我们可以把它看成是Express或者Koa,就是为了能够快速进行后台的开发而诞生的。两者同样是也是提供了想路由、数据库操作等的相关技术封装。

那么除了这个之外,还有什么是类似的呢?

首先前端是使用JavaScript语言进行开发的,那么后端是使用Java。道理一样都是一种工具。springboot是建立在spring之上的,再进行的一个封装。就如Express是基于Node.js进行的封装。

我们还知道Java也有一种是Maven的项目管理器,用于管理项目之间的依赖关系,使得项目能够进行统一的管理。那么前端也是一样的,我们也有NPM包管理器进行项目的管理。

159336357a147cfa7fd1a85f6d47287d.png

类比不一定准确,可以给大家一个参考。带着前端的思维去学习确实是比较好,因为技术之前都是相同的,原理一样,不变应万变。

03 HelloWorld

首先我们开始开发之前就一样要配置好我们本地的java环境maven环境,以便我们在后面开发顺畅。

至于怎么弄大家可以自行谷歌,网上有很多教程也比较简单。

我们现在选用的工具有:

  • IDEA
  • postman
  • navicat

它们分别用来代码的开发、接口的测试以及数据库的管理。准备好了这些我们就直接开始了。

「新建一个springboot项目」

4d5205d9aa21c9fe04f4e0a2720db42f.png
选择Initializr

选择这个可以快速开发一个springboot项目,不用我们进行手动maven的配置,导入依赖等等繁琐的操作,现在一站式开发。

1979c5db5897a127fa76136847fc0ed9.png
默认配置就好
32ab2f532c3b4c651c20d64390c88cb1.png
选择web

我们新建完之后就可以看到这个目录,我们主要的代码就是在src目录下面进行编写。

31ce8f7c01cddb45ca12c0932eb1e368.png

接下来我们先来实现HelloWorld的代码。不管我们懂不懂,我们先把事情做出来再说。

c2cb2bfcbacc97459b3e27242ad30e97.png

我们依照图片这个建立一个controller文件夹,里面实现一个controller,回到DemoApplication之后,右键点击运行。

打开浏览器访问localhost:8080/hello,你就会看到效果了。

04 结合MyBatis做CRUD

mybatis是一个优秀的Java持久层框架,能够自定义SQL、存储过程以及高级映射。

这里我用两种方式进行数据库的访问操作,一种是注解版的方式,另一种就是使用配置文件版的方式。

首先我们先做一些准备工作:

  • 配置数据源(mysql)
  • 数据库建表
  • 创建实体类(JavaBean)

既然我们要结合mybatis,那么就要引入相关的依赖包,跟npm下载包原理一样。

「引入依赖」

//这里是引入mybatis的依赖    org.mybatis.spring.boot    mybatis-spring-boot-starter    1.3.1//引入mysql驱动    mysql    mysql-connector-java    runtime//修改数据源    com.alibaba    druid    1.1.22

「数据源配置」

spring:  datasource:    username: root    password: 123456    driver-class-name: com.mysql.jdbc.Driver    url: jdbc:mysql://localhost:3306/mybatis    type: com.alibaba.druid.pool.DruidDataSource    #   数据源其他配置    initialSize: 5    minIdle: 5    maxActive: 20    maxWait: 60000    timeBetweenEvictionRunsMillis: 60000    minEvictableIdleTimeMillis: 300000    validationQuery: SELECT 1 FROM DUAL    testWhileIdle: true    testOnBorrow: false    testOnReturn: false    poolPreparedStatements: true    #   配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙    filters: stat,wall,log4j    maxPoolPreparedStatementPerConnectionSize: 20    useGlobalDataSourceStat: true    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500    schema:      - classpath:sql/department.sql      - classpath:sql/employee.sql    initialization-mode: always    #mapper的方式会用到    mybatis:  mapper-locations: classpath:mybatis/mapper/*.xml  config-location: classpath:mybatis/mybatis-config.xml

「创建数据库表」

我们准备两个sql文件,放在resource下面的sql文件夹,因为上面我们已经配置了scheme,所以我们运行代码之后就会创建两张表。使用navicat查看一下就可以。

d312551ffe3b59955e78d5050791d641.png

注解版实现

我们先创建JavaBean,在启动类的同级目录下创建bean文件夹,里面对应的就是数据库两张表的结构。

Department

package com.alanwu.springboot.bean;public class Department {    private Integer id;    private String departmentName;    //省略set/get方法}

Employee

package com.wuqingshi.springboot.bean;public class Employee {    private Integer id;    private String lastName;    private Integer gender;    private String email;    private Integer dId;        //省略set/get方法}

然后我们创建一个mapper文件夹(bean同级),下面创建DepartmentMapper.java使用注解版实现。

package com.alanwu.springboot.mapper;import com.alanwu.springboot.bean.Department;import org.apache.ibatis.annotations.*;@Mapperpublic interface DepartmentMapper {    @Select("select * from department where id=#{id}")    public Department getDeptById(Integer id);    @Delete("delete from department where id=#{id}")    public Department deleteDeptById(Integer id);    @Options(useGeneratedKeys = true,keyProperty = "id")    @Insert("insert into department(departmentName) values(#{departmentName})")        public int insertDept(Department department);    @Update("update department set departmentName=#{departmentName} where id=#{id}")    public int updateDept(Department department);}

最后我们创建一个controller文件夹(bean同级),里面创建DeptController.java。(注意,有飘红的就导入就好)

@RestControllerpublic class DeptController {    @Autowired    DepartmentMapper departmentMapper;    @GetMapping("/dept/{id}")    public Department getDepartment(@PathVariable("id") Integer id){        return departmentMapper.getDeptById(id);    }    @GetMapping("/dept")    public Department insertDept(Department department){        departmentMapper.insertDept(department);        return department;    }}

启动项目,访问localhost:8080/dept/1,就可以查询数据库中id为1的部门。前提数据库中有数据。

配置文件版

在resources目录下新建mybatis文件夹,再新建mapper文件夹,里面就写我们的xml文件。

46fc9fba0b96515b32ecaf3ffcea184d.png

mybatis-config.xml是mybatis的配置文件。

<?xml version="1.0" encoding="UTF-8" ?>/span>        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"        "http://mybatis.org/dtd/mybatis-3-config.dtd">                
  • 新建bean/Employee.java
public class Employee {    private Integer id;    private String lastName;    private Integer gender;    private String email;    private Integer dId;}
  • 新建mapper/Employee.java
public interface EmployeeMapper {    public Employee getEmpById(Integer id);    public Employee insertEmp(Employee employee);}
  • 新建resources/mybatis/mapper/EmployeeMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>/span>        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">        select * from employee where id = #{id}              insert into employee(lastName,email,gender,d_id) values (#{lastName},#{email},#{gender},#{dId})    

最后我们就写一个controller/EmpController.java来测试一下是否可行。

@RestControllerpublic class EmpController {    @Autowired    EmployeeMapper employeeMapper;    @GetMapping("/emp/{id}")    public Employee getEmpById(@PathVariable("id") Integer id){        return employeeMapper.getEmpById(id);    }}
415807cf4e95a676b4db3d71c50a16d9.png

05 小结

通过上面的一个实例,我们就可以创建一个简单的CRUD操作了,而且我们也可以与数据库进行交互,从某种意义上来说我们已经入门后端这个方向了。

其实这方面还有很多的知识没有讲到,大家可以看书和文档来补充。

项目github地址:https://github.com/wqs2019/springboot-mybatis

B站学习地址:https://www.bilibili.com/video/BV1Et411Y7tQ

慕课网学习地址:https://www.imooc.com/course/list?c=springboot

0fb840c862c8431855492ac4acb0f628.png

本期完

5a2d6dcf842e788fd55d7898b85c1889.png

微信号 : beyouku

公众号:前端小时

● 扫码关注我们 ●

7cf1a0c5bfce216de732d50233e0cbff.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值