boardrenderdb.java

来自「源码/软件简介: 云网论坛1.1RC国际版是采用JSP开发的集论坛、CMS(网」· Java 代码 · 共 198 行

JAVA
198
字号
package com.redmoon.forum;

import cn.js.fan.base.ObjectDb;
import cn.js.fan.db.PrimaryKey;
import cn.js.fan.db.Conn;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.ResultSet;
import com.redmoon.forum.plugin.base.IPluginRender;
import com.redmoon.forum.plugin.RenderMgr;

public class BoardRenderDb extends ObjectDb {
    public BoardRenderDb() {
        init();
    }

    public BoardRenderDb(String boardCode) {
        this.boardCode = boardCode;
        init();
        load();
    }

    public boolean setBoardRender(String boardCode, String renderCode) {
        BoardRenderDb br = getBoardRenderDb(boardCode);
        if (br.isLoaded()) {
            // logger.info("setBoardRender: boardCode=" + boardCode + " loaded=" + br.isLoaded());
            br.setRenderCode(renderCode);
            return br.save();
        }
        else {
            br.setBoardCode(boardCode);
            br.setRenderCode(renderCode);
            return br.create();
        }
    }

    public BoardRenderDb getBoardRenderDb(String boardCode) {
        return (BoardRenderDb)getObjectDb(boardCode);
    }

    public ObjectDb getObjectDb(Object primaryKeyValue) {
        BoardRenderCache fc = new BoardRenderCache(this);
        primaryKey.setValue(primaryKeyValue);
        return (BoardRenderDb)fc.getObjectDb(primaryKey);
    }

    public boolean del() {
        int rowcount = 0;
        Conn conn = null;
        try {
            conn = new Conn(connname);
            PreparedStatement ps = conn.prepareStatement(this.QUERY_DEL);
            ps.setString(1, boardCode);
            rowcount = conn.executePreUpdate();
            BoardRenderCache uc = new BoardRenderCache(this);
            primaryKey.setValue(boardCode);
            uc.refreshDel(primaryKey);
        } catch (SQLException e) {
            logger.error(e.getMessage());
        } finally {
            if (conn != null) {
                conn.close();
                conn = null;
            }
        }
        return rowcount>0? true:false;
    }

    public int getObjectCount(String sql) {
        return 0;
    }

    public ObjectDb getObjectRaw(PrimaryKey pk) {
        return new BoardRenderDb(pk.getStrValue());
    }

    public void setQueryCreate() {
        this.QUERY_CREATE = "insert into sq_boardrender (boardCode,renderCode) values (?,?)";
    }

    public void setQuerySave() {
        this.QUERY_SAVE =
            "update sq_boardrender set renderCode=? where boardCode=?";
    }

    public void setQueryDel() {
        this.QUERY_DEL = "delete from sq_boardrender where boardCode=?";
    }

    public void setQueryLoad() {
        this.QUERY_LOAD =
            "select renderCode from sq_boardrender where boardCode=?";
    }

    public void setQueryList() {
        this.QUERY_LIST = "select boardCode,renderCode from sq_boardrender";
    }

    public boolean create() {
        int rowcount = 0;
        Conn conn = null;
        try {
            conn = new Conn(connname);
            PreparedStatement ps = conn.prepareStatement(this.QUERY_CREATE);
            ps.setString(1, boardCode);
            ps.setString(2, renderCode);
            rowcount = conn.executePreUpdate();
        } catch (SQLException e) {
            logger.error(e.getMessage());
        } finally {
            if (conn != null) {
                conn.close();
                conn = null;
            }
        }
        return rowcount>0? true:false;
    }

    public boolean save() {
        int rowcount = 0;
        Conn conn = null;
        try {
            conn = new Conn(connname);
            PreparedStatement ps = conn.prepareStatement(this.QUERY_SAVE);
            ps.setString(1, renderCode);
            ps.setString(2, boardCode);
            rowcount = conn.executePreUpdate();
            BoardRenderCache uc = new BoardRenderCache(this);
            primaryKey.setValue(boardCode);
            uc.refreshSave(primaryKey);
        } catch (SQLException e) {
            logger.error(e.getMessage());
        } finally {
            if (conn != null) {
                conn.close();
                conn = null;
            }
        }
        return rowcount>0? true:false;
    }

    public void load() {
        ResultSet rs = null;
        Conn conn = new Conn(connname);
        try {
            PreparedStatement ps = conn.prepareStatement(this.QUERY_LOAD);
            ps.setString(1, boardCode);
            primaryKey.setValue(boardCode);
            rs = conn.executePreQuery();
            if (rs.next()) {
                renderCode = rs.getString(1);
                loaded = true;
            }
        } catch (SQLException e) {
            logger.error("load:" + e.getMessage());
        }
        finally {
            if (conn!=null) {
                conn.close();
                conn = null;
            }
        }
    }

    public Object[] getObjectBlock(String query, int startIndex) {
        return null;
    }

    public void setPrimaryKey() {
        primaryKey = new PrimaryKey("boardCode", PrimaryKey.TYPE_STRING);
    }

    public void setBoardCode(String boardCode) {
        this.boardCode = boardCode;
    }

    public void setRenderCode(String renderCode) {
        this.renderCode = renderCode;
    }

    public String getBoardCode() {
        return boardCode;
    }

    public String getRenderCode() {
        return renderCode;
    }

    public IPluginRender getRender() {
        RenderMgr rm = new RenderMgr();
        // logger.info("getRender:" + renderCode);
        return rm.getRenderUnit(renderCode).getRender();
    }

    private String boardCode;
    private String renderCode = "default";
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?