SpringBoot+Mybatis开发接口并部署到服务器读取数据,保姆级别教程
本文用于记录个人项目中实现从网络获取数据开发流程,包含一些踩过的坑
一、创建一个SpringBoot项目
配置信息如下:


如图,由于我选择的是Mysql数据库,故配置了如图二中的依赖,觉得麻烦的话可以在网页上创建项目 https://start.spring.io/ ,点击下方GENERATE下载
解压后只需要保留其中src与pom文件即可
接下来正式开始编码环节
1.添加配置信息
找到resource文件下的application.properties,

可以在这里配置端口号:server.port=8090,不配置的话默认为8080
url中
spring.datasource.url=jdbc:mysql://localhost:3306/teacherserverTimezone=GMT%2B8&characterEncoding=utf-8&useSSL=false
localhost:3306为读取本地数据库时的ip,teacher为数据库名称,(注意后面的?符号),再后面为三个参数,分别代表:数据库服务器所使用的时区、传输数据时使用的字符编码、是否使用 SSL(Secure Sockets Layer)加密连接来传输数据,目前我们只用于测试阶段,直接copy即可,后续若要加入SSL,记得将最后一个参数修改为true
下面的username和password则是你连接的数据库的用户名和密码
2.编写接口
1)创建user实体类
@Data
public class User {
private Integer id;
private Integer sex;
private String name;
}
此处@Data注解就是使用的先前导入的lombok依赖提供的注解,可以帮我们简化字段的 Getter 方法和非 final 字段的 Setter 方法
2)创建UserMapper类
public interface UserMapper {
@Select("SELECT * FROM teacher")
List findAll();
}
此处的@Select注解中传递的参数为查询数据库中某个表中所有数据所用到的命令
3)在主程序中运行这个UserMapper
@SpringBootApplication
@MapperScan("com.example.demo.mapper")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
4)创建Controller类
@RestController
@RequestMapping("/teacher")
public class UserController {
@Resource
UserMapper userMapper;
@GetMapping
public List getUser() {
return userMapper.findAll();
}
}
在这里我们引用了userMapper,并使用@RequestMapping("/teacher")将url请求与controller关联,注意:当这里有多个方法时,需要为每个方法单独设置url请求,
比如,当我有两个Get方法时,需要分别为他们传递不同的url请求('/teacher')、('/user')
@GetMapping("/teacher")
public List getAllUser() {
return userMapper.findAll();
}
@GetMapping("/user")
public List getUser() {
return userMapper.findAll();
}
3.本地测试接口
因为我这边已经创建好了本地的数据库,接下来直接测试,注意,创建数据库时,配置的用户名和密码需要和先前配置的信息一一对应。可以先用Navicat Premium测试本地数据库,这里附上链接下载安装navicat,使用教程,接下来就可以进行测试了,打开浏览器,直接将先前配置信息里的url复制粘贴过来 localhost:3306,再加上刚才在UserController中绑定的请求/teacher,组合之后得到:localhost:3306/teacher,就可以看到数据了
二、搭建服务器,并在服务器上部署数据库
1.购买服务器
以腾讯云为例,初期可以购买轻量级应用服务器,可以参考其他文章,这里不过多赘述购买指南,可以参考我的购买配置


这里设置密码,方便后续安装宝塔面板
2.安装宝塔面板
链接:宝塔
登录之后来到这个页面

点击安装宝塔

查看教程自行安装,新手可以使用下方的在线一键安装(PS:之前安装过宝塔的记得删除之后再使用在线安装)
这样我们就来到了宝塔面板
3.安装mysql数据库等软件
再软件商店中,安装Mysql等软件,下图为我安装的一些软件
4.新建数据库,新建表等
安装好之后,点击数据库并新建一个数据库
这是我自建的一个数据库,记住这里的用户名和密码,如果要将我们的jar包上传到服务器上的话,就要在刚才的SpringBoot上面修改配置,用户名和密码需要和这里的对齐。
点击管理,进入到数据库页面

在这里点击新建,新建一个表
输入完之后点击保存即可
而后点击我们刚才创建的表

在这里点击插入,插入一些测试用的数据
5.在服务器上测试数据库
接下来就可以在服务器上测试数据库了,返回刚才的宝塔面板,点击终端
现在还没有建立连接,点击右边的添加服务器
添加之后点击它,就连接到服务器了
输入:ps aux | grep mysqld启动数据库
如图所示则为启动成功
输入mysql -u u1 -p进入数据库,其中 u1是我的数据库用户名,修改为你创建数据库设的用户名即可,接下来输入密码将进入
输入以下命令查看:(注意带分号)
show databases;
use teachr;(teacher为我的数据库名称)
select * from teacher;(teacher为我的数据表名称)

三、将项目打为jar包,上传到服务器并启用
接下来就可以将项目打包了,回到我们的项目
1.打包

右边有一个m符号Maven,点击它

先后双击clean和package,就完成打包了,
这里可以看到我们的jar包存放位置在target目录

倒数第二个就是我们要找的jar包,可以先给他改个名,方便后面使用
2.上传
回到宝塔面板,点击文件,并且回到根目录

进入这里的home文件夹(不是必须放置在home文件夹,这里单纯是我个人偏好)

点击上传,选中先前的jar包即可(此处为我事先上传到jar包)
3.开放端口
现在只需要开放端口并且运行jar包即可
注意:不仅要开放腾讯云的端口,还需要在宝塔面板开放服务器的端口

进入我们刚才购买的服务器,点击防火墙,在这里添加规则

常见的比如说8080端口、3306端口、22端口等,现在将之前jar包里面配置的端口添加进去,点击添加规则即可
然后在宝塔面板添加规则,进入刚才的终端页面,输入以下命令即可:
firewall -cmd -permanent -add -port=8080/tcp (开放8080端口)
firewall -cmd -reload(重启防火墙)
可以参考这篇文章防火墙开放端口
4.运行jar包
接下来就是激动人心的测试环节了同样在终端面板,首先输入cd /home进入home目录,然后输入:java -jar test.jar(test是我给jar包重命名的名字)

这样就代表运行成功了,接下来我们可以直接在浏览器上像刚才一样测试,
输入:服务器ip:8080/user(注意,这里的服务器ip替换为ipv4,8080是我配置的jar包的端口,后面的/user是controller里面绑定的url请求地址)

这样就大功告成了(这里我用包装了返回结果)
5.持久运行jar包
但是我们发现,当服务器关闭的时候就访问不了了,
在终端面板,刚在输入的是java -jar test.jar命令,现在输入nohup java -jar test.jar &,用于在后台启动一个 Java 应用程序(test.jar),并且保证即使终端关闭,程序也不会停止运行
这样就可以让jar包在后台持续运行了,效果要关闭的话,查找占用对应端口的进程:lsof -i:8080
杀死进程:kill -9 2914102
以上便是全部,后续我会更新在Android项目中从服务器拉取、上传数据等
本文地址:https://www.yitenyun.com/5781.html









