banq,你做的软件做的怎末样了

02-12-03 nmg

banq,你做的网站引擎软件做的怎末样了,想好怎末卖了吗?
做市场是非常主要的!你打算如何去做市场?

nmg
2002-12-03 15:56

banq?做的怎末样了

nmg
2004-08-09 20:06

时光匆匆

banq
2004-08-10 12:58

多谢,现在主要做JdonSD框架了

banq
2004-08-10 13:31

哪里有无你的系统介绍,非常大,我下载了,在欣赏中,原来多日不见,闭门修炼去了,佩服。

jody
2004-08-10 15:25

我靠。。。本来想学习学习这个代码生成的软件。。

10多MB。。。吓人。。在这个 Ant 和velocity盛行的年代。。。居然能做出那么大的一个软件。。。真是佩服啊。。。

小弟我用 ant + velocity 也做了代码生成工具。。
生成form 用的是公用form strutsconf ,strutsaction .HibernateBMP,Hibernate javacode ,以及struts 的前台表现层velocity ,一次生成,对表生成操作为 浏览,添加.删除.修改,查寻,翻页,打印。,,,,感觉还是不复杂的

sunw
2004-08-10 16:47

banq 现在不做软件了 ,做教育 做框架了 , 是吧

haibo
2004-08-10 16:48

我不太懂你所说的“代码生成工具”是什么。但从你说的生成表操作添加.删除.修改,查寻,翻页,打印等等,如果这样的代码需要"批量生成”
的话,设计肯定没有做好,否则不会出现冗余

banq
2004-08-11 11:36

to jody
你的生成器是否有介绍和演示?想看看。。。



jody
2004-08-13 12:45

生成代码的样子。
IE下浏览

Mozilla下浏览

jody
2004-08-13 12:46

代码:

package com.coolwen.ant;

import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSource;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task;


/**
 * TODO 
 *
 * @author <a href="mailto:jody@cpgroup.cn>QiaoLu</a>
 * @Date:2004-7-23
 */
public abstract class AbstractTask  extends Task{
	
	protected String datasourceDriver;
	protected String datasourceUrl;
	protected String datasourceUsername;
	protected String datasourcePassword;
	
	protected Project project;

	/**
	 * @return Returns the datasourceDriver.
	 */
	public String getDatasourceDriver() {
		return datasourceDriver;
	}
	/**
	 * @param datasourceDriver The datasourceDriver to set.
	 */
	public void setDatasourceDriver(String datasourceDriver) {
		this.datasourceDriver = datasourceDriver;
	}
	/**
	 * @return Returns the datasourcePassword.
	 */
	public String getDatasourcePassword() {
		return datasourcePassword;
	}
	/**
	 * @param datasourcePassword The datasourcePassword to set.
	 */
	public void setDatasourcePassword(String datasourcePassword) {
		this.datasourcePassword = datasourcePassword;
	}
	/**
	 * @return Returns the datasourceUrl.
	 */
	public String getDatasourceUrl() {
		return datasourceUrl;
	}
	/**
	 * @param datasourceUrl The datasourceUrl to set.
	 */
	public void setDatasourceUrl(String datasourceUrl) {
		this.datasourceUrl = datasourceUrl;
	}
	/**
	 * @return Returns the datasourceUsername.
	 */
	public String getDatasourceUsername() {
		return datasourceUsername;
	}
	/**
	 * @param datasourceUsername The datasourceUsername to set.
	 */
	public void setDatasourceUsername(String datasourceUsername) {
		this.datasourceUsername = datasourceUsername;
	}
	protected DataSource getDataSource(){
		BasicDataSource ds = new BasicDataSource();
		ds.setDriverClassName(this.getDatasourceDriver());
		ds.setUsername(this.getDatasourceUsername());
		ds.setPassword(this.getDatasourcePassword());
		ds.setUrl(this.getDatasourceUrl());
		return ds;
	}
	public abstract void execute () throws BuildException;
	
	
	/**
	 * @return Returns the project.
	 */
	public Project getProject() {
		return project;
	}
	/**
	 * @param project The project to set.
	 */
	public void setProject(Project project) {
		this.project = project;
	}
}
<p class="indent">

jody
2004-08-13 12:47

代码 生成 HBM 和JAVA


package com.coolwen.ant.hibernate;

import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import java.util.StringTokenizer;

import net.sf.hibernate.tool.ddl2hbm.MapGenerator;

import org.apache.tools.ant.BuildException;

import com.coolwen.ant.AbstractTask;

/**
 * TODO 
 *
 * @author <a href="mailto:jody@cpgroup.cn>QiaoLu</a>
 * @Date:2004-7-23
 */
public class HibernateTask extends AbstractTask {
	
	protected String coolwen_hibernate_package;
	
	protected String coolwen_hibernate_schem;
	
	protected String[] coolwen_hibernate_tables;
	
	protected String coolwen_hibernate_catalog;
	
	protected String coolwen_hibernate_idname;
	
	protected String coolwen_hibernate_idtype; 
	
	protected File coolwen_hibernate_outDir;
	
	protected String coolwen_hibernate_generator;
	
	protected boolean coolwen_hibernate_Java;
	
	protected boolean coolwen_hibernate_Hbm;
	
	protected boolean coolwen_hibernate_singlemap;
	
	protected String coolwen_hibernate_singlemapname;
	
	
	
	
	/* (non-Javadoc)
	 * @see com.coolwen.ant.AbstractTaskexecute()
	 */
	public void execute() throws BuildException {
		// TODO Auto-generated method stub
		MapGenerator mg = new MapGenerator();
		mg.setCatalog(this.getCoolwen_hibernate_catalog());
		mg.setSchemaPattern(this.getCoolwen_hibernate_schem());
		mg.setIdName(this.getCoolwen_hibernate_idname());
		mg.setIdType(this.getCoolwen_hibernate_idtype());
		mg.setTableNames(this.getCoolwen_hibernate_tables());
		mg.setPackageName(this.getCoolwen_hibernate_package());
		mg.setHibernateTypes(true);
		mg.setGenerator(this.getCoolwen_hibernate_generator());
		mg.setOutputDirectory(this.getCoolwen_hibernate_outDir());
		mg.setSingleMapFile(this.isCoolwen_hibernate_singlemap());
		mg.setMappingFile(this.getCoolwen_hibernate_singlemapname());
		mg.setJava(this.isCoolwen_hibernate_Java());
		mg.setHbm(this.isCoolwen_hibernate_Hbm());
		try {
			mg.generate(this.getDataSource().getConnection());
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	/**
	 * @return Returns the coolwen_hibernate_package.
	 */
	public String getCoolwen_hibernate_package() {
		return coolwen_hibernate_package;
	}
	/**
	 * @param coolwen_hibernate_package The coolwen_hibernate_package to set.
	 */
	public void setCoolwen_hibernate_package(String coolwen_hibernate_package) {
		this.coolwen_hibernate_package = coolwen_hibernate_package;
	}
	
	
	/**
	 * @return Returns the coolwen_hibernate_schem.
	 */
	public String getCoolwen_hibernate_schem() {
		return coolwen_hibernate_schem;
	}
	/**
	 * @param coolwen_hibernate_schem The coolwen_hibernate_schem to set.
	 */
	public void setCoolwen_hibernate_schem(String coolwen_hibernate_schem) {
		this.coolwen_hibernate_schem = coolwen_hibernate_schem;
	}
	
	/**
	 * @return Returns the coolwen_hibernate_tables.
	 */
	public String[] getCoolwen_hibernate_tables() {
		return coolwen_hibernate_tables;
	}
	/**
	 * @param coolwen_hibernate_tables The coolwen_hibernate_tables to set.
	 */
	public void setCoolwen_hibernate_tables(String coolwen_hibernate_tables) {
		String[] result = null;
		if(coolwen_hibernate_tables.toUpperCase().equals("*")){
			Connection conn = null;
			
			try {
				conn = this.getDataSource().getConnection();
				DatabaseMetaData dmd =conn.getMetaData();
				ResultSet rs = null;
				rs = dmd.getTables(this.getCoolwen_hibernate_catalog(), this.coolwen_hibernate_schem, "%", new String[] {"TABLE", "VIEW", "SYNONYM", "ALIAS"} );
				List l = new LinkedList();
				while (rs.next()) {
					l.add(rs.getString(3));
				}
				result = new String[l.size()];
				for(int i = 0 ; i< l.size(); i++){
					result[i] = (String)l.get(i);
				}
				rs.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally {
				if(conn != null)
					try {
						conn.close();
					} catch (SQLException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}
			}
		}else{
			StringTokenizer fqcnTokenizer = new StringTokenizer(coolwen_hibernate_tables, ";", false);
			
			result = new String[fqcnTokenizer.countTokens()];
			while (fqcnTokenizer.hasMoreTokens()) {
				result[fqcnTokenizer.countTokens()-1] = fqcnTokenizer.nextToken().trim().toUpperCase();
			}
		}
		this.coolwen_hibernate_tables = result;
	}
	
	/**
	 * @return Returns the coolwen_hibernate_catalog.
	 */
	public String getCoolwen_hibernate_catalog() {
		return coolwen_hibernate_catalog;
	}
	/**
	 * @param coolwen_hibernate_catalog The coolwen_hibernate_catalog to set.
	 */
	public void setCoolwen_hibernate_catalog(String coolwen_hibernate_catalog) {
		this.coolwen_hibernate_catalog = coolwen_hibernate_catalog;
	}
	/**
	 * @return Returns the coolwen_hibernate_idname.
	 */
	public String getCoolwen_hibernate_idname() {
		return coolwen_hibernate_idname;
	}
	/**
	 * @param coolwen_hibernate_idname The coolwen_hibernate_idname to set.
	 */
	public void setCoolwen_hibernate_idname(String coolwen_hibernate_idname) {
		this.coolwen_hibernate_idname = coolwen_hibernate_idname;
	}
	/**
	 * @return Returns the coolwen_hibernate_idtype.
	 */
	public String getCoolwen_hibernate_idtype() {
		return coolwen_hibernate_idtype;
	}
	/**
	 * @param coolwen_hibernate_idtype The coolwen_hibernate_idtype to set.
	 */
	public void setCoolwen_hibernate_idtype(String coolwen_hibernate_idtype) {
		this.coolwen_hibernate_idtype = coolwen_hibernate_idtype;
	}
	
	/**
	 * @return Returns the coolwen_hibernate_outDir.
	 */
	public File getCoolwen_hibernate_outDir() {
		return coolwen_hibernate_outDir;
	}
	/**
	 * @param coolwen_hibernate_outDir The coolwen_hibernate_outDir to set.
	 */
	public void setCoolwen_hibernate_outDir(File coolwen_hibernate_outDir) {
		this.coolwen_hibernate_outDir = coolwen_hibernate_outDir;
	}
	
	/**
	 * @return Returns the coolwen_hibernate_generator.
	 */
	public String getCoolwen_hibernate_generator() {
		return coolwen_hibernate_generator;
	}
	/**
	 * @param coolwen_hibernate_generator The coolwen_hibernate_generator to set.
	 */
	public void setCoolwen_hibernate_generator(
			String coolwen_hibernate_generator) {
		this.coolwen_hibernate_generator = coolwen_hibernate_generator;
	}
	
	/**
	 * @return Returns the coolwen_hibernate_singlemap.
	 */
	public boolean isCoolwen_hibernate_singlemap() {
		return coolwen_hibernate_singlemap;
	}
	/**
	 * @param coolwen_hibernate_singlemap The coolwen_hibernate_singlemap to set.
	 */
	public void setCoolwen_hibernate_singlemap(
			boolean coolwen_hibernate_singlemap) {
		this.coolwen_hibernate_singlemap = coolwen_hibernate_singlemap;
	}
	
	
	/**
	 * @return Returns the coolwen_hibernate_singlemapname.
	 */
	public String getCoolwen_hibernate_singlemapname() {
		return coolwen_hibernate_singlemapname;
	}
	/**
	 * @param coolwen_hibernate_singlemapname The coolwen_hibernate_singlemapname to set.
	 */
	public void setCoolwen_hibernate_singlemapname(
			String coolwen_hibernate_singlemapname) {
		this.coolwen_hibernate_singlemapname = coolwen_hibernate_singlemapname;
	}
	
	/**
	 * @return Returns the coolwen_hibernate_Hbm.
	 */
	public boolean isCoolwen_hibernate_Hbm() {
		return coolwen_hibernate_Hbm;
	}
	/**
	 * @param coolwen_hibernate_Hbm The coolwen_hibernate_Hbm to set.
	 */
	public void setCoolwen_hibernate_Hbm(boolean coolwen_hibernate_Hbm) {
		this.coolwen_hibernate_Hbm = coolwen_hibernate_Hbm;
	}
	/**
	 * @return Returns the coolwen_hibernate_Java.
	 */
	public boolean isCoolwen_hibernate_Java() {
		return coolwen_hibernate_Java;
	}
	/**
	 * @param coolwen_hibernate_Java The coolwen_hibernate_Java to set.
	 */
	public void setCoolwen_hibernate_Java(boolean coolwen_hibernate_Java) {
		this.coolwen_hibernate_Java = coolwen_hibernate_Java;
	}
}

jody
2004-08-13 12:48

生成根据模板生成action ....文件

package com.coolwen.ant.struts;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Vector;

import net.sf.hibernate.tool.ddl2hbm.JDBCUtil;
import net.sf.hibernate.util.StringHelper;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import org.apache.tools.ant.BuildException;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.context.Context;
import org.apache.velocity.runtime.RuntimeConstants;
import org.apache.velocity.texen.Generator;

import com.coolwen.ant.hibernate.HibernateTask;

/**
 * TODO 
 *
 * @author <a href="mailto:jody@cpgroup.cn>QiaoLu</a>
 * @Date:2004-7-29
 */
public class ActionTask extends HibernateTask {
	
	protected static Map template = new HashMap();
	
	protected File coolwen_struts_outpath;
	
	protected String coolwen_struts_schem;
	
	protected String coolwen_struts_templatepath;
	
	protected File coolwen_struts_documentpath;
	
	protected String coolwen_struts_package;
	public List getColumns(List value){
		List result = new ArrayList();
		 for (Iterator iter = value.iterator(); iter.hasNext(); ){
		 	JDBCUtil.Column column = (JDBCUtil.Column)iter.next();
		 	Column newColumn = new Column();
		 	newColumn.setHibernateType(column.hibernateType);
		 	newColumn.setJavaType(column.javaType);
		 	newColumn.setName(column.name.toLowerCase());
		 	newColumn.setSqlColumnLength(column.sqlColumnLength);
		 	newColumn.setSqlDecimalLength(column.sqlDecimalLength);
		 	newColumn.setSqlNotNull(column.sqlNotNull);
		 	newColumn.setSqlReadOnly(column.sqlReadOnly);
		 	newColumn.setSqlType(column.sqlType);
		 	result.add(newColumn);
		 }
		return result;
	}
	/* (non-Javadoc)
	 * @see org.apache.tools.ant.Taskexecute()
	 */
	public void execute () throws BuildException {
		List content = new ArrayList();
		for(int i = 0 ; i < this.getCoolwen_hibernate_tables().length ; i++){
			try {
				List pkColumns = JDBCUtil.getPrimaryKeyColumns(this.getDataSource().getConnection(), this.getCoolwen_hibernate_catalog(), this.getCoolwen_hibernate_schem(), this.getCoolwen_hibernate_tables()[i]);
				Set fkColumns = JDBCUtil.getForeignKeyColumns(this.getDataSource().getConnection(), this.getCoolwen_hibernate_catalog(), this.getCoolwen_hibernate_schem(), this.getCoolwen_hibernate_tables()[i]);				
				List columns = JDBCUtil.getTableColumns(this.getDataSource().getConnection(), this.getCoolwen_hibernate_catalog(), this.getCoolwen_hibernate_schem(), this.getCoolwen_hibernate_tables()[i]);
				
				ActionTemplateData actiontemplat = new ActionTemplateData ();
				actiontemplat.setClassname(this.getCoolwen_hibernate_tables()[i]);
				actiontemplat.setPackagename(this.getCoolwen_hibernate_package());
				actiontemplat.setColumns(this.getColumns(columns));
				actiontemplat.setFkColumns(fkColumns);
				actiontemplat.setPkColumns(this.getColumns(pkColumns));
				content.add(actiontemplat);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		try {
			 VelocityEngine ve = new VelocityEngine();
			 ve.setProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, this.getCoolwen_struts_templatepath());
			 ve.init();
			 Generator generator = Generator.getInstance();
			 generator.setVelocityEngine(ve);
			 generator.setOutputPath(this.getCoolwen_struts_templatepath());
			 Template template = null;
			 Writer writer = null;
			 //	TODO start struts config generat
			 Context struts = new VelocityContext();
			 struts.put("contents",content);
			 struts.put("schem",this.getCoolwen_struts_schem());
			 struts.put("package",this.getCoolwen_struts_package());
			 //template = generator.getTemplate("strutsTemplate.vm","GBK");
			 template = this.getTemplate(generator,"strutsTemplate.vm");
			 File strutsFile =  this.getCoolwen_struts_documentpath();
			 	  strutsFile = new File(strutsFile,"WEB-INF");
			 	  strutsFile = new File(strutsFile,"struts-config-"+this.getCoolwen_struts_schem()+".xml");
			 	 writer = this.getWriter(strutsFile,null);
			 	template.merge(struts,writer);
				writer.flush();
				writer.close();
				String rootid = this.create("Tree",true,"-1","");
				String schemid = this.create(this.getCoolwen_struts_schem().toLowerCase(),true,rootid,"");
			 for (Iterator iter = content.iterator(); iter.hasNext(); ){
				 Context c = new VelocityContext();
				 c.put("now", new Date().toString());
				 ActionTemplateData tempdata = (ActionTemplateData)iter.next();
				 System.out.println(schemid);
				 this.create(tempdata.classname.toLowerCase(),false,schemid,this.getCoolwen_struts_schem().toLowerCase()+"/"+tempdata.classname.toLowerCase());
				 c.put("content",tempdata);
				 c.put("schem",this.getCoolwen_struts_schem());
				 c.put("package",this.getCoolwen_struts_package()+"."+this.getCoolwen_struts_schem());
				//# TODO struts Action generat
				 File tempf = this.getCoolwen_struts_outpath();
				 tempf = new File(tempf,this.getCoolwen_struts_schem());
				 if(!tempf.exists())
				 	tempf.mkdirs();
				 tempf = new File(tempf,tempdata.classname+"Actions.java");
				 writer = this.getWriter(tempf,null);
				 template = this.getTemplate(generator,"actionTemplate.vm");
				 template.merge(c,writer);
				 writer.flush();
				 writer.close();
				 //c = null;
			    //# TODO struts confit generat
				
				//# Velocity generat
				Map templateMap = new HashMap();
				templateMap.put("add","addTemplate.vm");
				templateMap.put("detail","detailTemplate.vm");
				templateMap.put("list","listTemplate.vm");
				templateMap.put("print","printTemplate.vm");
				templateMap.put("update","updateTemplate.vm");
				templateMap.put("index","indexTemplate.vm");
				templateMap.put("frameMaster","frameMasterTemplate.vm");
				File velocity = this.getCoolwen_struts_documentpath();
					velocity = new File(velocity,this.getCoolwen_struts_schem().toLowerCase()+File.separator+tempdata.getClassname().toLowerCase());
					if(!velocity.exists())
						velocity.mkdirs();
				for(Iterator tmap = templateMap.keySet().iterator(); tmap.hasNext();){
					template = null;
					String key = (String)tmap.next();
					String value = (String)templateMap.get(key);
					writer = null;
		            File veloctiytemp = new File(velocity,key+".vm");
		            writer = this.getWriter(veloctiytemp,null);
		            template = this.getTemplate(generator,value);//generator.getTemplate(value,"GBK");
		            template.merge(c,writer);
					writer.flush();
					writer.close();
		        }
			 }
				
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
	}
	protected String makeEntityName(String name) {
		String tmp = makeMemberName(name);
		tmp = tmp.substring(0,1).toUpperCase() + tmp.substring(1);
		return tmp;
	}
	
	protected String makeMemberName(String name) {
		String memberName = name.toLowerCase();
		int i;
		while ( (i = memberName.indexOf(StringHelper.UNDERSCORE) ) != -1 ) {
			java.lang.String tmp1 = memberName.substring(0, i);
			if (i+1 < memberName.length()) {
				tmp1 += memberName.substring(i+1, i+2).toUpperCase();
			}
			if (i+2 < memberName.length()) {
				tmp1 += memberName.substring(i+2);
			}
			memberName = tmp1;
		}
		return memberName;
	}
	
	
	/**
	 * @return Returns the coolwen_struts_outpath.
	 */
	public File getCoolwen_struts_outpath() {
		return coolwen_struts_outpath;
	}
	/**
	 * @param coolwen_struts_outpath The coolwen_struts_outpath to set.
	 */
	public void setCoolwen_struts_outpath(File coolwen_struts_outpath) {
		this.coolwen_struts_outpath = coolwen_struts_outpath;
	}
	/**
	 * @return Returns the coolwen_struts_schem.
	 */
	public String getCoolwen_struts_schem() {
		return coolwen_struts_schem;
	}
	/**
	 * @param coolwen_struts_schem The coolwen_struts_schem to set.
	 */
	public void setCoolwen_struts_schem(String coolwen_struts_schem) {
		this.coolwen_struts_schem = coolwen_struts_schem;
	}
	/**
	 * @return Returns the coolwen_struts_templatepath.
	 */
	public String getCoolwen_struts_templatepath() {		
		return coolwen_struts_templatepath;
	}
	/**
	 * @param coolwen_struts_templatepath The coolwen_struts_templatepath to set.
	 */
	public void setCoolwen_struts_templatepath(
			String coolwen_struts_templatepath) {
		this.coolwen_struts_templatepath = coolwen_struts_templatepath;
	}
	
	/**
	 * @return Returns the coolwen_struts_documentpath.
	 */
	public File getCoolwen_struts_documentpath() {
		return coolwen_struts_documentpath;
	}
	/**
	 * @param coolwen_struts_documentpath The coolwen_struts_documentpath to set.
	 */
	public void setCoolwen_struts_documentpath(
			File coolwen_struts_documentpath) {
		this.coolwen_struts_documentpath = coolwen_struts_documentpath;
	}
	
	/**
	 * @return Returns the coolwen_struts_package.
	 */
	public String getCoolwen_struts_package() {
		return coolwen_struts_package;
	}
	/**
	 * @param coolwen_struts_package The coolwen_struts_package to set.
	 */
	public void setCoolwen_struts_package(String coolwen_struts_package) {
		this.coolwen_struts_package = coolwen_struts_package;
	}
	
    /**
     * Returns a writer, based on encoding and path.
     *
     * @param path      path to the output file
     * @param encoding  output encoding
     */
    public Writer getWriter(File path, String encoding) throws Exception {
        Writer writer;
        if (encoding == null || encoding.length() == 0 || encoding.equals("8859-1") || encoding.equals("8859_1")) {
            writer = new FileWriter(path);
        }
        else {
            writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(path), encoding));
        }
        return writer;
    }
    
    public Template getTemplate(Generator generator,String template) throws Exception{
    	Template temp = null;
    	synchronized(ActionTask.template){
    		temp = (Template)ActionTask.template.get(template);
    		if(temp == null){
    			temp = generator.getTemplate(template,"GB2312");
    			ActionTask.template.put(template,temp);
    	 	}
    	}
    	return temp;
    }
    protected String create(String name,boolean isfloder,String parentid,String link){
    	QueryRunner queryRunner = new QueryRunner(this.getDataSource());
    	String id = "";
    	IsExist isExist = new IsExist();
    	String sql = "";
    	if(this.getCoolwen_hibernate_schem()!=null && this.getCoolwen_hibernate_schem().length()>0){
    		sql = "select * from "+this.getCoolwen_hibernate_schem()+".GEN_MENU where NODENAME = '"+name+"' and ISNODE ='"+isfloder+"'" ;
    	}else{
    		sql = "select * from GEN_MENU where NODENAME = '"+name+"' and ISNODE ='"+isfloder+"'" ;
    	}
    	String isexist;
    	try {
    		isexist = queryRunner.query(sql, isExist).toString();
 
		} catch (SQLException e) {
			e.printStackTrace();
			return "0";
		}
		if(isexist.equals("0")){
			if(this.getCoolwen_hibernate_schem()!=null && this.getCoolwen_hibernate_schem().length()>0){
	    		sql = "insert into "+this.getCoolwen_hibernate_schem()+".GEN_MENU(NODEID,NODENAME,ISNODE,PARENTID,LINK,STATE)values(?,?,?,?,?,?)" ;
	    	}else{
	    		sql = "insert into GEN_MENU(NODEID,NODENAME,ISNODE,PARENTID,LINK,STATE)values(?,?,?,?,?,?)" ;
	    	}
			Vector parm = new Vector();
			id = new Date().getTime()+""+(int)(Math.random()*99999);
			parm.add(id);
			parm.add(name);
			parm.add(new Boolean(isfloder));
			parm.add(parentid);
			parm.add(link);
			parm.add(new Boolean(true));
			try {
		            queryRunner.update( sql, parm.toArray());
		    }catch(SQLException e){
		            e.printStackTrace();
		   }
		}else
			id = isexist;
		return id;
    }
	public class IsExist implements ResultSetHandler {
		public Object handle(ResultSet rs) throws SQLException {
			if(rs.next())
				return rs.getObject("NODEID");
			else
				return "0";
		}
	}
}

jody
2004-08-13 12:53

to banq

这只是个demo
最初只是方便我使用。牵扯的地方很多。。我没有整理过。。。
其中用到的是 struts(Velocity DynamicForm action)-spring-hibernate

如果大家觉得这东西有用。。。等我整理过后。。。可以共享给大家使用

banq
2004-08-13 19:28

不错,支持的部件比较多。我在仔细研究中....

建议压缩成rar,用File上传即可。