我链接数据库的代码如下:
package connection;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;public class ConnectionManager 
{
private static Connection conn;
public static Connection getConnection()
{


try 
{
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();


catch (InstantiationException e) 
{ e.printStackTrace();
}
catch (IllegalAccessException e) 
{
e.printStackTrace(); } 
catch (ClassNotFoundException e) 
{ e.printStackTrace();
}
//加载驱动
String url="jdbc:oracle:thin:@localhost:1521:mldn";    //1521是端口  orcl是数据库名称
String user="mldn";String password="oracleadmin";     //用户名  密码
try
{
Connection conn= DriverManager.getConnection(url,user,password);
} catch (SQLException e)
{

e.printStackTrace();
} //创建链接 



  return conn;
} public static void destory()
{
try
{
conn.close();//关闭数据库

}catch(SQLException e)
{

e.printStackTrace();

}


}










}查询代码:
package connection;import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class ResultSetTest 
{
public static void main(String[]args)
{
Connection conn = ConnectionManager.getConnection();
Statement st=null;
try
{
st= conn.createStatement();
//执行查询操作并将结果存入ResultSet中
ResultSet rs=st.executeQuery("select * from emp");
//判断rs是否有下一笔记录
while(rs.next())
{
String name = rs.getString("ename");

System.out.println("雇员的姓名是:" + name);

}

}
catch(SQLException e)
{

e.printStackTrace();

}
finally
{
try
{
st.close();
conn.close();

}
catch(SQLException e)
{
e.printStackTrace();

}


}








}


}启动后总是报这样的错误,不知道原因,请牛人,高手指教!多谢多谢!java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was:
localhost:1521:mldn at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:260)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:386)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:413)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:164)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:34)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:752)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at connection.ConnectionManager.getConnection(ConnectionManager.java:39)
at connection.ResultSetTest.main(ResultSetTest.java:12)
Exception in thread "main" java.lang.NullPointerException
at connection.ResultSetTest.main(ResultSetTest.java:39)

解决方案 »

  1.   

    try
    {
    Connection conn= DriverManager.getConnection(url,user,password);
    } catch (SQLException e)
    {e.printStackTrace();
    } //创建链接  return conn;
    }conn 已经定义了 就不要重新定义了吧?
    改成这样看看
    conn= DriverManager.getConnection(url,user,password);
      

  2.   

    貌似你的实例名错了吧
    去数据库查下
    select   *   from   v$instance
      

  3.   

    监听器文件中GLOBAL_DBNAME,SID_NAME 是mldn吗?
      

  4.   

    Connection conn = ConnectionManager.getConnection();
    这句话 conn 是个空吧!
      

  5.   

    mldn你的 oracle中有这个数据库么 ?你到服务中找找有没有OracleServicemldn这个服务
      

  6.   

    The Connection descriptor used by the client was:
    localhost:1521:mldn
     数据库名字不对啊 
      

  7.   

    The Connection descriptor used by the client was……解决方法! 
    ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
    The Connection descriptor used by the client was:
    localhost:1521:orcl  改了数据源然后就发生上面的错误,真是郁闷到了极点!多次尝试无效后,我导入了一个oracle自带的包:classes12.jar然后问题就奇迹般解决了