因为我对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的代码,其中的URL和DriverClass是连接中的重点。
注意:在这里Oracle和SQL2000是有不同点的,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 ,INSERT,UPDATE和DELETE操作。
l RESOURCE (资源角色)
具有RESOURCE角色的用户可以进行CONNECT所做的工作,此外,还可以进行CREATE TABLE、CREATE SEQUENCE、CREATE PROCEDURE、CREATE TRIGGER、CREATE INDEX及CREATE 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;
之后在java的SQL语句中就可以直接引用了 :
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可能有不对的地方,希望大家交流