谁能解释下jdbc:oracle:thin:@localhost:1521:orcl和jdbc:oracle:thin:@localhost:1521/orcl的区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谁能解释下jdbc:oracle:thin:@localhost:1521:orcl和jdbc:oracle:thin:@localhost:1521/orcl的区别?相关的知识,希望对你有一定的参考价值。

参考技术A Oracle Thin JDBC Driver

驱动程序包名:ojdbc14.jar、ojdbc6.jar

驱动程序类名: oracle.jdbc.driver.OracleDriver

JDBC URL:

1. ServiceName方式:
jdbc:oracle:thin:@//<host>:<port>/ServiceName

2. SID方式:
jdbc:oracle:thin:@<host>:<port>:<SID>

3.RAC方式(老的写法,现在一般用ServiceName方式)
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=x.x.x.1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=x.x.x.2)(PORT=1521)))(LOAD_BALANCE=yes)(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=xxrac)))

4. jdbc:oracle:oci:@service (这种一般没有人写吧)

所以这个:
jdbc:oracle:thin:@localhost:1521/orcl
还真有点搞不清楚,估计是服务名的方式,回头测试一下?追问

我遇到过jdbc:oracle:thin:@localhost:1521/orcl这种方式在我的电脑上可以 但是布到另一台电脑上的时候就不行,而jdbc:oracle:thin:@localhost:1521:orcl这种方式就可以 这是什么原因啊?":"?"/"?

追答

你就记住这两种写法 及其用法 就是了:

    ServiceName方式:
    jdbc:oracle:thin:@//<host>:<port>/ServiceName

    2. SID方式:
    jdbc:oracle:thin:@<host>:<port>:<SID>


追问

好吧 谢谢啦

本回答被提问者和网友采纳

JDBC操作总结

1.将配置文件导入项目中

(1)oracle安装路径下搜索classes12(或其他)

(2)在项目中创建lib文件夹,将刚才拷贝的classes12拷贝到该目录下

(3)右键,add path进项目

写代码:

2.配置文件:

Class.forName("oracle.jdbc.driver.OracleDriver");

 

3.创建连接:

String url = "jdbc:oracle:thin:@localhost:1521:orcl";
            conn = DriverManager.getConnection(url, "scott", "123");

 

4.取得申请:

sta = conn.createStatement();
            set = sta.executeQuery("select * from emp");

 

5.操作数据:

(1)建立一个类与数据库结构相同

public class Emp {
   private int empno;
   private String ename;
   private String job;
   private int mgr;
   private Date hiredate;
   private double sal;
   private double comm;
   private int deptno;
   
   public Emp(){
       
   }

public int getEmpno() {
    return empno;
}

public void setEmpno(int empno) {
    this.empno = empno;
}

public String getEname() {
    return ename;
}

public void setEname(String ename) {
    this.ename = ename;
}

public String getJob() {
    return job;
}

public void setJob(String job) {
    this.job = job;
}

public int getMgr() {
    return mgr;
}

public void setMgr(int mgr) {
    this.mgr = mgr;
}

public Date getHiredate() {
    return hiredate;
}

public void setHiredate(Date hiredate) {
    this.hiredate = hiredate;
}

public double getSal() {
    return sal;
}

public void setSal(double sal) {
    this.sal = sal;
}

public double getComm() {
    return comm;
}

public void setComm(double comm) {
    this.comm = comm;
}

public int getDeptno() {
    return deptno;
}

public void setDeptno(int deptno) {
    this.deptno = deptno;
}

@Override
public String toString() {
    return "Emp [empno=" + empno + ", ename=" + ename + ", job=" + job + ", mgr=" + mgr + ", hiredate=" + hiredate
            + ", sal=" + sal + ", comm=" + comm + ", deptno=" + deptno + "]";
}
   
   
}

(2)建立一个Arraylist集合用以存储查询到的数据

List<Emp> emps = new ArrayList<Emp>();
            while (set.next()) {
                Emp emp = new Emp();

                emp.setEmpno(set.getInt("empno"));
                emp.setEname(set.getString("ename"));
                emp.setJob(set.getString("job"));
                emp.setMgr(set.getInt("mgr"));
                emp.setHiredate(set.getDate("hiredate"));
                emp.setSal(set.getDouble("sal"));
                emp.setComm(set.getDouble("comm"));
                emp.setDeptno(set.getInt("deptno"));

                emps.add(emp);

            }

(3)输出检验

for (Emp emp : emps) {
                System.out.println(emp.toString());
            }

6.关闭资源:

finally {
            try {
                if (set != null) {
                    set.close();
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            try {
                if (sta != null) {
                    sta.close();
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            try {
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

 

以上是关于谁能解释下jdbc:oracle:thin:@localhost:1521:orcl和jdbc:oracle:thin:@localhost:1521/orcl的区别?的主要内容,如果未能解决你的问题,请参考以下文章

CMP是什么意思?谁能解释下?

CMP是什么意思?谁能解释下?

谁能解释下安卓工程里AndroidManifest.xml,R,MainActivity.java

谁能简单的给我解释下ERP的意思,它主要是做啥的

谁能解释下这个webconfig?

为什么下面的代码抛出System.Reflection.AmbiguousMatchException谁能给我解释一下?