日期:2014-05-16  浏览次数:20684 次

Oracle 9i 安装后JDBC访问过程
学习了一下Oracle,在网友的经验分享下,一天就通过JDBC访问到了,把经验和大家分享一下吧

 
Oracle:9i
系统:Windows XP


Oracle安装过程
推荐 Oracle 9i 的安装(图解)
http://zhangym-hollycrm-com.iteye.com/blog/592799
这是图片真实、过程详细

第一步:建立数据库
安装好了就要开始配置Oracle环境了
具体为何如此配置,目前还不太清楚,我也是按部就搬,欢迎大家多提建议

第二步:配置表空间及用户
1.创建testdata数据库
使用 Database Configuration Assistant 创建一个testdata数据库,具体方式不说了,如果不太熟悉可以去网上查点资料。


以下使用SQLPlus Worksheet的 system权限即可完成
2.创建用户表空间(位于testdata,名为myweb)
CREATE TABLESPACE myweb
LOGGING
DATAFILE ' D:\Oracle\oradata\testdata\myweb.DBF' 
SIZE 32M 
AUTOEXTEND ON 
NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL;



3.创建用户,指定表空间和权限(myuser,123456)
新建用户
CREATE USER myuser IDENTIFIED BY 123456

指定表空间
DEFAULT TABLESPACE myweb 

授予权限给myuse
GRANT 
  CREATE SESSION, CREATE ANY TABLE, CREATE ANY VIEW ,CREATE ANY INDEX, 
   CREATE ANY PROCEDURE,ALTER ANY TABLE, ALTER ANY PROCEDURE,
  DROP ANY TABLE, DROP ANY VIEW, DROP ANY INDEX, DROP ANY PROCEDURE,
  SELECT ANY TABLE, INSERT ANY TABLE, UPDATE ANY TABLE, 
    DELETE ANY TABLE TO myuser;
grant dba to myuser;

当然,也可以授予更多权限给到myuse

现在开始,可以使用myuser连接SQLPlus Worksheet了
建议大家使用Normal,由于JDBC默认是以Normal方式连接,如果以sysdba方式连接建立的表结构可以查询不到,提示
ORA-00942: 表或视图不存在


第三步:建立表,并新增数据
CREATE TABLE testuser(id int,name varchar(50),password varchar(50),
 chiname varchar(50),info varchar(100)) TABLESPACE myweb;

insert into testuser values(1,'hehe1','123456','hehe1','i am hehe1');
insert into testuser values(2,'hehe2','123456','hehe2','i am hehe2');
insert into testuser values(3,'hehe3','123456','hehe3','i am hehe3');
insert into testuser values(4,'hehe4','123456','hehe4','i am hehe4');


第四步:使用Java连接
需要下载Oracle的JDBC包
oracle 9i 的JDBC
http://download-llnw.oracle.com/otn/utilities_drivers/jdbc/9208/ojdbc14.jar

public class OraDao {
	protected static String driver = "oracle.jdbc.driver.OracleDriver";
	protected static String url = "jdbc:oracle:thin:@111.111.11.111:1521:testdata";
	protected static String dbUser = "myuser";
	protected static String dbPwd = "123456";
	private Connection conn =null;
	
	public Connection getDaoconn(){
	  if(conn==null){
		  try {			
			Class.forName(driver);
			conn = DriverManager.getConnection(url, dbUser, dbPwd);
			
		  } catch (Exception e) {
			e.printStackTrace();
		  }
		}
		
		return conn;
	}
	
	public OraDao() {
		
	}

	
	/**
	 * @执行数据库查询操作
	 */
	public ResultSet executeQuery(OraDao dao,String sql) {
			
		ResultSet result = null;
		try {			
			result = dao.getDaoconn().createStatement().executeQuery(sql);			
		} catch (SQLException e) {
			e.printStackTrace();
			return null;
		}
		//d.close_result(result);
		//d.close_Dao(d);
		return result;
	}

	/**
	 * @执行数据库更新操作
	 */

	public int executeUpdate(OraDao dao,String sql) {
		int info = 0;
		try {						
			info = dao.getDaoconn().createStatement().executeUpdate(sql);			
			
		} catch (SQLException e) {
			System.out.println(e.getMessage());
			return -1;
		} 
		//dao.close_Dao(dao);
		return info;
	}

	// 关闭数据库连接
	public void close_conn(Connection conn) {
		try {
			if(conn!=null){
			conn.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			//conn = null;
		}
	}
	
	// 关闭数据库连接
	public void close_result(ResultSet result) {
		try {
			if(result!=null){
			result.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			//conn = null;
		}
	}
	
	public void close_Dao(OraDao dao){
		if(dao.getDaoconn()!=null){
			dao.close_conn(dao.getDaoco