oracle 11g 装好以后好久木有动了,今天找健健来一起研究,真是好。
先把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的结果:
初次摸这个新玩意,很多东西都是懵懵懂懂迷迷糊糊的,但是我想基本的使用oracle11g建库建表增删差改这些操作应该没什么问题了,欢迎大家批评指正啊。