天知道,我是刚刚入门SQL基本操作之后照着《java入门到精通》学习连接数据库的一个小白,连加载驱动程序都不会的,把代码照着敲了一遍结果肯定报错啊!然后就一个个问题,解决,最后连接成功啦!大神勿喷
前提——学一学MYSQL基本语法和操作:
想要连接数据库,前提得是你安装成功了数据库,不会安装的参见此大神的帖子,图多详尽,MYSQL入门必备:
https://zhuanlan.zhihu.com/p/31041165
开始——简单的JDBC连接示例1
下面代码是我参照《Java入门到精通》这本书,章节20,过程中出了很多错,慢慢调试到最后也就连接成功啦!
import java.sql.*;
public class Conn {
static Connection con;
public static void main(String[] args) {
Conn c = new Conn();
c.getConnection();
}
public Connection getConnection(){
try{
Class.forName("com.mysql.jdbc.Driver");
System.out.println("数据库驱动加载成功");
}catch(ClassNotFoundException e){
e.printStackTrace();
}
try{
con = DriverManager.getConnection("jdbc:mysql:" + "//localhost:3306/tysql?useSSL=false","root","12345678"); //一定要改成自己的数据库tysql,用户:root,密码:
System.out.println("数据库连接成功");
}catch(SQLException e){
e.printStackTrace();
}
return con;
}
}
error 1:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
如果你也像我一样简简单单照着书打了一遍关于连接数据库的代码,恭喜你会遇到第一个error:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver,也就是提示找不到这个驱动包
解决方法:
1.官网下载:
https://dev.mysql.com/downloads/connector/j/5.1.html
选择合适的版本,因为我也不知道啥子版本合适,我就下载最新版本
2.解压加载
将下载的压缩包解压在合适的路径,这个路径一会儿要用来加载文件,慎选哦!
然后打开elicpse
新建的项目->project->properties->java build path->libraries->add external jars
然后将解压出的mysql-connector-java-5.1.46.jar文件添加进去。
yeah!加载进去了也,应该木有问题了撒!
恭喜,又报错了!
error 2.
WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
百度了下,发现问题是mysql5.5.45之后的版本要求建立的连接指明是否为ssl 连接?
回头看了一眼我的mysql,5.7的难怪会报错
解决方法:在URL 后面加上参数useSSL=false 或者useSSL=true 可解决
即,图中代码行:
//localhost:3306/test
后面要加上?useSSL=false
或者?useSSL=true
变为
con = DriverManager.getConnection("jdbc:mysql:" + "//localhost:3306/test?useSSL=false","root","12345678");
这下应该没毛病了吧!run一下
error 3:Unknown database 'test'
找不到数据库,当然找不到啊,回头看了一眼自己数据库
对呀,你都没有test这个数据库,人家咋给你连接嘛!
con = DriverManager.getConnection("jdbc:mysql:" + "//localhost:3306/test?useSSL=false","root","12345678");
里面一定要记得改成,自己建立好了的数据库和用户名,还有密码
127.0.0.1 : 就是指的你本机, 本地的意思 ,当然你也可以改成localhost 也是一样的意思。
3306 : 是mysql的默认端口,除非你安装了mysql后手动修改过端口,没修改都是3306,这个没说的
test : 要连接的数据库名
root : 数据库用户名
12345678 :数据库密码
在运行一下,没毛病啦!
好,继续升级……