源码参考

crud-demo.zip

源码解析

插件类型

  • 网络服务插件
  • 继承了ExtDefaultPlugin 类并实现了PluginWebSupport接口

Maven依赖

  • 使用了Alibaba的fastjson 库进行json序列化和反序列化,方便调用方解析
  • 使用了Lombok 插件,除去无效的代码编写
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.0</version>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.62</version>
</dependency>
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.14.0</version>
</dependency>

国际化

  • 如图所示,在代码中使用国际化的方法

对数据库进行操作

  • 使用 formDataDao 进行数据库操作,具体可以参考代码

  • 使用 jdbc 进行数据库操作 (除非无法使用 formDataDao ,否则不建议使用) 
try {
        // retrieve connection from the default datasource
        DataSource ds = (DataSource)AppUtil.getApplicationContext().getBean("setupDataSource");
        con = ds.getConnection();
         
        // execute SQL query
        if(!con.isClosed()) {
            String id = "18a8680c-1b6a-4425-b940-14230912db06";
            stmt = con.prepareStatement("SELECT c_requestId,c_code from app_fd_vt_ali_sms_log where id=?");
            stmt.setObject(1, id);
            rs = stmt.executeQuery();
            while (rs.next()) {
                FormRow row = new FormRow();
                row.setProperty("requestId", (rs.getObject("c_requestId") != null)?rs.getObject("c_requestId").toString():"");
                row.setProperty("code", rs.getObject("c_code"));
                rows.add(row);
            }
        }
    } catch(Exception e) {
        LogUtil.error("Sample app - Form 1", e, "Error loading data in load binder");
    } finally {
        //always close the connection after used
        try {
            if (rs != null) {
                rs.close();
                rs = null;
            }
        } catch (SQLException e) {/* ignored */}
        try {
            if (stmt != null) {
                stmt.close();
                stmt = null;
            }
        } catch (SQLException e) {/* ignored */}
        try {
            if (con != null) {
                con.close();
                con = null;
            }
        } catch (SQLException e) {/* ignored */}
    }

效果

  • 上传插件,然后如图所示访问.
  • 如果没有id,可以使用新增接口插入一条记录

  • No labels