关于ecplise和myecplise如何连接oracle数据库问题

来源:互联网 发布:淘宝砗磲 编辑:程序博客网 时间:2024/05/20 16:32

ecplise连接数据库

1.导入jar包

针对于11g的oracle版本,在以下目录中找到对应的jar并导入到项目运行环境中
app\oracle\product\11.2.0\dbhome_1\jdbc\lib下的ojdbc6.jar
app\oracle\product\11.2.0\client_1\oui\jlib\classes12.jar

2.新建一个 jdbc类进行如下操作

package com_it_JDBC;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;import java.util.concurrent.CountDownLatch;public class JdbcDemo {    public static void main(String[] args) {        //定义oracle数据库驱动的类        String driverclass = "oracle.jdbc.OracleDriver";        //定义连接oracle的Url        String url = "jdbc:oracle:thin:@192.168.0.1:1521/orcl" ;        //登入用户名        String username = "admin" ;        //密码        String password = "root" ;                Connection conn = null;        Statement stmt = null;        ResultSet rs = null;        String querysql = "select * from person  ";        try {            //注册数据库的驱动程序,将类加载到内存中            Class.forName(driverclass);            //获得数据库连接            conn = DriverManager.getConnection(url, username, password);            //创建sql执行对象            stmt=conn.createStatement();            //执行sql语句            rs = stmt.executeQuery(sql);            //调用getMetaData方法,从而获取ResultSetMetaData接口中的方法            //即获取此 ResultSet 对象的列的编号、类型和属性。            //获得当前表的元数据:表名,列明,列的数量            ResultSetMetaData rsm= rs.getMetaData();            //获得列的数量            Integer col = rsm.getColumnCount();            System.out.println("列数:"+col);            ArrayList<String> list=new ArrayList<>();            for (int i=1;i<=col;i++) {                //获得列名                String cs= rsm.getColumnName(i);                list.add(cs);            }            //获得列所对应的数据            while (rs.next()) {                for (String cname : list) {                    String val = rs.getString(cname);                    System.out.print((cname +":"+val)+"      ");                }                System.out.println();            }        } catch (Exception e) {            e.printStackTrace();        }finally{                try {                    if (rs!=null) {                        rs.close();                    }                    if (stmt!=null) {                    stmt.close();                    }                    if (conn!=null) {                    conn.close();                    }                } catch (SQLException e) {                    e.printStackTrace();                }            }        }    }

3.myecplise的jdbc配置

如上所示;

区别在于:URL的格式不同

“`
String url = “jdbc:oracle:thin:@localhost:1521:orcl(sid);

“`

4.几种常见的报错:

1. IO 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=186647552)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))

解决方法:数据库名的问题,在需要连接的数据库中运行如下语句
select INSTANCE_NAME from v$instance;将sid改为运行的结果即可

2.Io 异常: Invalid connection string format, a valid format is: “host:port:sid”

URL的格式问题:myecplise是如下格式:
jdbc:oracle:thin:@localhost:1521:orcl

原创粉丝点击