问题描述
jdbc:mysql://localhost:3306/testDatabase("jdbc:mysql://localhost:3306:testDatabase","root","root"):连接数据库出错,程序报错如下:java.sql.SQLException:Illegalconnectionportvalue'3306:test'但是如果把3306和testDatabase之间的‘:’改为‘/’,就可以成功连接了。DriverManager.getConnection("jdbc:mysql://localhost:3306/testDatabase","root","root"):testDatabase为数据库名,root和root为用户名和密码这是为什么呢?
解决方案
解决方案二:
额就这么规定的就像通过http访问页面时,http://localhost:8080/一样然后可以在斜线后面跟项目名http://localhost:8080/servlet不必纠结这个东西
解决方案三:
这东西没有什么为什么,只有一个原因,这个API接口就是这样定义的。内部对字符串的解析处理是按这个格式,或者是pattern来做的。就和欧阳修,为什么姓的是欧阳,而不是姓欧一样。
解决方案四:
DriverManager.getConnection("jdbc:mysql://localhost:3306/testDatabase","root","root"):首先,jdbc:mysql表示是什么数据库,如果是sqlserver那么就是jdbc:sqlserver:xxx;其次,localhost:3306表示是当前你的主机,也就是本机,要是你的数据库在别的服务器上,那么localhost就要改成数据库服务器的IP地址,3306表示的是本机的3306号端口,只有主机和端口号之间是使用冒号“:”表示的;再次,testDatabase表示数据库名,就是说这个数据库建立在本机,可以使用3306号端口去访问数据库;最后,两个引号是表示用户名和密码。
解决方案五:
mysql://本质上还是一个标准URL,和HTTP网页的URL是同一个标准,你看到过http://xxx:xxx:xxx这种形式的网址吗?这明显就是不合法的。。URL基本组成是<scheme>:<scheme-specific-part>其中scheme指httpftpmysql等可以理解为协议标准scheme-specific-part指具体协议下的格式,不同协议可能有略微区别,但大致是//<user>:<password>@<host>:<port>/<url-path>具体URL规范请看
解决方案六:
、、、、、这个是规定的咱们只是学习前人总结好的当你有一定水平了你可以提出质疑
解决方案七:
遵循规定就可以了
解决方案八:
不用纠结这种问题的;
解决方案九:
LZ看书不仔细
解决方案十:
不用纠结这种问题的;
解决方案十一:
这是因为它的连接数据库的jar里面的方法,是按照这个格式去解析的,即它给出的接口是这样,你用它的jar包,你就得这样。要么你自己写一个连接数据库的jar包,那你就可以改了。不过这些jar一般是数据库产商按照java提供的API和自己的硬件的机器语言来写的,这些你不知道的话,你也写不出来。所以没必要纠结这些格式,知道原理就行了。