这两天研究了一下oracle, 遇到了一些问题,写下来希望对其他初学者有帮助,下面以SSH+oracle的框架为基础。
首先新建web project,接着加入struts,spring,hibernate,记着把applicationContext.xml放在web-inf下,这样hibernate才能找到它,下面在DB browrses下配置数据源。在oracle9i下JDBC Driver要用ojdbc14.jar,不要用自带的那个classes12.jar,否则连不上数据库。连接数据库必须启动监听服务,它占用了8080端口,所以再启动TOMCAT,就会出错。下面有三种方法来解决:1,先启动tomcat,然后再启动监听服务。2,把tomcat的端口在server.xml里后改一下。3 这种方法我没试过,从网上看到的,可以打开Oracle安装目录下的database目录内的SPFILE[SID名].ORA文件进行修改。这个文件是Oracle的启动配置文件。把其中的*.dispatchers='(PROTOCOL=TCP) (SERVICE=or9iXDB)'这一行去掉即可。然后重启计算机,或者在服务中重启OracleService[SID名]这个服务。重启后可能无法使用Enterprise Manager Console和其他客户端连接,这时请使用Oracle的Configuration and Migration Tools/Net Configuration Assistant工具删除监听器,然后新建一个监听器,重启监听器。
使用Configuration and Migration Tools/Net Manager工具,将服务命名删除,然后新建一个。现在Oracle应该就可以正常使用,8080也不会占用了。
如果只是连接数据库,不需要启动oracle的智能代理,只需要监听服务就行了,因为它与数据库连接。下面产生hibernate的映射文件,这里有个问题,因为oracle里没有自增长的类型,所以需要在主键时选择SEQUENCE,但是现在还不行,还需要自己建立sequence,命令如下:
CREATE SEQUENCE [user.]sequence_name
[increment by n]
[start with n]
[maxvalue n | nomaxvalue]
[minvalue n | nominvalue]; 当然可以在oracle图形界面里创建,需要注意的是要选择你连接数据库的user下创建,然后在映射文件里做如下配置:即要加上参数param.
(d name="id" type="long")
(column name="ID" precision="10" scale="0" /)
(generator class="sequence" )
(param name="sequence">guoxinsque (/generator)
(/id)
以上几个小问题是初学者经常碰到的^_^