Oracle Toplink 以及mapping工具workbench学习(by Lyon)

1、toplink是什么:跟hibernate差不多的ORM框架,具体的描述可以看看别人的帖子:

http://www.594k.com/java/html/y2007m7/12527/

http://blog.csdn.net/rexwu/archive/2006/04/26/678450.aspx

2、怎么去搭建一个toplink实验平台,这是初学者最关心的,也是首先要做的事情。

3、Spring在自己的SAMPLE中就提供toplink的例子,虽然很简单,却可以为我们实现一个简单的S MVC+toplink的测试环境,何乐而不为,直接上SPRING网站下载一个例子吧:

http://www.springframework.org/download

在这里我们选择:spring-framework-2.0.7-with-dependencies.zip(这个包最完整,不但包括Spring的源代码、spring jar包、6个Sample,还有一大堆关键到要命的其他JAR包,省掉我们很多麻烦)。

除了Spring的包,我们还需要下载oracle toplink workbench,这是主角:

http://download.oracle.com/otn/nt/ias/11/toplink_11.1.1.0_070830_preview-2.zip

4、下载完毕后,以Spring目录下samples中的petclinic目录为基础建立一个Eclipse工程,名字为petclinic,记得web目录选择war,保留该目录下面所有的文件。好在Spring目录下的LIB目录下建立一个工程,名字为LIB,在petclinic中引入,这样可以直接引入LIB中的JAR包(将toplink workbench目录中的toplink.jar和xmlparserv2.jar拷贝到LIB/toplink中)。

    我们选择MYSQL数据库,那么还需要将mysql-connector-java-3.2.0.jar拷贝到LIB的MYSQL目录(自己建立一个)中。

5、工程建好后,检查war目录中的web.xml,是不是被Eclipse改写了,如果是,那么替换成原来的。

6、接下来引入petclinic需要的jar包,不需要全部引入。

7、仔细阅读petclinic的readme.txt,发现它要求改写TOMCAT的配置,以及拷贝相关的jar:

The basic steps are:
- copy "spring-tomcat-weaver.jar" from Spring distribution to "TOMCAT_HOME/server/lib"
- if you're running on Tomcat 4.x or 5.x, modify "TOMCAT_HOME/conf/server.xml"
and add a new "<Context>" element for petclinic (see below)
- if you're running on Tomcat 5.x, you can also deploy the WAR including
"META-INF/context.xml" from this application's "war" directory

<Context path="/petclinic" docBase="/petclinic/location" ...>
  <!-- please note that useSystemClassLoaderAsParent is available since Tomcat 5.5.20; remove it if previous versions are being used -->
  <Loader loaderClass="org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader" useSystemClassLoaderAsParent="false"/>
...
</Context>

没啥商量的,按照指示修改吧。

8、选择TOMAT作为WEB服务器,相信大家都会配置,就不多做描述。

9、打开web.xml,将context-param的param-value修改为/WEB-INF/applicationContext-toplink.xml。

10、执行在db目录下面的建表语句,成功后,修改WEB-INF下的jdbc.properties,内容如下:

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:9999/petclinic
jdbc.username=root
jdbc.password=root

其他的均可注释掉。

11、现在运行一下工程,如果报错,十有八九是JAR没有引入,检查一下。

12、启动成功,在IE中键入:http://localhost:8080/petclinic/,如果看到如下页面,恭喜,工程环境已经搭建成功:

Magical Snap - 2007.11.24 20.37 - 004

13、现在来把toplink workbench跑起来。进入workbench的toplink/bin目录,修改setenv.cmd中的set DRIVER_CLASSPATH=D:/Work/Lib/jar/mysql-connector-java-3.2.0.jar(这是mysql驱动的目录)

set JAVA_HOME=C:/jdk1.5.0_02(JDK安装目录)

14、双击workbench.cmd,出现启动画面:

Magical Snap - 2007.11.24 20.38 - 005

15、关于workbench怎么创建工程、JAVA对象以及生成mapping的XML文件是很简单的事,用用该软件就清楚了,现在说说几个关键的地方。假定我们建立的workbench工程名字为:petclinic。

  • 自增长字段:mysql是没有sequence概念的,它有一个AUTO_INCREMENT可以实现该功能。但是如果想要在TOPLINK中实现AUTO_INCREMENT的工程,那么必须要在对象的描述信息中配置“使用序列”参数。选中“使用序列”,填写名称、表、字段,名称无所谓,只要不为空就行。点击导航器的petclinic根节点,配置“序列”选项为“本机序列”,也不知道为啥为本机序列,反正选择之后,保存包含AUTO_INCREMENT字段的对象时,就不用为AUTO_INCREMENT字段指定值,它会自动自增长,并且返回的对象会自动将该值填写上。
  • 延迟加载:最开始在DEBUG时,没有意识到TOPLINK会有延迟加载机制,在获取一个一对多对象时,观察变量值发现只有该对象的值,没有他包含的其他对象(一对多)值,后来发现除非显示的调用其他对象引用,值才会出现,方才突然恍然大悟。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值