欢迎光临散文网 会员登陆 & 注册

破壁小萌新的后端学习路

2023-02-18 00:31 作者:魔天贝儿  | 我要投稿


为了怕自己学完了就忘了qwq,这篇记录的是怎么在远程服务器上搭MySQL数据库+怎么写springboot的后端小项目

小破站专栏似乎没办法插入站外链接........[小知识科普]关于如何给b站专栏添加站外超链接 - 哔哩哔哩 (bilibili.com)里的方法也被ban了,所以文章里面几乎都是文本的网址,如果有看到这篇文章想试试的友友还是推荐使用电脑复制方便些~


买个云服务器

一切的开始,主要阿里云的新人优惠直接一折doge,简单玩玩可以选最实惠的1核2G,操作系统选哪种不是倒特别重要,网上都能搜到相应教程滴

我年纪轻轻就碰到了一折优惠,你敢想吗
大佬学长的建议  /崇拜

后面需要远程连接和命令行操作,可以用Xshell和Xftp

可视化一绝!

这里插一些简单的命令——

· 添加用户+赋予用户高级权限:https://blog.csdn.net/qq_38893833/article/details/109029178

· vim或者其他什么指令进入编辑页面后:上下左右键移动光标;按键盘没动静:先Esc键、再摁shift+:就可以输入指令了;想退出输入q或者q!指令就好,先保存在推出就是wq或者wq!

· Xshell也可以设置Ctrl+C/V:https://blog.csdn.net/xia3138641636/article/details/121319826

· 有时候编辑文件会说存在swp文件,应该是上次改了没保存,删掉再重新编辑一遍保存就好

比如这样删httpd.conf的.swp临时文件

然后是在服务器上安装Apache。如果服务器没有apt-get,只有yum,可参考:https://blog.csdn.net/qq_36938617/article/details/102734124;有的话就更好了哈,好像可以直接下载Apache2。最后一定要记得去开放端口,不然访问不到:https://www.jianshu.com/p/3801393a323a


搭建MySQL数据库

主要是基于:https://blog.csdn.net/daming1/article/details/125035243,中间也参照了:https://blog.csdn.net/qq_51528941/article/details/128286544,不过两篇文章很像,可以都瞄一眼,其中上传MySQL的安装包的话可以我们先下载相应版本到自己的桌面(尽管我是Windows电脑,但是我买的云服务器是Linux,所以还是要下载Linux版),然后通过Xftp直接拖到相应目录下就行了,超级方便,上传完了之后再把那个安装包从自己电脑桌面上删掉就好了

遇到这个问题:缺什么我们下载什么就行了—— yum install -y libaio
遇到这个问题:把my.cnf改成下面这样就行

· 要是登录的时候输入mysql他说找不到这个指令,进入bin目录下就可以了

cd /root/opt/software/mysql/bin

· 要是已经在bin目录下了,试试加./

./mysql -u root -p  


本地workbench连接

MySQL Workbench下载:https://dev.mysql.com/downloads/workbench(如果自己的电脑是Windows,就下载windows版本,与远程服务器是Linux系统无关)

提一嘴从小帅学长那里得到的感悟:MySQL数据库是可以用命令行语句(每句以分号结尾)操作的,像MySQL Workbench、Navicat其实只是一个可视化软件——比如“select * from user;”展示user表格的所有内容,但在workbench中只需要点一下图标按钮就好了;或者说下面这张图是插入两条数据删除一条数据,命令行输入要写INSERT……、DELETE……,但是workbench里就像excel一样选中、添加、删除,再点击Apply就完事了(点击Apply后软件会自动生成相应INSERT、DELETE这样的代码自动执行)要举例子的话,Excel就是一个经典的可视化软件

至于如何连上远程数据库,跟着这个,不亏:https://blog.csdn.net/qq_44249833/article/details/106362650

建表时会遇到一些属性(当然也可以不管...因为约不约束影响不大)

这里<表的主键>是指各数据独一无二的东西,比如id=1,Name='张三',……,ID是主键,只需要查询时<Select * From 表名 where id=1>就能把张三的这一串数据查出来了,毕竟张三可以同名,所以不能用Name做主键


Intelli J建立Springboot文件

IJ下载:https://www.jetbrains.com/zh-cn/idea/download/#section=windows

JDK下载:https://www.oracle.com/java/technologies/downloads/#jdk17-windows

JDK配置参考:https://blog.csdn.net/bestsongs/article/details/122939081

(我用的是17,不过现在有新版本19也可以下19)

这点要注意,不要问我怎么知道的


网上一搜新建springboot项目,《New Project->Spring Initializr》害我不浅qwq..... 因为免费的社区版没有这个选项......不过好消息是有插件可以替代(网上搜了一堆没用的,最终还得是b站技术区——https://www.bilibili.com/read/cv21528904,如果右下角有报错说加入的包不是IJ插件的话,只要项目能跑,就别管!)

高贵的旗舰版
鼠鼠用的社区版


不想这么麻烦的话也可以直接上https://start.spring.io网站上Generate一个压缩包,再在IJ里File->New->Project from existing sources选择它导入就行了


配置Maven仓库

参考这一篇就成功了:https://blog.csdn.net/JavaD0g/article/details/107371943

以下没配成功的尝试:

对于官网下载Maven到本地再导入的方法,终究没试出来,链接和遭遇过程也放在这里,可供谨慎参考:https://blog.csdn.net/weixin_44468194/article/details/107765095

cmd输入mvn -v时遇到了下面这个问题,是因为我JavaSDK的系统变量没弄好,把最开始下载的SDK17的系统变量置顶解决了

但是导入后报了72个错
网上看到说其实是Maven包未导入成功,点击这个install让它装就行
一个小时后又悲

遗憾离场.jpg


言归正传:IJ内连接数据库

(其实没有MySQL testbench好用哈)参考:https://blog.csdn.net/qq_49288154/article/details/127782047

但是关于右侧的Database栏:

他怎么多一个(?)
网上一搜,大都是这样


没错,没错,这就是高贵的旗舰版,鼠鼠用的社区版只能找插件了:https://www.logicbig.com/how-to/intellij/intellij-community-edition-connecting-database.html,然后像MySQL workbench一样连接


蒙德  我居然成功了!(202302100019)


开始写代码!

在小破站里搜到了一个不错的视频:寒假在家学后端,赚钱养活自己!

不过视频里用的是jdbc,如果想用mybatis的话(弹幕说这两个不一样,虽然我也不知道这两个为什叫这两个,哪里不一样...)可以看这一集10几分钟了解一下项目架构、里面写什么东西、小程序怎么调用就行了,然后成功找到一篇springboot+mybatis源码!——大学牲可高兴了,我直接照搬:https://blog.csdn.net/zhenghuishengq/article/details/109510128

如果碰到JSONObject这个词划红线报错的话,应该在pom.xml文件里添加依赖(同时记得那个函数的括号里key是不用写的,只需要写引号就行,编辑器自动会显示那里有个key)

一个好的依赖网站:https://mvnrepository.com

如果跑不通,报错bean无法创建的话重新开个项目一字不拉的抄下来再试试... 添加Java文件时要注意是(Java class)还是(Interface),然后还有@Controller @RestController等等,就是说抄的时候眼睛要放亮点,不然的话

跑着跑着就变红了,这谁受得了

跟着文章照搬下来之后分析一下大概就知道代码逻辑+调用关系+项目架构了,还有点懵可以看看:https://blog.csdn.net/weixin_47414034/article/details/126405212,继续加深!

1个视频和2篇文章跑出来后,大概心里有点底了... 大概是代码有4层,也就是4个文件夹——(不知道我的理解有没有问题)我把Dao层/Entity层/Pojo层看成是一样的,里面放实体类,依次声明数据表里的变量,这是第一步;然后再去写Mapper层的接口,只声明就好了,它的实现放在resources/mapper/下的.xml文件实现;接着去Service层,先一个接口文件写接口(似乎是把mapper层的接口抄过来),再一个文件implements实现上一个文件里的接口;最后写Controller层来定义用怎样的链接访问、这个链接访问时如果带了参数怎么处理、访问后我返回什么样的值等等。

感觉有点类似于C++,一个.cpp定义抽象类和虚函数,一个.cpp继承这个抽象类并实现它,一然后来个main函数运筹帷幄。

保留节目

稍微改改就可以变成自己的小程序登录/注册界面啦!

(小插曲:为什么我用input标签e.detail底下没有value啊)

你瞪瞪眼睛看看是bindtap还是bindinput

在自己的电脑上用IJ运行springboot项目,则可以用localhost可以访问来测试效果,别人访问不了;跑在有域名的服务器上就可以像baidu.com、aliyun.com这样输入链接访问了!

一学期,终于在破壁留下了自己的脚印!


尾声——

虽然上学期一门课期中作业要学这个,但终究还是到现在才学会。。。也算是给寒假交点成果叭。感想就是理论性的东西看多了没用,比如前几天找了很多很多的解说文章,啃不动,焦虑,无助,越看越昏...实体类是什么?依赖是什么?Controller层是什么?那么多级文件夹,写在哪个文件里?怎么写?我怎么运行?各种报错?百度分析看不懂?最后通过小破站里一个视频跟着做成功找到了切入口,后续逐渐扩展开了。


写下这篇文章也和去年的遥相呼应,同为寒假同为整活同为开学前匆匆忙忙的收尾,本来截了一个昨天0:34上传成功的图,但是保存退出前手残删掉了,不过也不重要吧。重新去看了感觉去年的文章挺有意思的⺀输给了什么?然后写了长长一片水文,贴图码字潇潇洒洒,本来只是想嘲讽一下自己,现在却已经输的彻彻底底难以抗争了,应该说——这个寒假,后端输给了我。其实想一想这一年似乎我也没经历什么,但是我自己感觉我不像去年了,虽然每次这样想的时候都会觉得自己和之前不一样,但这次觉得差别最大,而且是向不好的地方差出去,比如去年暑假的文章现在依然躺在草稿箱里,比如当昨天这篇文章要写完的时候决定放下来等晚上写(或者说当后天要交的大作业报告要写完的时候跳过来写这篇文章)

其实说来说去争论最大的还是为了什么,也许是空心症?突然有点觉得和高中还有几分相似了,离进高三2年了,这两年就是一个相同点越来越少的过程,绝不能说这是成长,没有干预的成长应该是会有个性越来越鲜明,而不是"我越来越不像了",每次比较都会拿高三的上下半年比较,可能有一天终究会心安理得的接受:我也可以这样的啊。

(当然,怎么才叫像呢?就是用嘲讽的眼光看着上面这段话——想的什么狗屎你脑子有病吧)








破壁小萌新的后端学习路的评论 (共 条)

分享到微博请遵守国家法律