日期:2014-05-18  浏览次数:20844 次

JDBC 连接 ORACLE
红色的字是我的主要问题,可以先看
下面是我整理的网上的资料:
JDBC数据库连接的基本步骤:
1. 加载数据库驱动程序,代码如下: 
Class.forName(“数据库驱动程序”);//注意大小写
如:Class.forName(“oracle.jdbc.driver.OracleDriver”); 
2. 数据库建立连接
  一般方法是:
Connection conn=DDriverManager.getConnection(连接字符串);
//URL的格式:jdbc:oracle:服务:@服务器IP地址:端口号:数据库,用户名,密码
如:conn = DriverManager.getConnection(jdbc:oracle:orcl:@192.168.1.1:1521:cybecdb,Eip,Eip);
 这里我不明白这个 端口号和数据库  端口号要怎么查看?默认就是1521吗?还有数据库,应该是指数据库名吧!?可是我自学ORACLE的时候,发现创建用户之后就可以直接创建表了,我根本不知道这个表是属于哪个数据库?那我要怎么连?  下面的例子中,我自己创建了一个叫 bq 的用户名,密码是:bqstudy,里面有个叫singer的表,表里有一行记录,可我不知道怎么用JDBC控制这个表,因为我不知道数据库名是什么,当我在数据库的位置写ORCL的时候,好像连接能建立成功(因为能执行查询,虽然没查到数据),麻烦接着看下面的红字

3.创建JDBC Statements对象
  Statement对象用于把SQL语句发送到DBMS,用Connection对象来创建Statement对象的实例,
  如:Statement stm=conn.createStatement();

4.执行SQL语句并获取结果 
  若SQL语句作为Statement对象的executeUpdate()或executeQuery()方法的参数,则执行SQL语句。
  (注:executeQuery()方法得到的是一个结果集(ResultSet),通过ResultSet的next()方法可以定位到不同的记录)


import java.sql.*; 

public class Jdbc_Thin {
        //dbUrl数据库连接串信息,其中“1521”为端口,
//String dbUrl = "jdbc:oracle:orcl:thin:@localhost:1521:orcl"; 
String dbUrl = "jdbc:oracle:thin:@localhost:1521:orcl"; 
//theUser为数据库用户名 
String theUser = "bq"; 

//thePw为数据库密码 
String thePw = "bqstudy"; 

//几个数据库变量 
Connection c = null; 
Statement conn; 
ResultSet rs = null; 

public static void main(String[] args) {
ResultSet newrs; 
Jdbc_Thin newjdbc = new Jdbc_Thin(); 
newrs = newjdbc.executeQuery("select * from singer"); 

try { 
System.out.println(newrs.next());
//结果是false,我想原因可能是我的singer不在orcl数据库里,但是它在哪里呢?把orcl换成bq却又连连接都无法成功。这种问题要怎么解决???
while (newrs.next()) { 
System.out.print(newrs.getString("event_type")); 
System.out.println(":"+newrs.getString("content")); 


catch (Exception e) { 
e.printStackTrace(); 

newjdbc.close(); 
}

//初始化连接 
Jdbc_Thin() { 
System.out.println("kdsf");
try { 
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 
//与url指定的数据源建立连接 
c = DriverManager.getConnection(dbUrl, theUser, thePw);