首页 > 数据库技术 > 详细

Java链接Oracle

时间:2019-03-19 13:09:21      阅读:163      评论:0      收藏:0      [点我收藏+]

首先在Navicat里面链接Oracle:

技术分享图片

连接时老报错:ORA-12505, TNS:listener does not currently know of SID given in connect descript....

一开始以为是listener的问题,尝试了很多还是不行。解决步骤如下:

技术分享图片

这个文件(在你的技术分享图片

host改成你的IP

技术分享图片

连接代码:

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。原因是数据库服务器的名称写错了:

技术分享图片

完美解决:

技术分享图片

 

Java链接Oracle

原文:https://www.cnblogs.com/mm20/p/10557909.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!