ASP教程 PHP教程
  • JSP教程
  • CGI教程 XML教程 ASP.NET教程 JAVA教程
    当前位置:教程 > 程序设计 > JSP教程 > 正文

    从Jpetstore 开始IBATIS之旅

    编辑:教程网 来源:网络 时间:2011年10月18日 17:00

    前一阵在研究O/R MAPPING,觉得HIBERNATE和IBATIS都是好东西,但IBATIS更容易上手,而且跟数据库打交道的时候只需把SQL 语句配置在XML里即可,不象HIBERNAMTE要写复合其规范的HQL。当然现在HIBERNATE大行其道肯定是有道理的,我过一阵子也打算好好学习一下。
    技术发展的太快,学习方法是很重要的。(看来开源确实促进了生产力的发展啊,由此推断,共产主义社会肯定会实现的啦。)我认为必须摒弃抱本书按部就班的学习方法,而应该是STUDY IN ACTION,在实践中学习,缺啥补啥,大不了不断重构好了。当然前提是有一定的技术积累了。 为了学习IBATIS,除了大致看了一下IBATIS的官方文档,我把主要精力放在研究作者的范例JPETSTORE上了,大家可以道WWW.IBATIS.COM去下载4.0版本的例子,3.X的不要下了,代码写的没有4.0的优美。 然后再去下载MySQL,TOMCAT,安装调试让JETSTORE跑起来。这个过程我就不讲了,大家动动脑筋找点成就感吧。工欲善其事,必先利其器。我用的是JBUILDER9,因为我以前用Delphi的对BORLAND的产品有感情啊(当然BORLAND不会对我有感情,因为。。。。。。^_^,中国特色)。建一个新项目,保存后关掉PROJECT,然后把JPETSTORE的代码包拷贝到:project rc\下,再打开刚才的项目,顺利的话你就能看到项目下的一堆包啦。现在编译肯定是有问题的,别急别急,在项目里加载上JPETSTORE源码LIB目录下的所有.JAR和SERVLET.JAR,为了连MYSQL,你还得加载MYSQL的JDBC驱动。具体做法,你可以在JBUILDER9 Tools\config libraries 新建三个LIB,比如IBATISLIB里放上JPETSTORE源码LIB目录下的所有.JAR,servlet就不要建了,JB9里带了,再建一个MYSQLLIB放上MYSQL的JDBC驱动的.jar,然后修改JPETSTORE源码SRC\PROPERTIES\database.properties的内容,例如,我的是driver=org.gjt.mm.mysql.Driverurl=jdbc:mysql://localhost/jpetstoreusername=jpetstorepassword=ibatis9977现在MAKE PROJECT应该可以通过了。好啦,打开com.ibatis.jpetstore底下的所有.Java文件吧。Domain目录下放的是JAVABEAN,一般是跟表相对应的。Persistence目录下放的是DAO接口和具体实现类,DAO即数据访问对象(DATA Access OBJECT),是用来跟数据库打交道的。IBATIS的O/R MAPPING的使用方法也就在这个目录里面。Presentation目录下放的是FORMBEAN,后面还要说到JPETSTORE范例对STRUTS的创造性使用。Service目录下放的是SERVICE类,通过SERVICE对象调用DAO对象的方法来访问数据库的,这是一种常用的设计模式。 常见的STRUTS编程应该是一个动作对应一个ACTION,例如写一个交友网站,用户登录和用户查询就得写分别写两个ACTION来处理。而JPETSTORE的作者克林顿(Clinton Begin,名字够响亮的)写了一个ACTION动态的调用FORMBEAN的不同方法来处理不同的动作。代码如下,注意execute()的写法!
    public class BeanAction extends Action {
    public ActionForward execute(ActionMapping mapping,
    ActionForm form, HttpServletRequest request,
    HttpServletResponse response)
    throws Exception {
    String forward = "success";
    try {
    ActionContext.initialize(request, response);
    if (form != null) {
    // Explicit Method Mapping
    Method method = null;
    String methodName = mapping.getParameter();
    if (methodName != null && !"*".equals(methodName)) {
    try {
    method = form.getClass().getMethod(methodName,
    null); forward = (String) method.invoke(form, null);
    } catch (Exception e) {
    throw new BeanActionException("Error dispatching
  • 原文来自 教程网 转载请注明:http://www.websmill.com/chengxu/JSP/28437.html

  • 上一篇:java写文件
  • 下一篇:Eclipse Form程序设计指南(1)