转载

初学Spring——连接MySQL数据库的问题和解决

零:前言

初学Spring + Angular才不到一周时间,刚打开第一个Spring的示例项目,在运行时就出现了错误。

初学Spring——连接MySQL数据库的问题和解决

代码如下:

***************************
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


Action:

Consider the following:
    If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
    If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).

Disconnected from the target VM, address: '127.0.0.1:50367', transport: 'socket'

Process finished with exit code 1

又重新看了一次我所学习的 教程 ,教程中只给了一个Spring开发手册的链接,却没有给出连接数据库的具体步骤,或许,老师的意思,是想让我们看开发文档自己学习。

初学Spring——连接MySQL数据库的问题和解决

于是,我打开了这个链接

初学Spring——连接MySQL数据库的问题和解决

Spring的开发文档很具体,从环境要求到如何建立数据库、如何连接,都说的很清楚,只不过由于是英文,读起来有一些难度。

一:连接数据库

我们需要找到的,是设置数据库的那个配置文件,所以开发文档中许多内容我们并不需要。

终于,我找到了下面这一段:

初学Spring——连接MySQL数据库的问题和解决

大概的翻译内容是:Spring给你提供了许多的默认设置,然而,对于数据库的配置你需要自己来进行。然后把这一段代码放在配置文件中:

spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/db_example
spring.datasource.username=springuser
spring.datasource.password=ThePassword

我们需要把第二行的 localhost 改成自己的地址。

把第三行的username改成数据库的用户名,第四行是数据库的密码,如下

初学Spring——连接MySQL数据库的问题和解决

保存,启动,通过编译

初学Spring——连接MySQL数据库的问题和解决

(上图表示成功运行,请勿在意网页内容)

二、遇到错误以及解决

当软件能跑起来之后,继续写代码,却发现真正需要用到数据库的时候,报错了...

初学Spring——连接MySQL数据库的问题和解决

“空白页”问题之前出现了很多次,初学的时候不知道报错的关键信息是什么,后来才知道与之前所学的ThinkPHP不同的是,最关键的信息没有放在第一行,而是最后一行的 Failed to obtain JDBC Connection; nested exception is java.sql.SQLSyntaxErrorException: Unknown database 'db_example'

我恍然大悟,它找不到db_example,原来是我由于比较粗心,只改了数据库的地址用户名密码,而忘了改库名...

初学Spring——连接MySQL数据库的问题和解决

按照库名修改了配置文件之后:

初学Spring——连接MySQL数据库的问题和解决

再次运行,成功显示JSON对象。

初学Spring——连接MySQL数据库的问题和解决

细心很重要

后记

曾经学习的ThinkPHP5.1,它的报错界面是这样的:

初学Spring——连接MySQL数据库的问题和解决

最醒目的位置,是最重要的信息,然后马上给出报错代码,无疑,这种显示方式,对于小白来说更友好。

当然Spring的这种错误显示方式,或许也有它的道理,至于具体为什么,还要等自己更深入的学习之后才能找到答案。

原文  https://segmentfault.com/a/1190000021069295
正文到此结束
Loading...