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
相关产品推荐
相关产品推荐

