本实例 是在 springboot-base 的基础上进行的。
第一步:添加依赖 1 2 3 4 5 6 7 8 9 <dependency > <groupId > org.springframework.boot</groupId > <artifactId > spring-boot-starter-jdbc</artifactId > </dependency > <dependency > <groupId > mysql</groupId > <artifactId > mysql-connector-java</artifactId > </dependency >
这里我们另外再添加两个依赖。等下写http接口的发布之后,可以帮我们生成一个可访问的接口文档。
1 2 3 4 5 6 7 8 9 10 11 12 <dependency > <groupId > io.springfox</groupId > <artifactId > springfox-swagger2</artifactId > <version > ${swagger.version}</version > </dependency > <dependency > <groupId > io.springfox</groupId > <artifactId > springfox-swagger-ui</artifactId > <version > ${swagger.version}</version > </dependency >
其中的版本是在上方定义的:
1 2 3 <properties > <swagger.version > 2.9.2</swagger.version > </properties >
第二步:配置数据库连接信息 在 applcatiion.properties 文件里:
1 2 3 4 5 6 spring.datasource.driver-class-name =com.mysql.jdbc.Driver spring.datasource.url =jdbc:mysql://127.0.0.1:3306/web?serverTimezone=UTC spring.datasource.username =root spring.datasource.password =123456 spring.datasource.name =test
第三步:在数据库建表: 这里可以通过idea 本身的database 模块连接数据库建表:
也可以用其它工具(例如navicat)连接数据库建表:
这边我们来建个学生表:
(建表时记得把备注(comment)填写全,后面生成代码时,可以帮助我们生成注释)
sql语句为:
1 2 3 4 5 6 7 8 9 create table student( id int auto_increment comment '数据id' primary key, study_no varchar (20 ) not null comment '学号' , stu_name varchar (20 ) not null comment '学生姓名' , stu_age int not null comment '学生年龄' , class_name varchar (32 ) not null comment '班级名称' ) comment '学生表' ;
我们再双击student 表添加两条数据:
控制台自动把插入数据的sql 打印了出来
1 2 3 4 [2019 -09 -28 22 :20 :43 ] 0 rows retrieved in 43 ms (execution: 8 ms, fetching: 35 ms) sql > INSERT INTO `web`.`student` (`study_no`, `stu_name`, `stu_age`, `class_name`) VALUES ('00110' , '张三' , 12 , '初一6班' )[2019 -09 -28 22 :22 :33 ] 1 row affected in 14 ms sql > INSERT INTO `web`.`student` (`study_no`, `stu_name`, `stu_age`, `class_name`) VALUES ('00111' , '李四' , 12 , '初一3班' )
第四步:我们来自动生成个实体类(也可以自己手动写这个类) 我们在这里新建一个包来存放实体类。
然后我们再右击表名 选择 generate java class
没有这个选项的需要安装一个插件。(插件为收费版)
点击generate java class 后:
java class path 选择我们前面建的包名。
勾选 comment 能够帮我们生成备注。
勾选swagger 能够帮我们生成swagger 的一些注解注释。
点击ok 就会生成好一个实体类。
第五步:我们来写调用数据库的一些方法。
这里的代码先简单这样写了。实际开发中业务相关的代码一般不放在 controller.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 package com.example.springbootbase.controller;import com.example.springbootbase.model.Student;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jdbc.core.BeanPropertyRowMapper;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.web.bind.annotation.*;import java.util.HashMap;import java.util.Map;@RestController public class StudentController { @Autowired JdbcTemplate jdbcTemplate; @ResponseBody @GetMapping("/stu/{id}") public Student getStuById (@PathVariable("id") int id) { return (Student) jdbcTemplate.queryForObject("select * from student where id = " +id,new BeanPropertyRowMapper (Student.class)); } @ResponseBody @DeleteMapping("/stu/{id}") public Map delStuById (@PathVariable("id") int id) { jdbcTemplate.execute("delect from student when id = " +id); Map result = new HashMap (2 ); result.put("code" ,200 ); result.put("msg" ,"success" ); return result; } }
我们今天测接口不用postman 也不用浏览器,我们来用一个叫 restfulToolKit 的插件
装好之后 侧边栏有个 restServices 的选项卡点开后 找到我们编写的接口。修改参数后点击send 即可发送请求测试
点击send 后 response 里可看到请求的结果。下面看到了数据表的数据表示我们成功的从数据库里拿到了数据
第六步:利用swagger框架生成接口文档同时测试接口。 最简单的使用我们只需要在启动类上加上@EnableSwagger2注解然后重启就可以了
然后我们就可以通过浏览器访问地址 http://localhost:8080/swagger-ui.html 看到我们的接口了
第七步:配置连接池 由于spring boot默认集成hikari 链接池
所以我们直接复制一段连接池的配置就可以了。不需要额外添加依赖。当然如果你不想用这个链接池那么得自行添加依赖了
1 2 3 4 5 spring.datasource.type =com.zaxxer.hikari.HikariDataSourcespring.datasource.hikari.minimum-idle=5 spring.datasource.hikari.maximum-pool-size =15spring.datasource.hikari.auto-commit=true spring.datasource.hikari.idle-timeout =30000spring.datasource.hikari.pool-name=DatebookHikariCP spring.datasource.hikari.max-lifetime =1800000spring.datasource.hikari.connection-timeout=30000 spring.datasource.hikari.connection-test-query =SELECT 1