读取数据库连接配置文件

时间:2021-02-01 11:59:57
java.lang.NullPointerException 怎么回事?高手
public class XczyDao {
private Connection con = null;
 private String url;//数据库URL
private String username;//登录数据库用户名
private String password;//用户密码
private String driverClassName;//用户密码
/**
  * 返回到数据库的一个连接,在一个系统或类中,如果经常进行数据库的相关操作
  * 会把建立数据库的连接作为一个单独的方法。
  */
 public void initConnection()throws Exception{
  getProperty();
 try
  {
 Class.forName("driverClassName");
    con = DriverManager.getConnection(url, username, password);
  }
  catch(SQLException e) {}
    
  }
 
 /**
  * 读取属性配置文件
  */
 private void getProperty()
 {
  Properties prop = new Properties();
  try
  {
   InputStream in = this.getClass().getResourceAsStream("/Config.properties");
   prop.load(in);
   driverClassName = prop.getProperty("driverClassName");
   url = prop.getProperty("url");
   username = prop.getProperty("username");
   password = prop.getProperty("password");   
  }
  catch(IOException e)
  {
   e.printStackTrace();
  }
 }
Config.properties
 driverClassName=oracle.jdbc.driver.OracleDriver  
  url=jdbc:oracle:thin:@10.224.3.52:1521:ora9i2 
  username=yz 
  password=yz 

10 个解决方案

#1


Class.forName("driverClassName"); 
这里的driverClassName应该是一个变量名吧,
把引号去掉。

#2



Enumeration propNames = props.propertyNames();
while (propNames.hasMoreElements()) {
driverClassName = prop.getProperty("driverClassName"); 
  url = prop.getProperty("url"); 
  username = prop.getProperty("username"); 
  password = prop.getProperty("password");  





试试...吧..不行继续百度..

#3


java.lang.NullPointerException 怎么回事?高手 
public class XczyDao { 
private Connection con = null; 
private String url;//数据库URL 
private String username;//登录数据库用户名 
private String password;//用户密码 
private String driverClassName;//驱动
/** 
  * 返回到数据库的一个连接,在一个系统或类中,如果经常进行数据库的相关操作 
  * 会把建立数据库的连接作为一个单独的方法。 
  */ 
public void initConnection()throws Exception{ 
  getProperty(); 
try 
  { 
Class.forName(driverClassName); 
    con = DriverManager.getConnection(url, username, password); 
  } 
  catch(SQLException e) {} 
    
  } 

/** 
  * 读取属性配置文件 
  */ 
private void getProperty() 

  Properties prop = new Properties(); 
  try 
  { 
  InputStream in = this.getClass().getResourceAsStream("/Config.properties"); 
  prop.load(in); 
  driverClassName = prop.getProperty("driverClassName"); 
  url = prop.getProperty("url"); 
  username = prop.getProperty("username"); 
  password = prop.getProperty("password");  
  } 
  catch(IOException e) 
  { 
  e.printStackTrace(); 
  } 

Config.properties 
driverClassName=oracle.jdbc.driver.OracleDriver  
  url=jdbc:oracle:thin:@10.224.3.52:1521:ora9i2 
  username=yz 
  password=yz 

#4


增加此语句试试driverClassName="oracle.jdbc.driver.OracleDriver";
不行的话写一个连接Oracle的JSP程序test.jsp试试看,这样可以保证你完全搞懂jsp是如何连接oracle的。
1、连入SQL*Plus
以system/manager用户登录,
SQL> conn system/manager
创建新的用户:如user1/pass1,赋予connect,resource权限。
SQL> grant connect,resource to user1 identified by pass1;
SQL> conn user1/pass1
SQL> create table test(a number,b char(10));
SQL> insert into test values(1,\"一\");
SQL> insert into test values(2,\"二\");
SQL> insert into test values(3,\"三\");
SQL> commit;
SQL> select * from test; 

A B
---------- ----------
1 一
2 二
3 三
2、配置ODBC(在服务器端设置)
开始->设置->控制面板->管理工具->数据源 (ODBC)->系统DSN->添加->
选择“Oracle ODBC Driver”->完成->
Data Source Name:test名字随便取,好记就行,如:test
Service Name:oradb Oracle数据库的实例名,本例:oradb,一般Oracle默认安装为ORCL
UserID:user1 Oracle用户名,本例:user1
按“OK”->按“确定”退出

3、在C:\JBuilder4\tomcat\webapps\test下创建test.jsp,用notebook编辑,输入以下代码
<!--首先导入一些必要的packages-->
<%@ page info=\"database handler\"%>
<%@ page import=\"java.io.*\"%>
<%@ page import=\"java.util.*\"%>
<!--告诉编译器使用SQL包-->
<%@ page import=\"java.sql.*\"%>
<%@ page import=\"javax.servlet.*\"%>
<%@ page import=\"javax.servlet.http.*\"%> 
网管网www.bitscn.com
<%
//以try开始
try
{
Connection con;
Statement stmt;
ResultSet rs;
//加载驱动程序,下面的代码为加载JDBD-ODBC驱动程序
Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");
//用适当的驱动程序连接到数据库,test\"是系统dsn名
String url=\"jdbc:odbc:test\";
//建立连接,类似于ASP中的创建数据库联接
con=DriverManager.getConnection(url, \"user1\", \"pass1\");
//创建一个JDBC声明
stmt = con.createStatement();
//增加新记录
stmt.executeUpdate(\"INSERT INTO test (a,b) VALUES (1,\"2\")\");
//查询记录
rs = stmt.executeQuery(\"SELECT a,b from test\");
//输出查询结果
out.println(\"<table border=1 width=400>\");
while (rs.next())
{
String col1 = rs.getString(1);
String col2 = rs.getString(2);
//打印所显示的数据
out.println(\"<tr><td>\"+col1+\"</td><td>\"+col2+\"</td></tr>\"); 网管联盟bitsCN_com 
}
out.println(\"</table>\");
}
//如果加载时出错,给出相应的错误信息
catch (Exception e) {}
%>
4、打开一个浏览器窗口,输入以下地址来查看运行结果
http://localhost:8080/test/test.jsp 
转自www.bitsCN.com

#5


  给个出错的详细堆栈信息吧 
  另外检查一下连接数据库的包是否放在指定位置

#6


空指针,觉得没读到内容。
别的没看出来。

#7


应该把错误代码贴上。

#8


看出现的错误是空指针....

如果是少驱动包的话,会报SQLEXCETION.
估计是下面这里出现空的情况.....


InputStream in = this.getClass().getResourceAsStream("/Config.properties"); 
  prop.load(in); 

具体还要把详细错误代码

#9


空指针异常.你试着跟踪查找错误.看到底执行到哪儿出现的问题.
有可能是你的数据库没有连上.
你把private改成public试试看.

#10


把错误信息完全贴上来啊

#1


Class.forName("driverClassName"); 
这里的driverClassName应该是一个变量名吧,
把引号去掉。

#2



Enumeration propNames = props.propertyNames();
while (propNames.hasMoreElements()) {
driverClassName = prop.getProperty("driverClassName"); 
  url = prop.getProperty("url"); 
  username = prop.getProperty("username"); 
  password = prop.getProperty("password");  





试试...吧..不行继续百度..

#3


java.lang.NullPointerException 怎么回事?高手 
public class XczyDao { 
private Connection con = null; 
private String url;//数据库URL 
private String username;//登录数据库用户名 
private String password;//用户密码 
private String driverClassName;//驱动
/** 
  * 返回到数据库的一个连接,在一个系统或类中,如果经常进行数据库的相关操作 
  * 会把建立数据库的连接作为一个单独的方法。 
  */ 
public void initConnection()throws Exception{ 
  getProperty(); 
try 
  { 
Class.forName(driverClassName); 
    con = DriverManager.getConnection(url, username, password); 
  } 
  catch(SQLException e) {} 
    
  } 

/** 
  * 读取属性配置文件 
  */ 
private void getProperty() 

  Properties prop = new Properties(); 
  try 
  { 
  InputStream in = this.getClass().getResourceAsStream("/Config.properties"); 
  prop.load(in); 
  driverClassName = prop.getProperty("driverClassName"); 
  url = prop.getProperty("url"); 
  username = prop.getProperty("username"); 
  password = prop.getProperty("password");  
  } 
  catch(IOException e) 
  { 
  e.printStackTrace(); 
  } 

Config.properties 
driverClassName=oracle.jdbc.driver.OracleDriver  
  url=jdbc:oracle:thin:@10.224.3.52:1521:ora9i2 
  username=yz 
  password=yz 

#4


增加此语句试试driverClassName="oracle.jdbc.driver.OracleDriver";
不行的话写一个连接Oracle的JSP程序test.jsp试试看,这样可以保证你完全搞懂jsp是如何连接oracle的。
1、连入SQL*Plus
以system/manager用户登录,
SQL> conn system/manager
创建新的用户:如user1/pass1,赋予connect,resource权限。
SQL> grant connect,resource to user1 identified by pass1;
SQL> conn user1/pass1
SQL> create table test(a number,b char(10));
SQL> insert into test values(1,\"一\");
SQL> insert into test values(2,\"二\");
SQL> insert into test values(3,\"三\");
SQL> commit;
SQL> select * from test; 

A B
---------- ----------
1 一
2 二
3 三
2、配置ODBC(在服务器端设置)
开始->设置->控制面板->管理工具->数据源 (ODBC)->系统DSN->添加->
选择“Oracle ODBC Driver”->完成->
Data Source Name:test名字随便取,好记就行,如:test
Service Name:oradb Oracle数据库的实例名,本例:oradb,一般Oracle默认安装为ORCL
UserID:user1 Oracle用户名,本例:user1
按“OK”->按“确定”退出

3、在C:\JBuilder4\tomcat\webapps\test下创建test.jsp,用notebook编辑,输入以下代码
<!--首先导入一些必要的packages-->
<%@ page info=\"database handler\"%>
<%@ page import=\"java.io.*\"%>
<%@ page import=\"java.util.*\"%>
<!--告诉编译器使用SQL包-->
<%@ page import=\"java.sql.*\"%>
<%@ page import=\"javax.servlet.*\"%>
<%@ page import=\"javax.servlet.http.*\"%> 
网管网www.bitscn.com
<%
//以try开始
try
{
Connection con;
Statement stmt;
ResultSet rs;
//加载驱动程序,下面的代码为加载JDBD-ODBC驱动程序
Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");
//用适当的驱动程序连接到数据库,test\"是系统dsn名
String url=\"jdbc:odbc:test\";
//建立连接,类似于ASP中的创建数据库联接
con=DriverManager.getConnection(url, \"user1\", \"pass1\");
//创建一个JDBC声明
stmt = con.createStatement();
//增加新记录
stmt.executeUpdate(\"INSERT INTO test (a,b) VALUES (1,\"2\")\");
//查询记录
rs = stmt.executeQuery(\"SELECT a,b from test\");
//输出查询结果
out.println(\"<table border=1 width=400>\");
while (rs.next())
{
String col1 = rs.getString(1);
String col2 = rs.getString(2);
//打印所显示的数据
out.println(\"<tr><td>\"+col1+\"</td><td>\"+col2+\"</td></tr>\"); 网管联盟bitsCN_com 
}
out.println(\"</table>\");
}
//如果加载时出错,给出相应的错误信息
catch (Exception e) {}
%>
4、打开一个浏览器窗口,输入以下地址来查看运行结果
http://localhost:8080/test/test.jsp 
转自www.bitsCN.com

#5


  给个出错的详细堆栈信息吧 
  另外检查一下连接数据库的包是否放在指定位置

#6


空指针,觉得没读到内容。
别的没看出来。

#7


应该把错误代码贴上。

#8


看出现的错误是空指针....

如果是少驱动包的话,会报SQLEXCETION.
估计是下面这里出现空的情况.....


InputStream in = this.getClass().getResourceAsStream("/Config.properties"); 
  prop.load(in); 

具体还要把详细错误代码

#9


空指针异常.你试着跟踪查找错误.看到底执行到哪儿出现的问题.
有可能是你的数据库没有连上.
你把private改成public试试看.

#10


把错误信息完全贴上来啊