将5.0部署到myeclipse6.5+mysql5.0+Tomcat6.0上的步骤:
============================================================================================================
step1:新建项目jpetstore5.0。建议使用JavaEE5、jdk高版本,至少要支持泛型。原因:不用它们不舒服。
============================================================================================================
step2:
解压下载的JPetStore-5.0.zip ,复制src下的包com、properties到新建的项目jpetstore5.0的src目录下,自然,复制的是包以及包中所有的文件,不仅仅只是包名。
即然使用的是MySQL,MySQL的驱动要加载的。将mysql-connector-java-5.0.5-bin.jar复制到Tomcat6.0 的lib下,省的每次都配置。
============================================================================================================
step3:
修改properties/database.properties文件如下:
####################################
# Database Connectivity Properties
####################################
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/jpetstore
username=root
password=root
用户名和密码是自己的MySQL配置。
src目录下应该还有ddl这个包吧,这个包里的文件是建表语句,既然使用的是MySQL那就要需要手工创建数据源database。表和导入实验数据可以使用程序自动执行(暂不介绍)。
在新建的项目jpetstore5.0的src目录下新建包ddl,拷贝解压包中src/ddl/mysql中所有的文件。
到MySQL的命令提示符下分别运行这三个文件:
mysql -uroot –p < jpetstore-mysql-schema.sql
mysql -uroot –p < jpetstore-mysql-dataload.sql
mysql -uroot –p < jpetstore-mysql-create-user.sql
以上三个文件分别是创建数据库JPetStore,导入数据,分配权限。如果你安装了MySQL的管理工具,也可以在管理工具下运行这三个文件。
事实上,这个示例代码支持好几种数据源的配置方案,你若是step3不做,项目有时也是可以正常运行的,前提是你装的hsql数据库。在src.com.ibatis.jpetstore.persistence.DaoConfig中有建表语句,使用的是hsql数据库。当然如果你和我一样,想清楚jpetstore5.0的每一个细节的话,建议修改DaoConfig代码如下:
------------START-----------
static {
try {
daoManager = newDaoManager(null);
Properties props = Resources.getResourceAsProperties("properties/database.properties");
String url = props.getProperty("url");
String driver = props.getProperty("driver");
String username = props.getProperty("username");
String password = props.getProperty("password");
//如果url为MySQL的,执行MySQL的建表语句..
if (url.equals("jdbc:mysql://localhost:3306/jpetstore")) {
Class.forName(driver).newInstance();
Connection conn = DriverManager.getConnection(url, username, password);
try {
ScriptRunner runner = new ScriptRunner(conn, false, false);
runner.setErrorLogWriter(null);
runner.setLogWriter(null);
runner.runScript(Resources.getResourceAsReader("ddl/jpetstore-mysql-schema.sql"));//建表
runner.runScript(Resources.getResourceAsReader("ddl/jpetstore-mysql-dataload.sql"));//输入实验数据
runner.runScript(Resources.getResourceAsReader("ddl/jpetstore-mysql-create-user.sql"));//权限
} finally {
conn.close();
}
}
} catch (Exception e) {
throw new RuntimeException("Description. Cause: " + e, e);
}
}
----------------END-----------------
仔细研究下ddl会发现,没有建database的语句,可是程序又在使用。这个原因很简单:一个项目建好后,数据源database一般不需要改动,可是建表语句和初始化数据的语句确是要经常改动的。自然为了方便管理,建database的ddl语句也应该保存下来。
--------------------------------------
做完上面三步,src目录下的文件就算是全了。当然有个小bug,修改item.xml文件相应的信息为:
I.ITEMID AS itemId,
LISTPRICE AS listPrice,
UNITCOST AS unitCost,
原因:1、表的字段查询结果没有使用别名。
2、多表查询,没有指定表的名字。
============================================================================================================
step4:
复制解压包web下所有的文件到新建的项目jpetstore5.0的WebRoot下,覆盖该包下所有的文件
============================================================================================================
step5:
删除lib下无用的jar包,如:hsqldb.jar
===============================================================================================================
把项目部署到Tomcat6.0上,运行下试试,应该可以正常运行了。
===============================================================================================================
以上这些步骤都是首次运行jpetstore5.0的步骤,随着学习的深入这几个步骤还需要细致地研究下,做得并不完善。
比如第三步,如果修改的DaoConfig正确、你在做测试时对数据库的改动没有添加到相应的ddl中,每次运行jpetstore5.0都会重新建表,你以前做的操作是不存在的。第五步,使用MyEclipse6.5可以自己配置user library。你使用了自己的lib,可以删除的jar文件自然更多。
没用的东西就没必要存在,这样也方便学习。