昨天使用Springboot框架创建了一个类,可以在本地通过浏览器访问程序的返回内容。今天我们继续往下深入。但是在深入前出现了一个小插曲。什么插曲呢,就是按照视频教程,如果通过浏览器访问时添加项目名称,需要在 application.properties中添加访问路径。
按照视频上的,在 application.properties中添加项目名称路径地址,
server.context=/demo 保存并重新运行后,在浏览器中输入地址 http://localhost:8089/malldemo/HelloController 摁下回车后提示 404
奇怪,为什么会404呢,打开firefox的网络检查,提示状态404
404我们都接触过,指的是服务器无法正常提供信息或是服务器无法回应。如果还是用之前的浏览地址 http://localhost:8089/HelloController 返回是 Hello Springboot! 是正常的。说明在application.properties中的设置没有起作用。
上网查下具体的原因,发现可能和使用的Springboot版本有关。视频中springboot使用的版本是1.5.7(可能是视频比较老用的idea的版本也比较老),而我使用的Springboot的版本是2.1.3(怎么查看使用Springboot的版本呢?最简单的就是运行起来在Spring下方看,如图)
看了下网上的教程,如果Springboot版本为2.x以后的,需要这么写:
server.servlet.context-path = malldemo
然后再次运行,额,还是提示报错
注意到在idea的run中提到问题如下:
Caused by: java.lang.IllegalArgumentException: ContextPath must start with '/' and not end with '/'
说明你在设置路径的时候,没有加 "/"
让我们来看看
果然没有加路径! 这里我们需要理解,"/"就是路径的分割线,如果没有的话,就成了 http://localhost:8089malldemoHelloController 这样访问肯定是不行
然后我们修改下
server.servlet.context-path = /malldemo
然后再运行下,干!还是报错~~~ 这是为什么呢?
***************************
APPLICATION FAILED TO START
***************************
Description:
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
Reason: Failed to determine a suitable driver class
我就是修改个项目名称配置而已,不用给这么多报错吧。
上网查了下百思不得其解,然后问了下身边的开发,茅塞顿开。看提示,是说项目的数据库没有配置。然后看了下项目中的pom.xml文件,果然是有mybaties的配置,但是这时候我们还没有配置和连接数据库,所以mybaties的代码可以先删除掉
org.mybatis.spring.boot mybatis-spring-boot-starter 2.1.3
保存(切记,在idea中修改任何东西,都需要保存,Mac的快捷键是 command+ s) 然后再运行下,好的,这时候没有报错了,Springboot也顺利的起来了。然后我们在浏览器中访问下 http://localhost:8089/malldemo/HelloController
哈哈,返回内容显示了显示了,真心不容易呀。
从这里可以看出,Springboot封装的功能特别好,只需要在配置文件中进行修改,就可以在浏览器地址中添加修改后的地址。
框架的搭建完成后,我们来明确下本次需求需要完成的功能点。首先需要完成区域信息的增删改查。这就需要我们对表进行设计和实体类的创建。
我是在mac上操作数据库的,工具使用的是 navicat 也可以安装MySQL的客户端。前段时间学习Java+MySQL真是没有白学呀,正好就派到用场了。
在nivacat中创建数据库连接,正好可以把之前测试学习时使用的数据库都给用上了。
连接名叫什么都可以,但是一定要记住
因为我们目前用的都是本地的数据库,主机为 localhost就可以
端口默认 3306
用户名就是我们在终端中登录时的用户名 root
密码就是数据库登录的密码,这个就不用说是怎么得到的了吧
可以点击左下角测试连接,看看数据库是否是连接的
连接成功,说明连接是OK的!
选择一个数据库(database),如果你喜欢用界面创建数据库表,用界面就可以。如果你喜欢用命令行,高亮所选择的数据库,比如 Hello,然后右键,选择
命令行界面,就会弹出和终端一样的MySQL命令行输入页面,如下图
在这里,我们需要创建一个数据库表
至于为什么要创建这个数据库表,我们稍后再说
创建成功后,我们可以在数据库表中插入数据
数据库这块暂时是完成了,我们在java的springboot架构中怎么去调用呢?
我们在src->main->java->com.example.demo.mall下新建一个package
entity 然后创建一个类 Area
这个类的目的就是创建类变量和数据库中的字段一一对应,然后操作这些数据。
import java.util.Date;
//分别对应数据库中的字段 area_id area_name priority create_time last_edit_time
public class Area {
//主键ID
private Integer areaId;
//名称
private String areaName;
//权重 越大越排前显示
private Integer priority;
//创建时间
private Date createTime;
//更新时间
private Date lastEditTime;
}
好了,今天就到这里了,我们明天见~~~