先把oracle服务打开,这家伙太吃内存了!
然后打开客户端的 SQL Developer , new 一个 connection ,名字叫 test ,提示输入用户名和密码的时候输入安装时候默认的密码,我这是 system 和 123456
这只是一个连接(Connection),里面原本就有很多示例的数据库实例,在 other users 里面,新建一个 user (个人认为感觉就像是新建一个数据库或者是解决方案),我新建一个 anran ,里面存储过程,函数什么的,自动的一应俱全。
新建了一个 table ,名字叫 test ,有一列叫 ID 。
然后就是用 jdbc 连接数据库啦。 jdbc 的 driver 可以在 oracle 11g 安装目录中找到,例如我的路径是 D:\oracle11g\product\11.1.0\db_1\jdbc\lib ,里面有 4 个 jar 包,根据本机上装的 jdk 的版本不同来选择, oracle 官方网站上 是这么说的:
ojdbc5.jar (1,890,499 bytes) - Classes for use with JDK 1.5. It contains the JDBC driver classes, except classes for NLS support in Oracle Object and Collection types.
ojdbc5_g.jar (2,942,818 bytes) - Same as ojdbc5.jar, except that classes were compiled with "javac -g" and contain tracing code.
ojdbc6.jar (1,988,051 bytes) - Classes for use with JDK 1.6. It contains the JDBC driver classes except classes for NLS support in Oracle Object and Collection types.
ojdbc6_g.jar (3,217,836 bytes) - Same as ojdbc6.jar except compiled with "javac -g" and contains tracing code.
这里我选的是 ojdbc6 ,因为我装的是 jdk1.6 ,而且我只是基本用途,用不着 ojdbc6_g.jar ,节省大小。
代码如下:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ConnectionTest {
static Connection conn;
static Statement stm;
static ResultSet rs;
static String driver="oracle.jdbc.driver.OracleDriver";
static String url="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
public static void main(String[] args) {
try {
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
// // 这里与 平时的Class.forName("...")不同但是本质上是一样的,在api里面实际上都是上面的 registerDriver 方法
注:一般都还是用Class.forName("..."),假如不行而错误提示刚好是这一行的话,不妨试试看上面的那个方法。具体什么原因我也不清楚,只是自己之前用Class.forName("...")不行而在网上找了用 DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());却可以了。。
conn=DriverManager.getConnection(url, "anran", "123456");
stm=conn.createStatement();
stm.executeUpdate("insert into test values("+3453+")");
rs=stm.executeQuery("select * from test");
while (rs.next()) {
System.out.println(rs.getInt("ID"));
}
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
我运行了两次,那么表里面应该有两行 3453 的数据,这是 sql plus 的结果: