SpringBoot读取mysql
- 部署mysql
- 创建SpringBoot工程
- 增加mysql8依赖
- 创建Service代码
- 执行验证
部署mysql
部署mysql可以通过软件安装,也可以通过docker安装,具体的安装过程可以参考以前的一篇博文,这里不再重复。
《眼睛说:我会用docker部署MySQL8了;手说:不,你不会》
创建SpringBoot工程
创建SpringBoot工程可以参考之前的一篇博文,这里不再重复
《用SpringBoot实现post和get请求》
按照文档部署完成后,你应该就有一个可以正常执行get和post请求的工程了。
增加mysql8依赖
SpringBoot要访问mysql8,需要先增加pom依赖。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
</dependencies>
spring-boot-starter-jdbc是jdbc驱动
mysql-connector-java是jdbcTemplate依赖
创建Service代码
根据规范,服务逻辑的处理需要放在Service层中,目前还没有太多的内容,因此暂时不创建dao层。但是要知道直接在service层访问数据库是不合适的。
创建service层,并创建sevice类,创建完成后的目录结构如图:
代码如下:
package net.csdn.blog.xiaoma.example.springboot.controllerdemo.controllerdemo.services;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class AppDemoService {
@Autowired
private JdbcTemplate jdbcTemplate;
public List get() {
String sql = "select * from student";
List list = jdbcTemplate.queryForList(sql);
System.out.println(list.size());
return list;
}
}
Controller中增加对service的调用
package net.csdn.blog.xiaoma.example.springboot.controllerdemo.controllerdemo.controller;
import net.csdn.blog.xiaoma.example.springboot.controllerdemo.controllerdemo.services.AppDemoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
@Controller
@RequestMapping("/demo")
@RestController
public class AppDemoController {
@Autowired
private AppDemoService appDemoService;
@PostMapping("/postMessage")
public String postMessage(@RequestBody String postMsg) {
return "post的消息是" + postMsg;
}
@RequestMapping(value="/get/{name}",method = RequestMethod.GET)
public String get(@PathVariable("name") String name ) {
System.out.println("getMsg=" + name);
return "hello,请求参数是:" + name;
}
@RequestMapping(value="/queryTB/{tableName}",method = RequestMethod.GET)
public String query(@PathVariable("tableName") String tableName ) {
System.out.println("getMsg=" + tableName);
return appDemoService.get().toString();
}
}
编写完成后启动服务
执行验证
执行验证后,可以通过http://127.0.0.1:8080/demo/queryTB/student查看效果,其中student是表名。