java的JDBC连接数据库,代码错误,而一直现实空指针(conn=null)

java的JDBC连接数据库,代码错误,而一直现实空指针(conn=null)

最近我在学习 java的JDBC连接数据库时,明明看的和视频中老师讲的代码一模一样,而且就连My SQL,jar包,Navicat软件(这个软件是为了方便不会MySQL语言的人)版本也一样,但是还是会出现这的异常提示:

在这里插入图片描述

我Debug(调试以后)发现conn的值是null(空),于是我复制下这异常提示,百度找问题,但是解答都是这样的
在这里插入图片描述

后来找了一天,全都是这的提示,再后来也改了JDBC连接中的数据库名的格式什么的,改了一天硬是没有找见问题。
晚上我关了电脑想了想,会不会是别的问题,大家还没有找见。

于是我就查了Connector / J版本以及它们所需的MySQL和Java版本

在这里插入图片描述
本图片截取于MySQL的官网

我发现版本不对也会出现这样的异常提示,因为我的jdk用的是6.0还是7.0来(忘了),而我下的连接器/ J版本 , JDBC版本,MySQL服务器版本都是最新版本,结果无法匹配,输出代码后就出现了上面的异常。
所以大家如果jdk版本低于8.0的话就别用8.0以上的jar包(连接器)
用5.0以上的就可以。
今天我在CSDN网站中找到了5.0的JDBC连接的方式的代码
下面(这是这位网友的代码):

 package sqldstudent;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
 public class main {
     public static void main(String[] args) {
         //声明Connection对象
         Connection con;
         //驱动程序名
         String driver = "com.mysql.jdbc.Driver";
         //URL指向要访问的数据库名mydata
         String url = "jdbc:mysql://localhost:3306/mysql";
         //MySQL配置时的用户名
         String user = "root";
         //MySQL配置时的密码
         String password = "****";
         //遍历查询结果集
         try {
             //加载驱动程序
             Class.forName(driver);            
             //1.getConnection()方法,连接MySQL数据库!!
             con = DriverManager.getConnection(url,user,password);
             if(!con.isClosed())
                 System.out.println("Succeeded connecting to the Database!");
             //2.创建statement类对象,用来执行SQL语句!!
             Statement statement = con.createStatement();
             //要执行的SQL语句
             String sql = "select * from student";
             //3.ResultSet类,用来存放获取的结果集!!
             ResultSet rs = statement.executeQuery(sql);
             System.out.println("--------------------------------------");
             System.out.println("执行结果如下所示:");  
             System.out.println("------------------------");  
             System.out.println("学号" + "\t" + "姓名" + "\t" + "性别" + "\t" + "年龄");  
             System.out.println("--------------------------------------");  
             String name= null;
             String id = null;
             String sex = null;
             String age = null;
             while(rs.next()){
            	 //获取sno这列数据
                 id = rs.getString("sno");
                 //获取sname这列数据
                 name = rs.getString("sname");
                 //获取sex这列数据
                 sex = rs.getString("sex");
                 //获取age这列数据
                 age = rs.getString("age");
                 //输出结果
                 System.out.println(id + "\t" + name + "\t" + sex + "\t" + age);
             }
             rs.close();
             con.close();
         } catch(ClassNotFoundException e) {   
             //数据库驱动类异常处理
             System.out.println("Sorry,can`t find the Driver!");   
             e.printStackTrace();   
             } catch(SQLException e) {
             //数据库连接失败异常处理
             e.printStackTrace();  
             }catch (Exception e) {
             // TODO: handle exception
             e.printStackTrace();
         }
         finally{
             System.out.println("数据库数据成功获取!!");
         }
     }
 
 }

在这里插入图片描述
这是他的文章和网名,我看过他的其他文章,很努力的以为IT人员

以上是我最近发现的问题,希望有和我一样的小白看到文章对你们有所帮助,解决问题是痛苦的,但是消灭问题是快乐的。

谢谢大家欣赏


版权声明:本文为qq_40857374原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。