Java链接Oracle
首先在Navicat里面链接Oracle:
连接时老报错:ORA-12505, TNS:listener does not currently know of SID given in connect descript....
一开始以为是listener的问题,尝试了很多还是不行。解决步骤如下:
这个文件(在你的)
host改成你的IP
连接代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | package com.sql.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class DBUtil { // 创建一个数据库连接 public static Connection getConnection() { Connection connection = null ; String USERNAMR = "ABC" ; String PASSWORD = "*****" ; //自己的密码 String DRVIER = "oracle.jdbc.OracleDriver" ; String URL = "jdbc:ora:thin:@localhost:1521:ORCL" ; try { System.out.println( "尝试输出!" ); Class.forName(DRVIER); System.out.println( "马佳慧无敌!" ); connection = DriverManager.getConnection(URL, USERNAMR, PASSWORD); System.out.println( "成功连接数据库" ); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } catch (SQLException e) { throw new RuntimeException(e); } return connection; } //关闭资源 public static void close(Statement state, Connection con) { if (state != null ) { try { state.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (con != null ) try { con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 关闭数据库的连接对象,SQL语句对象,查询结果集对象 * * @param rs * 结果集对象 * @param state * Statement对象 * @param con * Connection对象 */ public static void close(ResultSet rs, java.sql.Statement state, Connection con) { if (rs != null ) try { rs.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (state != null ) try { state.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (con != null ) try { con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } |
注意的地方:那里要写ORCL。原因是数据库服务器的名称写错了:
完美解决:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步