使用Wabacus实现增删查改
一、 搭建框架:
a) 到下载最新版le/p/wabacus/downloads/list,这里我下载到的是wabacus3.5-release.zip。
b) 建一个Web工程,解压wabacus3.5-release.zip,并把wabacus-3.5.jar和【依赖的第三方jar包】文件夹中所有jar包放到工程的WEB-INF\lib中。
c) 在samples文件夹中,解压任意一个工程,这里我解压了WabacusBlank_project.zip。并在解压后的文件夹(后面简称【例子】)的WebRoot中,到webresources这个文件夹,把它复制到工程里的Web根目录下。
d) 在工程里的WEB-INF下的l中,加入如下代码:
<servlet>
        <servlet-name>wabacus</servlet-name>
        <servlet-class>com.wabacus.WabacusServlet</servlet-class>
        <init-param>
            <param-name>configpath</param-name>
            <param-value>classpath{/reportconfig}</param-value>
        </init-param>
        <load-on-startup>20</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>wabacus</servlet-name>
        <url-pattern>/ShowReport.wx</url-pattern>
</servlet-mapping>
其中com.wabacus.WabacusServletwabacus的启动Servletconfigpath参数设置的是wabacus核心配置文件(l)的位置,这里我放在classpath下。/ShowReport.wxServlet的请求路径,一会会用得到! 当然也可以改成自己喜欢的。
e) 把【例子】目录的src目录中的reportconfig目录复制到工程的src文件夹下,之后把src/reportconfig目录下的resources目录和l文件删掉。
f) 修改reportconfig目录下的l文件,
1)  <system>标签
A  namewebroot<item>子标签的value值修改为你的应用的根URL,这里开发时直接改成你的工程的名字就可以了。
B  nameshowreport-url<item>子标签的value值修改为刚才l中配置的url-pattern的值。如:/ShowReport.wx
2)  <datasources>标签
A、把default属性改为我们要使用的数据库对应的<datasource>标签的name属性的值。
B、修改<datasource>标签相应的配置信息,如urlusernamepassword等。比如我们选择的是mysql,就应该在mysql对应的<datasource>标签上修改类似如下信息:
<property name="url">
<![CDATA[jdbc:mysql://localhost/wabacus?useUnicode=true&characterEncoding=UTF-8]]>
</property>
          <property name="user">root</property>
<property 基本的增删改查语句name="password">mysql</property>
3)< i18n-resources>标签
这里,我们不需要支持国际化,只要支持中文就行。所以这个标签直接去掉。
4)<report-files>标签
这里配置的是报表(report-file)的信息。报表就是我们一会要写到的配置文件。它默认是只有如下这一段配置,没有的话请加上
<report-file>l</report-file>
这里代表引用了report目录下的l,其中report目录是在reportconfig目录下的,也就是说这里的路径配置是相对于reportconfig的。事实上,l中的所有与路径有关的配置信息都是相对于l所处的路径,这里我们的l文件所处的路径是src/reportconfig
l是一会要写的配置文件。如果有多个,只要配置多个
<report-file>就行了
二、 编写l实现增删查改。
a) 根据上面在<datasources>标签所选择的数据库建相关的databasetable。这里我建一
Person表,代表一个人。
Person表设计如下:
字段名称
字段类型
字段大小
是否为空
备注
id
INT
4
ID(主键)
realname
VARCHAR
20
真实姓名
age
INT
4
年龄
birthday
VARCHAR
20
出生日期
sex
VARCHAR
1
性别
这里我使用mysql数据库
其中建表语句:
create table Person(id int auto_increment primary key,realname varchar(20),age int,birthday varchar(20),sex varchar(1));
b) src/l(如果没,则建一个)中添加如下代码:
<?xml version="1.0" encoding="UTF-8"?>
<applications xmlns="www.wabacus"
              xmlns:xsi="/2001/XMLSchema-instance"
              xsi:schemaLocation="www.wabacus ../xsd/wabacus.applications.xsd">
    <page id="listpage1">
        <report id="report1" type="editablelist2" title="人员信息列表" dataexport="richexcel">
            <display>
                <col column="id" label="序号" displaytype="hidden"/>
                <col column="realname" label="真实姓名" clickorderby="true" />
                <group label="基本信息">
                    <col column="sex" label="性别">
                        <inputbox type="selectbox">
                            <option value="1" label=""></option>
                            <option value="2" label=""></option>
                        </inputbox>
                    </col>
                    <col column="age" label="年龄" clickorderby="true"/>
                    <col column="birthday" label="出生日期" clickorderby="true">
                        <inputbox type="datepicker"></inputbox>
                    </col>
                </group>
            </display>
            <sql>
                <select>
                    <value>
                        <![CDATA[select * from Person where {#condition#} order by realname]]>
                    </value>
                    <condition name="searchRealName" label="真实姓名">
                        <value>
                            <![CDATA[(realname like  '%#data#%' )]]>
                        </value>
                    </condition>
                    <condition name="searchSex" label="性别">
                        <value>
                            <![CDATA[(sex = #data# )]]>
                        </value>
                        <inputbox type="radiobox">
                            <option value="1" label=""></option>
                            <option value="2" label=""></option>
                        </inputbox>
                    </condition>
                    <condition name="searchSex" label="性别">
                        <value>
                            <![CDATA[(birthday like '%#data#%' )]]>
                        </value>
                        <inputbox type="datepicker">
                        </inputbox>
                    </condition>
                </select>
                <insert>
insert into Person(@{realname},@{age},@{birthday},@{sex});
                </insert>
                <update>
update  Person(realname=@{realname},age=@{age},birthday=@{birthday},sex=@{sex})
where id=@{id};
                </update>
                <delete>
delete from Person where id=@{id};
                  </delete>
            </sql>
            <format>
                <value>
                    sex=sex==null?"1":im();
                    if(sex.equals("2"))
                        sex="";
                    else
                        sex="";
                </value>
            </format>
        </report>
    </page>
</applications>
c) 把工程部署到tomcat,启动tomcat,并在浏览器打开类似于如下的链接:
localhost:8080/wabacus_01/ShowReport.wx?PAGEID=listpage1
其中wabacus_01是上面l配置的<system>标签下的<item>子标签name为webroot的value值,ShowReport.wx是l中配置的url-pattern的值。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。