家德瑞入门教程(第6章 手工建立一个数据库操作功能)

来源:互联网 发布:mac os 查看 ip 编辑:程序博客网 时间:2024/04/29 13:21

 (这里是文字版教程,图文版请进入http://download.csdn.net/detail/home_dear/4029277直接下载)

刚才我们通过手动的方式完成了一个HelloWorld的程序、又通过自动的方式完成了一个数据库操作的功能。现在我们以手动的方式建立一个数据库的保存功能。用来了解整个原理。

1.1 第一步:新建一个数据表。

CREATE TABLE `tb_author` (              

             `id` int(10) NOT NULL AUTO_INCREMENT, 

             `username` varchar(50) DEFAULT NULL,  

             `truename` varchar(50) DEFAULT NULL,   

             PRIMARY KEY (`id`)                    

           ) ENGINE=InnoDB DEFAULT CHARSET=gb2312  

需要注意的是家德瑞的表名字很有讲究,以“tb_”开头,后面与jara的对应Bean的类名一致。具体规则在本教程的结尾有专门说明

1.2 第二步:新建一个与表对应的Bean

新建一个与tb_author相对应的bean.bean的内容如下:

package booksbean.test;

/**

 * 中文名:作者。说明:保存作者信息;

 * @author HomeDear

 */

public class Author {

    /** 中文名:主键ID。说明:主键ID */

    private Integer id;

 

    /** 中文名:用户名。说明: */

    private String username;

 

    /** 中文名:作者姓名。说明: */

    private String truename;

 

    /**

     * 取得中文名:主键ID。说明:主键ID(id)的值

     * @return 中文名:主键ID。说明:主键ID

     */

    public Integer getId() {

       return id;

    }

    /**

     * 给中文名:主键ID。说明:主键ID(id)赋值

     * @param id 中文名:主键ID。说明:主键ID

     */

    public void setId(Integer id) {

       this.id = id;

    }

    /**

     * 取得中文名:用户名。说明:(username)的值

     * @return 中文名:用户名。说明:

     */

    public String getUsername() {

       return username;

    }

    /**

     * 给中文名:用户名。说明:(username)赋值

     * @param username 中文名:用户名。说明:

     */

    public void setUsername(String username) {

       this.username = username;

    }

    /**

     * 取得中文名:作者姓名。说明:(truename)的值

     * @return 中文名:作者姓名。说明:

     */

    public String getTruename() {

       return truename;

    }

    /**

     * 给中文名:作者姓名。说明:(truename)赋值

     * @param truename 中文名:作者姓名。说明:

     */

    public void setTruename(String truename) {

       this.truename = truename;

    }

}

Bean没有什么特别之处。只是属性和与之对应的get、set方法。需要注意的是命名规则。因为hibernate是通过配置文件把表与bean相关联起来的,但家德瑞是通过名字来关联起来的。

 

这个Bean建完后的情况如下:

1.3 第三步:建一个Dao文件。

文件内容如下:

/**

 * Author操作dao

 */

package test.logic.dao;

import java.util.ArrayList;

import com.homedear.db.HdrDao;

import com.homedear.db.InputBean;

import com.homedear.db.OutputBean;

import com.homedear.db.PageList;

import booksbean.test.Author;

public class AuthorDao extends HdrDao {

/**

* Author对象(中文名:作者。说明:保存作者信息)保存

* @param inputBean

* @return

 * @throws Exception

*/

  private int saveAuthor(InputBean inputBean) throws Exception{

     //声明Author对象(中文名:作者。说明:保存作者信息)

     Author author = new Author();

     //得到页面参数,并将页面参数赋值给Author对象(中文名:作者。说明:保存作者信息)

     inputBean.initBeanSingle(author);

     return this.save(author);

  }

 

  public OutputBean exec(InputBean inputBean) throws Exception {

     //声明输出类

     OutputBean out = new OutputBean();

     if(inputBean.isActionType("authorNewOk")){

        int saveRes=saveAuthor(inputBean);

        out.put("saveRes",saveRes);

     }

     return out;

  }

}

这个dao完成了数据保存的工作。建立完dao文件后的工程目录结构如下:

1.4 第四步:建立一个Logic文件

文件内容如下:

/**

* 关于Author的业务逻辑类

*/

package test.logic;

import test.logic.dao.AuthorDao;

import com.homedear.db.InputBean;

import com.homedear.db.OutputBean;

import com.homedear.dis.BaseLogicImpl;

public class AuthorLogic extends BaseLogicImpl {

  /**

   * 与数据库相关的方法,此方法非必须

   */

  public OutputBean myDao(InputBean inputBean)throws Exception{

     AuthorDao dao = new AuthorDao();

     //一个业务逻辑类只能操作一个数据库,如果要操作多个数据库可以在action中调用多个数据库

     //dao.setAlias(1);

     OutputBean out = dao.main(inputBean);

     return out;

  }

  /**

   * 除数据库相关的方法以外的其它方法,为入口方法

   */

  public OutputBean main(InputBean inputBean) throws Exception {

     //声明输出类

     OutputBean out = new OutputBean();

     //执行数据库操作

     out = myDao(inputBean);    

    

    

     //执行数据库以外的其它操作

     //...

    

     //返回输出bean

     return out;

  }

}

Logic文件完成对dao的调用以及如果存在其它业务时,对其它业务的调用。

Logic文件建立完成后的目录结构如下:

1.5 第五步:建立Action文件

Action文件的内容如下:

package test;

import com.homedear.db.InputBean;

import com.homedear.db.OutputBean;

import com.homedear.dis.BaseLogic;

import com.homedear.dis.BaseServlet;

import java.util.ArrayList;

import com.homedear.tag.tools.PageInfo;

/**

 * action控制类

 * @author HomeDear

 *

 */

public class AuthorAction extends BaseServlet {

  public OutputBean execute(InputBean inputBean) throws Exception {

     BaseLogic authorLogic = InstanceLogic("test.logic.AuthorLogic");

     OutputBean out = authorLogic.execLogic(inputBean);

     //设置显示页面

     if(inputBean.isActionType("authorNewOk")){

        out.setViewNameIsSuccess();

     }

     return out;

  }

}

Action完成后台与前台的数据交换与页面跳转等工作。建立完成后的目录结构如下:

1.6 第六步:建立jsp页面

用于手工录入要入库的数据信息,Jsp页面的名字:authorNew.jsp。内容如下:

 

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>

<%@ include file="/util/taglib-import.jspf" %>

<html:html>

<ul>新建Author(中文名:作者。说明:保存作者信息)</ul>

<html:form name="form1"action="test.AuthorAction" hdrCheck="return checkForm('form1')">

<html:hidden name="actionType" value="authorNewOk"/>

<table class="tableCss">

  <tr>

    <td class="tdCss">用户名:</td>

    <td class="tdCss"><html:text name="Author_username" hdrCheck="!*用户名"/></td>

  </tr>

  <tr>

    <td class="tdCss">作者姓名:</td>

    <td class="tdCss"><html:text name="Author_truename" hdrCheck="!*作者姓名"/></td>

  </tr>

  </table>

  <table class="tableCss">

  <tr>

    <td colspan="2"  class="tdCss"><div align="center"><html:submitButton value="新建"/></div></td>

  </tr>

</table>

</html:form>

</html:html>

 

1.7 第七步:部署工程并测试

部署(略)。别忘了从启一下tomcat。

在浏览器中录入以下地址:

http://localhost/HelloWorld/action/test.AuthorAction?actionType=authorNew

以下是截图

本教程的所有的源码与本教程一同发行。请进入http://download.csdn.net/detail/home_dear/4029277直接下载