You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle SQL Developer 17.2.0.188导入JSON连接文件的可行方案?

解决方案

一、能否直接导入JSON文件?

Oracle SQL Developer 17.2.0.188版本不原生支持直接导入JSON格式的连接文件,不升级工具的情况下无法直接完成导入,必须先将JSON转换为工具支持的XML或.properties格式。

二、将JSON转换为XML或.properties格式

1. 转换为XML格式

Oracle SQL Developer的连接XML有固定规范结构,核心是<References>节点下包含多个<Reference>标签,每个标签对应一个数据库连接,需包含用户名、主机、端口、JDBC URL、驱动类等关键属性。

示例转换:

假设你的JSON连接数据结构如下:

[
  {
    "name": "DEV_DB",
    "username": "dev_user",
    "host": "192.168.1.100",
    "port": 1521,
    "serviceName": "devdb",
    "driver": "oracle.jdbc.OracleDriver"
  },
  {
    "name": "TEST_DB",
    "username": "test_user",
    "host": "192.168.1.101",
    "port": 1521,
    "serviceName": "testdb",
    "driver": "oracle.jdbc.OracleDriver"
  }
]

可转换为符合规范的XML:

<?xml version="1.0" encoding="UTF-8"?>
<References xmlns="http://xmlns.oracle.com/jdeveloper/1013/connections">
  <Reference name="DEV_DB" className="oracle.jdeveloper.db.adapter.DatabaseConnection" xmlns="">
    <Factory className="oracle.jdeveloper.db.adapter.DatabaseConnectionFactory"/>
    <RefAddresses>
      <StringRefAddr addrType="user">
        <Contents>dev_user</Contents>
      </StringRefAddr>
      <StringRefAddr addrType="URL">
        <Contents>jdbc:oracle:thin:@192.168.1.100:1521:devdb</Contents>
      </StringRefAddr>
      <StringRefAddr addrType="driver">
        <Contents>oracle.jdbc.OracleDriver</Contents>
      </StringRefAddr>
      <StringRefAddr addrType="SavePassword">
        <Contents>false</Contents>
      </StringRefAddr>
    </RefAddresses>
  </Reference>
  <Reference name="TEST_DB" className="oracle.jdeveloper.db.adapter.DatabaseConnection" xmlns="">
    <Factory className="oracle.jdeveloper.db.adapter.DatabaseConnectionFactory"/>
    <RefAddresses>
      <StringRefAddr addrType="user">
        <Contents>test_user</Contents>
      </StringRefAddr>
      <StringRefAddr addrType="URL">
        <Contents>jdbc:oracle:thin:@192.168.1.101:1521:testdb</Contents>
      </StringRefAddr>
      <StringRefAddr addrType="driver">
        <Contents>oracle.jdbc.OracleDriver</Contents>
      </StringRefAddr>
      <StringRefAddr addrType="SavePassword">
        <Contents>false</Contents>
      </StringRefAddr>
    </RefAddresses>
  </Reference>
</References>

转换注意点:

  • 每个连接的name对应XML中<Reference name="...">的名称
  • JDBC URL需按jdbc:oracle:thin:@主机:端口:服务名/SID格式拼接正确
  • SavePassword属性可选,值为true或false,控制是否保存密码

2. 转换为.properties格式

.properties采用键值对结构,用唯一前缀区分不同连接即可,格式更简单:

# DEV_DB连接
connection.DEV_DB.user=dev_user
connection.DEV_DB.url=jdbc:oracle:thin:@192.168.1.100:1521:devdb
connection.DEV_DB.driver=oracle.jdbc.OracleDriver
connection.DEV_DB.savePassword=false

# TEST_DB连接
connection.TEST_DB.user=test_user
connection.TEST_DB.url=jdbc:oracle:thin:@192.168.1.101:1521:testdb
connection.TEST_DB.driver=oracle.jdbc.OracleDriver
connection.TEST_DB.savePassword=false

3. 批量转换脚本(可选)

如果连接数量多,可写Python脚本批量处理:

import json

# 读取JSON文件
with open('connections.json', 'r') as f:
    conn_data = json.load(f)

# 生成XML内容
xml_header = '<?xml version="1.0" encoding="UTF-8"?>\n<References xmlns="http://xmlns.oracle.com/jdeveloper/1013/connections">\n'
xml_footer = '</References>'
xml_body = ''

for conn in conn_data:
    ref = f'  <Reference name="{conn["name"]}" className="oracle.jdeveloper.db.adapter.DatabaseConnection" xmlns="">\n'
    ref += '    <Factory className="oracle.jdeveloper.db.adapter.DatabaseConnectionFactory"/>\n'
    ref += '    <RefAddresses>\n'
    ref += f'      <StringRefAddr addrType="user">\n        <Contents>{conn["username"]}</Contents>\n      </StringRefAddr>\n'
    ref += f'      <StringRefAddr addrType="URL">\n        <Contents>jdbc:oracle:thin:@"{conn["host"]}:{conn["port"]}:{conn["serviceName"]}"</Contents>\n      </StringRefAddr>\n'
    ref += f'      <StringRefAddr addrType="driver">\n        <Contents>{conn["driver"]}</Contents>\n      </StringRefAddr>\n'
    ref += '      <StringRefAddr addrType="SavePassword">\n        <Contents>false</Contents>\n      </StringRefAddr>\n'
    ref += '    </RefAddresses>\n'
    ref += '  </Reference>\n'
    xml_body += ref

xml_content = xml_header + xml_body + xml_footer

# 保存XML文件
with open('connections.xml', 'w') as f:
    f.write(xml_content)

# 生成.properties内容
props_content = ''
for conn in conn_data:
    props_content += f'# {conn["name"]}连接\n'
    props_content += f'connection.{conn["name"]}.user={conn["username"]}\n'
    props_content += f'connection.{conn["name"]}.url=jdbc:oracle:thin:@"{conn["host"]}:{conn["port"]}:{conn["serviceName"]}"\n'
    props_content += f'connection.{conn["name"]}.driver={conn["driver"]}\n'
    props_content += f'connection.{conn["name"]}.savePassword=false\n\n'

# 保存.properties文件
with open('connections.properties', 'w') as f:
    f.write(props_content)

将脚本中的JSON文件路径改为你的实际路径,执行后会自动生成XML和.properties文件。

三、导入转换后的文件

转换完成后,打开Oracle SQL Developer 17.2.0.188:

  • 导入XML:点击Tools -> Preferences -> Database -> Connections,点击Import,选择转换好的XML文件即可。
  • 导入.properties:同样在Connections设置界面,点击Import,选择.properties文件,按提示完成导入。

内容的提问来源于stack exchange,提问作者muza920

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 00:29:51