Oracle 学习的一些心得

因为我对SQL2000比较熟悉,所以对比的来总结!

1,  Oracle中怎样建立相对应的SQL2000中的数据源,即SQLServer服务
   
Oracle中,通过Database Configuration Assistant 来创建数据库,实际上就是创将连接源(个人理解),因为创建完必之后可以通过orcale的服务启动该数据库,比如名字为TestJDBC,则在windows的启动选项中会出现一个叫OraclTestJDBC的服务,对,将其启动后就可以利用JDBC来连接了,例如下面的:

<data-source key="javaTestJdbc" >

      <set-property property="password" value="machao" />

      <set-property property="minCount" value="1" />

      <set-property property="maxCount" value="10" />

      <set-property property="user" value="sys" />

      <set-property property="driverClass" value="oracle.jdbc.driver.OracleDriver" />

      <set-property property="description" value="jdvcTest" />

      <set-property property="url" value="jdbc:oracle:thin:@localhost:1521:TESTJDBC" />

      <set-property property="readOnly" value="true" />

      <set-property property="autoCommit" value="true" />

      <set-property property="loginTimeout" value="100" />

</data-source>

 

这个是在Struts中配置的Datasource的代码,其中的URLDriverClass是连接中的重点。

 

注意:在这里OracleSQL2000是有不同点的,SQL2000里的数据库是在一个SQLServer服务下建立的,那么我上面所说的Orcale的数据库其实是对应的SQLServer这种服务,即连接源。美建立一个数据库即对应着新注册了一个SQLServer服务。

 

2,  Orcale中怎么建立方案:方案是什么?

这里的方案其实就是创建时的那个对象类型,创建好对象类型后方案中就会多处一个来,我们可以在方案中建立新表,因此方案有些想单个sqlServer下创建的数据库。但是建立新方案需要建立新的用户,也就是说每个方案都对应着唯一的用户所创建的实例,这就意味这当我们用不同用户登录时所访问的方案也是不同的,即Orcale可以通过JDBC连接的用户名来区分你访问的是哪个方案,进而可以确定你访问的是哪个表。

SQLServer中,可以建立许多数据库功我们来通过JDBC来访问,比如我们新建个Test数据库,想在SQL那么我们可以通过:
jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Test
来指定。对应的Orcale中,我们先需要在TESTJDBC这个服务下建立一个Test用户(记得分配角色),然后再为其建立一个对像类型(即新方案),然后对应上面的Struts的配置,只需将username改为Test即可。

l       另外,在新建用户时要给他分配角色,其中有三个关键的角色,分别是:

l       CONNECT ( 连接角色)

具有CONNECT 角色用户,可以进行 SELECT INSERTUPDATEDELETE操作。

l       RESOURCE (资源角色)

具有RESOURCE角色的用户可以进行CONNECT所做的工作,此外,还可以进行CREATE TABLECREATE SEQUENCECREATE PROCEDURECREATE TRIGGERCREATE INDEXCREATE CLUSTER等。

l       DBA(数据库管理员角色)

具有DBA角色的用户可以进行除 RESOURCE外,还可以进行数据库的管理操作。

这几个都可以通过JDBC连接,但通过DBA授权后还可以通过Oracle的管理台进行登陆管理。

因为我也是初学Oracle,所以理解可能不是很正确,我写这些的目的只是让人知道改怎么连接JDBC,可以连上JDBC并向表里插入数据就可以了。

 

3,如何在Oracle中实现ID字段递增:

 

可以先建立一个序列,比如:create sequence "notice_id" increment by 1 start with 1 minvalue 1 maxvalue 999 cycle nocache order;

 

之后在javaSQL语句中就可以直接引用了

con = dataSource.getConnection();

       String sql="insert into notice(id,title,content) values(notice_id.nextval,?,?)";

              PreparedStatement pre=con.prepareStatement(sql);

              pre.setString(1, "mc");

              pre.setString(2, "mc");

int a=pre.executeUpdate();

              if(a>0){

                     System.out.println("插入成功!");

              }else{

                     System.out.println("插入失败!");

              }

              pre.close();

              con.close();

这样在插入后即可实现ID递增了,另外也可以用触发器来实现,这里就不举例了。

由于初学Oracle可能有不对的地方,希望大家交流

 

你可能感兴趣的:(oracle,sql,数据库,jdbc,struts,sqlserver)