开始直接在main方法抛异常,结果jvm停了,换了try catch抛,发现是SQLException,以为是url出了问题照着网上写的,加wait_timeout,重启,还是不行
然后让输出堆栈信息,发现是这样的
上网查了查建议我
可我已经加了,又查了查,怀疑是这个问题
发现自己傻了,我的是ini配置的。
一气之下给ssl改成true,发现这回不是之前那个报错了,只显示transport: ‘socket’,上网搜,别人也是稀里糊涂搞出来的,说是把其他项目关了就好了,关了以后改成false,欸,出来了!但是我不晓得为啥还有transport: ‘socket’,以及disconnected,继续参考
然后我把idea关掉,再打开,好了,世界和平
附上自己写的简单代码
import java.sql.*;
public class New {
public static void main(String[] args){
try {
Class.forName("com.mysql.jdbc.Driver");//注册数据库的驱动
//获取数据库连接
Connection con = DriverManager.getConnection("jdbc:mysql:/localhost:3506/join?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8", "root", "password");
//需要执行的sql语句
String sql = "select * from my_employees";
//获取预处理对象
PreparedStatement statement = con.prepareStatement(sql);
//执行sql语句
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
//如果有下一条记录
String id = resultSet.getString("id");//根据列名返回值
String First_name = resultSet.getString("First_name");
String Last_name = resultSet.getString("Last_name");
String Userid = resultSet.getString("Userid");
int Salary = resultSet.getInt(5);//根据列的顺序返回值
System.out.println(id + "\t" + First_name + "\t" + Last_name + "\t" + "Userid" + "\t" + "Salary");
}
//关闭jdbc连接;
resultSet.close();
statement.close();
con.close();
}catch ( ClassNotFoundException e)
{
System.out.println("1");
}catch (SQLException e)
{
System.out.println("2");
e.getStackTrace();
}
}
}
感谢帮助我的小伙伴和以下链接:
https://blog.csdn.net/a704397849/article/details/89378931
https://www.cnblogs.com/hafiz/p/5879432.html