RT
一般的数据库连接如下:
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 
  String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID 
  String user="test"; 
  String password="test"; 
  Connection conn= DriverManager.getConnection(url,user,password); 
现在我想通过serviceName连接,如何做到
就像sqldeveloper里面的配置一样的。可以通过service name连接。

解决方案 »

  1.   

    service name是什么呢?不懂这方面的。
    SYS as SYSDBA 是以系统管理员连接,,
      

  2.   

    访问oracle有serviceName这一说法吗?oracle好像没有服务名,只有SID或全局数据库名.不知道你说的serviceName是不是 TNS 
      

  3.   

    不知道用过sqldeveloper没有,那里面在连接设置的时候有个service name配置,应该就是你说的全局数据库名
      

  4.   

    可能楼主问的就是用TNS名访问。
    SID是老版本oracle的叫法,新版本就是叫SERVICE_NAME我机器上的tnsnames.ora中的2个例子。第一个连的是老版本数据库,第二个是新的
    xxxxx =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = 52000))
        )
        (CONNECT_DATA =
          (SID = orcl)
          (SERVER = DEDICATED)
        )
      )
    yyyyy =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = zjdata)
        )
      )
    用tns名的话估计要用到oci驱动了吧,通过本地客户端访问oracle数据库。一般来说java web应用都是用thin驱动。
      

  5.   

    thin 这种连接方式 只能用servicename
      

  6.   

    thin 这种连接方式 只能用servicename或者用jndi