连接oracle数据库及遇到的问题分析

访客 阅读:143 2021-09-05 18:37:54 评论:0
本文章主要介绍了连接oracle数据库及遇到的问题,具有不错的的参考价值,希望对您有所帮助,如解说有误或未考虑完全的地方,请您留言指出,谢谢!

今天连接了一下oracle数据库,遇到了几个问题:

1.出现如下的错误

java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection

    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)

    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)

    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:254)

    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:386)

    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:438)

    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(Unknown Source)

    at java.sql.DriverManager.getConnection(Unknown Source)

    at neu.com.JdbcTest1.main(JdbcTest1.java:23)

在网上找了相关的解答,说OracelServiceORACLE 服务和XXXX home1TNSListener监听要启动起来,我的服务启动起来了,但是监听没有启动起来,症状表现为启动后刷新后就又没启动起来,其实就是没有启动起来。培训老师帮忙了,看了下Oracle下的à配置和移植工具下的àNetManager的监听程序和服务命名里的主机名,发现和我的电脑à属性里的不一样,就是这个问题了。原来我犯二了,把我的电脑à属性里的“计算机描述”当成了主机名,当然不成了,应该是“完整的计算机名称”才是主机名,哈哈,二了一下。这下子那个服务就启动起来了。

2.但是这个问题解决后又遇到一个问题,然后把localhost变成了本机的ip就成了。程序里也就连接上数据库了。

如果不想把localhost改成ip而还要连接上的话,网上说把oracle安装路径下的listner.oratnsnames.ora文件中的HOST全部改为:HOST   =   127.0.0.1如我的是这个路径:C:/oracle/product/10.2.0/db_1/network/ADMIN就行了,这个我没有试,望大虾路过指教。

对于上面的问题有的还说要关掉防火墙,但是这个我觉的有点欠佳,因此就没有试。

下面是我的代码:

package neu.com;

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

public class JdbcTest1 {
 
 public static void main(String [] args){
  
  String driver="oracle.jdbc.driver.OracleDriver";
  String url="jdbc:oracle:thin:@127.0.0.1:1521:oracle";
  String user="scott";
  String password="tiger";
  String sql="select * from emp";
  Connection conn=null;
  Statement st=null;
  ResultSet rs=null;
  try {
   Class.forName(driver);
   conn =DriverManager.getConnection(url,user,password);
   //不自动提交事务
   conn.setAutoCommit(false);
   st=conn.createStatement();
   rs=st.executeQuery(sql);
   //执行完毕后一定要手动提交事务
   conn.commit();
   while(rs.next()){
    System.out.println(rs.getBigDecimal("empno")+" "+rs.getString("ename"));
   }
  } catch (ClassNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }catch(SQLException e){
   e.printStackTrace();
  }finally{
   try{
    if(rs != null)
     rs.close();
    if(st != null)
     st.close();
    if(conn != null)
        conn.close();
    }catch(SQLException e){
     e.printStackTrace();
    }
  }
 }

}


标签:java
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
KIKK导航

KIKK导航

排行榜
关注我们

一个IT知识分享的公众号