初学Spring + Angular才不到一周时间,刚打开第一个Spring的示例项目,在运行时就出现了错误。
代码如下:
*************************** 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的开发文档很具体,从环境要求到如何建立数据库、如何连接,都说的很清楚,只不过由于是英文,读起来有一些难度。
我们需要找到的,是设置数据库的那个配置文件,所以开发文档中许多内容我们并不需要。
终于,我找到了下面这一段:
大概的翻译内容是: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改成数据库的用户名,第四行是数据库的密码,如下
保存,启动,通过编译
(上图表示成功运行,请勿在意网页内容)
当软件能跑起来之后,继续写代码,却发现真正需要用到数据库的时候,报错了...
“空白页”问题之前出现了很多次,初学的时候不知道报错的关键信息是什么,后来才知道与之前所学的ThinkPHP不同的是,最关键的信息没有放在第一行,而是最后一行的
Failed to obtain JDBC Connection; nested exception is java.sql.SQLSyntaxErrorException: Unknown database 'db_example'
我恍然大悟,它找不到db_example,原来是我由于比较粗心,只改了数据库的地址用户名密码,而忘了改库名...
按照库名修改了配置文件之后:
再次运行,成功显示JSON对象。
细心很重要
曾经学习的ThinkPHP5.1,它的报错界面是这样的:
最醒目的位置,是最重要的信息,然后马上给出报错代码,无疑,这种显示方式,对于小白来说更友好。
当然Spring的这种错误显示方式,或许也有它的道理,至于具体为什么,还要等自己更深入的学习之后才能找到答案。