数据库连接字符串:‘:’和‘/’

crslee 2014-07-14 06:02:43
jdbc:mysql://localhost:3306/testDatabase("jdbc:mysql://localhost:3306:testDatabase","root","root"):
连接数据库出错,程序报错如下:
java.sql.SQLException: Illegal connection port value '3306:test'
但是如果把3306和testDatabase之间的‘:’改为‘/’,就可以成功连接了。
DriverManager.getConnection("jdbc:mysql://localhost:3306/testDatabase","root","root"):
testDatabase为数据库名,root和root 为用户名和密码
这是为什么呢?
...全文
387 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
这是因为它的连接数据库的jar里面的方法,是按照这个格式去解析的,即它给出的接口是这样,你用它的jar包,你就得这样。 要么你自己写一个连接数据库的jar包,那你就可以改了。 不过这些jar一般是数据库产商按照java提供的API和自己的硬件的机器语言来写的,这些你不知道的话,你也写不出来。 所以没必要纠结这些格式,知道原理就行了。
酷酷的糖先森 2014-07-16
  • 打赏
  • 举报
回复
不用纠结这种问题的;
oh_Maxy 2014-07-16
  • 打赏
  • 举报
回复
LZ看书不仔细
-江沐风- 2014-07-16
  • 打赏
  • 举报
回复
不用纠结这种问题的;
陌城 2014-07-16
  • 打赏
  • 举报
回复
遵循规定就可以了
LOVE-漂泊 2014-07-16
  • 打赏
  • 举报
回复
、、、、、这个是规定的 咱们只是学习前人总结好的 当你有一定水平了 你可以提出质疑
vnvlyp 2014-07-14
  • 打赏
  • 举报
回复
mysql://本质上还是一个标准URL,和HTTP网页的URL是同一个标准,你看到过http://xxx:xxx:xxx这种形式的网址吗?这明显就是不合法的。。 URL基本组成是 <scheme>:<scheme-specific-part> 其中scheme指http ftp mysql等可以理解为协议标准 scheme-specific-part指具体协议下的格式,不同协议可能有略微区别,但大致是 //<user>:<password>@<host>:<port>/<url-path> 具体URL规范请看RFC1738
tongyuehong 2014-07-14
  • 打赏
  • 举报
回复
DriverManager.getConnection("jdbc:mysql://localhost:3306/testDatabase","root","root"): 首先,jdbc:mysql表示是什么数据库,如果是sqlserver那么就是jdbc:sqlserver:xxx; 其次,localhost:3306表示是当前你的主机,也就是本机,要是你的数据库在别的服务器上,那么localhost就要改成数据库服务器的IP地址,3306表示的是本机的3306号端口,只有主机和端口号之间是使用冒号“:”表示的; 再次,testDatabase表示数据库名,就是说这个数据库建立在本机,可以使用3306号端口去访问数据库; 最后,两个引号是表示用户名和密码。
CarlXie 2014-07-14
  • 打赏
  • 举报
回复
这东西没有什么为什么,只有一个原因,这个API接口就是这样定义的。内部对字符串的解析处理是按这个格式,或者是pattern来做的。就和欧阳修,为什么姓的是欧阳,而不是姓欧一样。
姜小白- 2014-07-14
  • 打赏
  • 举报
回复
额 就这么规定的 就像通过http访问页面时,http://localhost:8080/ 一样 然后 可以在斜线后面跟项目名 http://localhost:8080/servlet 不必纠结这个东西

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧