仓酷云

标题: 了解下JAVA的静态表单及静态建表完成道理 [打印本页]

作者: 若天明    时间: 2015-1-18 11:22
标题: 了解下JAVA的静态表单及静态建表完成道理
Java的B/s开发是通常是javaweb开发,又叫J2EE开发,J2SE是手机开发。C#的C/s和B/s开发是说.net网页编程和Asp开发。。u在这里说明一点;资深一点的Java和C#程序员都明白一点
1使用场景
项目中常常必要静态的创立一个表单,大概增加一个新的数据模板,这时候候由于必要在运转时静态的创立表和静态的保护表字段乃至表干系使得一般java办理计划变得坚苦重重。
2完成工具
Hibernate+Spring+Groovy+Freemarker
Hibernate感化很复杂卖力创立数据库表如许能够制止我们本人往写庞大的sql和判别。
Spring作为桥梁起到毗连纽带的感化。
Groovy做为静态言语,在项目运转时依据模板创立会见数据库,大概把持层代码。
Freamker能够依据提早界说好的模板天生hibernate设置文件,和Groovy代码。
3完成道理
起首创立Form和FromAttribute两张表干系一对多。Form表纪录表单的称号,种别,乃至是作为在静态天生表单时的css款式信息。FromAttribute纪录表单字段信息,如称号,种别等。有了表单和表单项的信息后就能够创立数据库表了。
测试代码:
public void testGenerator() {
        Form form = formService.getAll().get(0);
        List<FormAttribute> list = formAttributeService
                .getAttributeListByFormId(form.getId());
        form.setFormAttributeList(list);
        DbGenerator dg = new DbGenerator(form, dataSource);
        dg.generator();
    }
DbGenerator
import java.io.IOException;
import java.io.StringWriter;
import java.io.Writer;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import javax.sql.DataSource;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
public class DbGenerator {

    private DataSource dataSource;
    protected Map root = new HashMap();
    private static Logger log = LoggerFactory.getLogger(FormGenerator.class);
    protected String path;
    protected String packageName;
    private Form form;
    protected Configuration getConfig(String resource) {
        Configuration cfg = new Configuration();
        cfg.setDefaultEncoding("UTF-8");
        cfg.setClassForTemplateLoading(this.getClass(), resource);
        return cfg;
    }
    public DbGenerator(Form form ,DataSource dataSource) {
        this.form = form;
        this.dataSource = dataSource;
    }
    public void generator() {
        if(null == form.getFormAttributeList() || form.getFormAttributeList().size() == 0){
            return ;
        }
        Template t;
        try {
            t = getConfig("/template").getTemplate("hibernate.ftl");
            Writer out = new StringWriter();
            t.process(getMapContext(), out);
            String xml = out.toString();
            createTable(xml);
            log.debug(xml);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (TemplateException e) {
            e.printStackTrace();
        }
    }
    @SuppressWarnings("unchecked")
    Map getMapContext() {
        root.put("entity", form);
        return root;
    }
    public void createTable(String xml) {
        org.hibernate.cfg.Configuration conf = new org.hibernate.cfg.Configuration();
        conf.configure("/hibernate/hibernate.cfg.xml");
        Properties extraProperties = new Properties();
        extraProperties.put("hibernate.hbm2ddl.auto", "create");
        conf.addProperties(extraProperties);
        conf.addXML(xml);
        SchemaExport dbExport;
        try {
            dbExport = new SchemaExport(conf, dataSource.getConnection());
            // dbExport.setOutputFile(path);
            dbExport.create(false, true);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
class hibernateGenerator {
}
<p>
市场分额,java比asp高一点,因为C#是仿照java开发的,所以哦C#能做的java都能做到,但是java能做的,C#不一定都能做到。毕竟是抄袭吗。
作者: 柔情似水    时间: 2015-1-20 22:00
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
作者: 小妖女    时间: 2015-1-30 06:00
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
作者: 仓酷云    时间: 2015-2-6 07:40
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
作者: 兰色精灵    时间: 2015-2-10 05:08
是一种为 Internet发展的计算机语言
作者: 金色的骷髅    时间: 2015-3-4 10:31
是一种为 Internet发展的计算机语言
作者: 透明    时间: 2015-3-8 06:15
是一种语言,用以产生「小应用程序(Applet(s))
作者: 分手快乐    时间: 2015-3-10 23:48
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
作者: 谁可相欹    时间: 2015-3-11 10:15
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者: 海妖    时间: 2015-3-18 04:36
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者: 冷月葬花魂    时间: 2015-3-25 11:34
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2