jdbc 驱动连接oracle数据库报错Unknown host specified 5C

本人用jdbc驱动连接数据库的时候,通过jdbc:oracle:thin:@TNSNAME
方式,报错,看到网上有人说,设置System.setProperty("oracle.net.tns_admin",“TNS路径”);可以实现,但是情况是我不知道TNS路径,怎么解决

5个回答

$ORACLE_HOME\network\admin\tnsnames.ora
例如:
【windows】
C:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora
linux或unix
/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora

BigException
Paul·Shi 回复weixin_40152281: 额... 难道不能要求客户配置吗?或者提过路径...要是实在不行 那也只能用你的方法 全盘搜索了..
接近 2 年之前 回复
weixin_40152281
weixin_40152281 你说的这种情况我考虑过,因为是在客户电脑上,如果电脑上没有配置oracle系统变量,我就取不到
接近 2 年之前 回复
weixin_40152281
weixin_40152281 你说的这种情况我考虑过,因为是在客户电脑上,如果电脑上没有配置oracle
接近 2 年之前 回复

jdbc字符串类似这样jdbc:oracle:thin:@127.0.0.1:1521:orcl
并不需要tns配置

blvyoucan
零起跑线 回复weixin_40152281: 你可用tnsping tnsname看看吧,ping出来的结果包含ip什么的,用tnsname,也必须在本机的tnsname.ora里面配置对方的IP的
接近 2 年之前 回复
stonefeng
疯癫行者 赞同
接近 2 年之前 回复
weixin_40152281
weixin_40152281 问题是我不知道ip端口,只知道TNSNAME
接近 2 年之前 回复

配置文件

driver=oracle.jdbc.driver.OracleDriver
# url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
db_ip=127.0.0.1
db_name=orcl
username=name
password=pwd

getConnection文件

 /** 
     * 1.初始化常量 
     * driverName   驱动名称 
     * url          连接的数据库的路径 
     * username     数据库用户账户 
     * password     数据库用户密码 
     */
    static{
        InputStream input = 
                JdbcUtils.class.getClassLoader().getResourceAsStream("MediateDB.properties");
        Properties properties = new Properties();
        try {
            properties.load(input);
            driverName = properties.getProperty("driver");
            username = properties.getProperty("username");
            password = properties.getProperty("password");
            url = "jdbc:oracle:thin:@"+properties.getProperty("db_ip")+":1521:"+properties.getProperty("db_name");

            dataSource = new BasicDataSource();  
            dataSource.setDriverClassName(driverName);  
            dataSource.setUrl(url);  
            dataSource.setUsername(username);  
            dataSource.setPassword(password); 

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

        /** 
     * 2.连接数据库的方法 
     * @return 
     * @throws SQLException 
     */  
    public static Connection getConnection() throws SQLException{ 
        if(conn == null)  
            conn = dataSource.getConnection();
        return conn;  
    }  

ip(127.0.0.1) 端口(1521)找负责人要,没有怎么开发。端口默认是1521,IP你要一下
TNSNAME也是在oracle的配置文件里配置了IP和端口,name为TNSNAME。主要用于PLSQL工具链接数据库方便。

niaonao
niaonao 回复weixin_40152281: jdbc:oracle:thin:@TNSName 这种格式很少见,你这场景也是特殊。坐等结贴
接近 2 年之前 回复
weixin_40152281
weixin_40152281 我们是在客户电脑上安装一个exe程序,通过这个程序去连接客户数据库,客户不提供IP,端口这些信息,只提供个TNSNAME,提供TNSNAME的话我 就得知道tnsnames.ora文件的路径,如果客户这个也不给,我就需要通过程序全盘搜索客户的这个文件路径, 这种方式我已经实现的,但是感觉效率太低了,不知道还有其他什么好办法
接近 2 年之前 回复

尽量用域名方式比较好,如果更换ip地址也容易。

并不需要tns配置 jdbc字符串类似这样jdbc:oracle:thin:@127.0.0.1:1521:orcl

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐