报空指针异常= =

报空指针异常= =

package com.jdbc;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;

public class JDBCUntil {
	//采用属性文件对下面的变量赋值
	private static final String driverClass;
	private static final String url;
	private static final String username;
	private static final String password;
	static {
		//加载属性文件并解析
		Properties props=new Properties();
		InputStream is=JDBCUntil.class.getClassLoader().getResourceAsStream("jdbc.properties");
		try {
			props.load(is);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		driverClass=props.getProperty("driverClass");
		url=props.getProperty("url");
		username=props.getProperty("username");
		password=props.getProperty("password");
	}
	
//注册驱动方法
	public static void loadDriver() throws ClassNotFoundException {
		Class.forName(driverClass);
	}
	//获得连接的方法
	public static Connection getConnection() {
	   try {
		loadDriver();
	} catch (ClassNotFoundException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
		Connection conn = null;
		try {
			conn = DriverManager.getConnection(url,username,password);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return conn;}
	
	//释放空间两种方法
	public static void release(Statement stmt,Connection conn) {
		if(stmt!=null) {
			try {
				stmt.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			stmt=null;
		}
		if(conn!=null) {
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			conn=null;
		}
}
	public static void release(Statement stmt,Connection conn,ResultSet result) {
		if(result!=null) {
			try {
				result.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			result=null;
		}
		if(stmt!=null) {
			try {
				stmt.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			stmt=null;
		}
		if(conn!=null) {
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			conn=null;
		}
}
}

上面是我编写的工具类

之后是调用的代码

package com.jdbc;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

public class Jdbcuntildemo {

	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
     JDBCUntil ju=new  JDBCUntil();
     //1.获取连接,并加载驱动
      Connection conn=  ju.getConnection();
     //2.获取操作语句
      
      String sql="select * from user";
     Statement stmt=conn.createStatement();
     ResultSet result=stmt.executeQuery(sql);
     if(result.next()) {
    	 System.out.println(result.getObject("userid")+"      "+result.getObject("password"));
     }
     ju.release(stmt, conn, result);
	}

}

附上属性文档

drivaerClass=com.mysql.jdbc.Driver

url=jdbc:mysql:///jdbctest

username=root

password=123456

结果报空指针异常= =,会不会是读取属性文件的时候出错了呢?但是没有发现哪里有错误啊

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
提问者 我叫飞天德 2019-04-10 21:55:19

好吧 虽然是不报空指针异常了 但还是报了一大段异常,还请老师帮忙看一下= =

  • 提问者 我叫飞天德 #1
    修改了一下url解决了问题,这次的问题全是出在了属性文档上
    2019-04-10 21:57:22
提问者 我叫飞天德 2019-04-10 21:53:10

已解决 原来是属性文档上的字打错了

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Java数据库开发与实战应用2018版
  • 参与学习           人
  • 提交作业       277    份
  • 解答问题       4297    个

Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师