整合Java 6 脚本、Groovy实现动态MVC模式(一)
二、建立数据库
在这一节我们来为本文的例子建立一个数据库。按着我们上面所说的,将使用HSQLDB数据库,第一步是下载HSQLDB JDBC驱动,本文使用的是1.8.0版本,将其解压后的jar文件复制到Test\WEB-INF\lib中。
在这一节我们来为本文的例子建立一个数据库。按着我们上面所说的,将使用HSQLDB数据库,第一步是下载HSQLDB JDBC驱动,本文使用的是1.8.0版本,将其解压后的jar文件复制到Test\WEB-INF\lib中。
然后,我们需要建立一个test数据库,并向数据库中加入一些模拟数据。因此,我们在WEB-INF中建立一个db目录,并在这个目录中放两个文件。第一个文件叫Test.properties,它的内容如下:
#HSQL Database Engine
#Fri Apr 20 18:52:47 CEST 2007
hsqldb.script_format=0
runtime.gc_interval=0
sql.enforce_strict_size=false
hsqldb.cache_size_scale=10
readonly=false
hsqldb.nio_data_file=true
hsqldb.cache_scale=14
version=1.8.0
hsqldb.default_table_type=memory
hsqldb.cache_file_scale=1
sql.compare_in_locale=false
hsqldb.log_size=200
modified=no
hsqldb.cache_version=1.7.0
hsqldb.original_version=1.7.1
hsqldb.compatible_version=1.8.0第二个文件叫Test.script,它的内容如下:
CREATE SCHEMA PUBLIC AUTHORIZATION DBA
CREATE MEMORY TABLE TTST_ITEM(ITE_CODE CHAR(32) NOT NULL PRIMARY KEY,ITE_NAME VARCHAR(100) NOT NULL,ITE_DESCRIPTION VARCHAR(300))
CREATE USER SA PASSWORD ""
GRANT DBA TO SA
SET WRITE_DELAY 60
SET SCHEMA PUBLIC
INSERT INTO TTST_ITEM VALUES('06e8da2682ce842b01a47de7823ec779','Parents','Links for parents')
INSERT INTO TTST_ITEM VALUES('1ab94df54312961a015749157fe05097','Web related','Item description')
INSERT INTO TTST_ITEM VALUES('1acc5e9d4312961a0157491547be91fa','Source control','That must be about source')
INSERT INTO TTST_ITEM VALUES('1ad80b204312961a015749159fe5205a','JBuilder Plugins','Plugin? What's that')
在使用时应注意,HSQLDB驱动只有在发布时还使用完全路径,我们将使用WebLEAF中的AutoConfigurer Servlet来自动配置路径。为了达到这个目的,我们在classes中建立一个webapp.properties文件,这个文件只有简单的一行,内容如下:
db.location=REAL_PATH/WEB-INF/db
我们还需要在web.xml中加入Autoconfigurer Sevvlet,内容如下:
我们还需要在web.xml中加入Autoconfigurer Sevvlet,内容如下:
上面的培植告诉Autoconfigurer Servlet检查webapp.properties文件和验证db.location属性是否指向了正确的路径。而且Autoconfigurer Servlet首先被装载,而且是在WebLEAF Controller Servlet之前,这应该感谢load-on-startup的功劳(值小的先装载,值大的后装载)。这将保证Autoconfigurer Servlet在WebLEAF Controller Servlet(LEAFManager)访问数据库之前验证db.location属性是否正确。<?xml version="1.0"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
<web-app>
<!--
Autoconfiguration servlet
-->
<servlet>
<servlet-name>AutoConfigurer</servlet-name>
<servlet-class>org.leaf.util.AutoConfigurer</servlet-class>
<load-on-startup>1</load-on-startup>
<init-param>
<param-name>FILE_NAME.1</param-name>
<param-value>WEB-INF/classes/webapp.properties</param-value>
</init-param>
<init-param>
<param-name>NODES_NAME.1</param-name>
<param-value>db.location</param-value>
</init-param>
<init-param>
<param-name>PATTERN.1</param-name>
<param-value>(.*)/WEB-INF/(.*)</param-value>
</init-param>
<init-param>
<param-name>FORMAT.1</param-name>
<param-value>{0}WEB-INF/{1}</param-value>
</init-param>
</servlet>
<!-- End Autoconfiguration servlet -->
<!--
WebLEAF controller servlet configuration
-->
<servlet>
<servlet-name>WebLEAFController</servlet-name>
<servlet-class>org.leaf.LEAFManager</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<!-- End controller servlet -->
</web-app>
0
相关文章
