项目场景:
Mysql 数据库 和 My Eclipse 的驱动连接
问题描述:
问题一:
数据库开始没有连接成功
private DBSrvice{
private static String DBDRIVER="com.mysql.jdbc.Driver";
private static String DBURL = "jdbc:mysql://localhost:3306/booklib";
private static String USERNAME = "root";`
private static String PASSWORD = "xxxxx";
}
解决:
原因是因为用的Mysql8.0 驱动装的 5.1.29在将驱动换为8.0.25后,还是连接报错:版本错误,原因是jdk运行环境与驱动不匹配,驱动要求的运行环境在1.8以上,myeclipse的环境为jdk1.7
在将驱动换为5.1.46后,连接成功
驱动包为5.1.29的报错:not create connection to database server
驱动包为8.0.25的报错:Exception in thread “main” java.lang.UnsupportedClassVersionError: com/mysql/jdbc/Driver : Unsupported major.minor version 52.0
附:MySql驱动包的下载地址
https://downloads.mysql.com/archives/c-j/
问题二:
数据库连接成功,可以正常运行,但会有数据库访问警告!
private static String DBURL = "jdbc:mysql://localhost:3306/booklib";
解决:用户名后加?useSSL=false解决数据库访问警告问题
private static String DBURL = “jdbc:mysql://localhost:3306/booklib?useSSL=false”;
问题三:
public static void main(String[] args) {
DBService db = DBService.getInstance();
/*
String sql = "Select * from book";
List<Map> list = db.executeSelect(sql);
System.out.println(list.size());
//增加数据加上id可以成功,应该是没有设置id自增
sql = "insert into book(name,price,author) values('qwerasd','123','xiao')";
db.executeSql(sql);
*/
//在将前面的语句隐藏之后可以执行查询命令,问题原因是:定义的sql冲突了
String sql = "select *from book";
List<Map>list1 = db.executeSelect(sql);
System.out.println(list1.size());
for(Map map:list1){
System.out.println(map.get("ID")+"---"+map.get("name")+"---"+map.get("price"));
}