目录
问题点1.注册驱动
问题点2. 获取链接
获取连接这里容易出现的问题:
1. 数据库报错。如下图
2.密码错误:如下图
3. 路由报错。
代码:从注册驱动到释放资源。
常见的 JDBC 报错
问题点1.注册驱动
在MySQL 8.0 之后,注册驱动和连接数据库发生了变化。如果你的MySQL 是 8.0 版本之后的,需要更新驱动才可以,下面是最新的驱动,可直接复制替换自己原来的驱动代码。
Class.forName("com.mysql.cj.jdbc.Driver");
问题点2. 获取链接
顾名思义就是连接数据库。通过DriverManager.getConnection(url,user,password);获得数据库连接对象?
URL:jdbc:mysql://localhost:3306/database
()
user:root
(用户名,root 是 MySQL 默认的用户名)
password:123
(密码:如果你在安装 MySQL? 的时候,更改了密码,在这里一定写上你更改过后的密码,不然连接不上数据库,还报错找不到原因)
获取连接这里容易出现的问题:
1. 数据库报错。如下图
问题发生原因:mysql 里面没有这个数据库,或 这个数据库不在这个用户名下。
解决办法:换一个数据库,或重新创建一个数据库,更或者找到它在哪个用户名下,更改用户名。
2.密码错误:如下图
解决办法:更改正确的密码。要实在忘记正确的密码,可以“使用管理员权限打开命令行,进入 mysql 界面更改密码”?
3. 路由报错。
原因是使用了下面这个路由,但是这个路由在另一个代码里面也勉强能用,同样报错,主要是你想要的结果出来了。如下图
String url = "jdbc:mysql://localhost:3306/jdbc?useUnicode = true & characterEncoding = utf8";
?划红线报错的意思是?java.sql.SQLSyntaxErrorException: Table 'jdbc. sql. sqlsyntaxerrorexception异常。账户不存在。
大体就是你所使用的账户在数据库根本就没有,或者你使用的用户名错了。
然后,我换了一个路由就可以了。如果觉得逻辑不太清晰的,可以到文章后面查看代码,放上的是全部的代码,从注册驱动到释放资源。
String url="jdbc:mysql://127.0.0.1:3306 /biao";
代码:从注册驱动到释放资源。
// 1.注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 2. 获取链接
String url="jdbc:mysql://127.0.0.1:3306 /biao";
String username="root";
String password="****";//(登录mysql的密码)
Connection conn = DriverManager.getConnection(url, username, password);
//3. 定义 sql
String mysql = "update account set money = 2000 where id = 1";
//4. 获取执行 SQL 的对象 Sratement
Statement stmt = conn.createStatement();
// 5。 执行 sql
int count = stmt.executeUpdate(mysql);//受影响的行数
//6. 处理结果
System.out.println(count);
//7。 释放资源
stmt.close();
conn.close();
正确输出:
|