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);