java标准MVC代码生成工具,可节省80%的开发时间
前台展示页面使用dorado界面框架,关于dorado的使用请参考www.bsdn.org、wiki.bsdn.org
导入本项目到eclipse,打开resources下的config.xml,根据xml的注释说明修改相关的配置信息,如文件保存目录、数据库连接信息,要生成的模块和数据表等。
1、建立数据库模型,并导入到数据库中
2、配置好数据库连接信息
3、运行DataBase2File文件
4、查看目标目录下的文件,并导入到你自己的项目中。
更多信息,请参考www.github.com/njwlzh/codetool
private void getTableColumns(Table table,Connection conn) throws SQLException {
if (config.getDb().getDriver().toLowerCase().indexOf("mysql")!=-1) {
String sql="select * from information_schema.COLUMNS where TABLE_SCHEMA=? and TABLE_NAME=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1,config.getDb().getDbName());
ps.setString(2,table.getTableFullName());
ResultSet rs = ps.executeQuery();
while (rs.next()) {
Column col = new Column();
String colName = rs.getString("column_name");
col.setColumnName(colName);
col.setColumnType(rs.getString("data_type"));
col.setRemark(rs.getString("column_comment"));
col.setPropertyName(convertToFirstLetterLowerCaseCamelCase(colName));
col.setPropertyType(convertType(col.getColumnType()));
col.setPropertyCamelName(convertToCamelCase(colName));
String colKey = rs.getString("column_key");
if (!isEmpty(colKey) && colKey.toLowerCase().equals("pri")) {
col.setPrimaryKey(true);
}
if (col.getPropertyType().indexOf(".")!=-1 && !existsType(table.getImportClassList(),col.getPropertyType())) {
table.getImportClassList().add(col.getPropertyType());
table.getColumns().add(col);
rs.close();
ps.close();
} else { //其它数据库
}public static Config loadConfig(){
Config cfg = new Config();
Document doc = XmlUtil.getDocument(Config.class.getClassLoader().getResourceAsStream("config.xml"));
Element root = XmlUtil.getRootNode(doc);
cfg.setBaseDir(XmlUtil.getChild(root, "baseDir").getTextTrim());
cfg.setBasePackage(XmlUtil.getChild(root, "basePackage").getTextTrim());
Element dbNode = XmlUtil.getChild(root, "db");
Db db = new Db();
db.setDriver(XmlUtil.getChild(dbNode, "driver").getTextTrim());
db.setPwd(XmlUtil.getChild(dbNode, "pwd").getTextTrim());
db.setUrl(XmlUtil.getChild(dbNode, "url").getTextTrim());
db.setUser(XmlUtil.getChild(dbNode, "user").getTextTrim());
db.setDbName(XmlUtil.getChild(dbNode, "dbName").getTextTrim());
cfg.setDb(db);
//加载module
List<Module> moduleList = new ArrayList<Module>();
List<Element> modules = XmlUtil.getChildElements(root, "module");
for (Element e : modules) {
Module m = new Module();
Element persistance = XmlUtil.getChild(e, "persistance");
if (persistance==null) {
m.setPersistance("hibernate");
} else {
m.setPersistance(XmlUtil.getChild(e, "persistance").getTextTrim());
m.setName(XmlUtil.getChild(e, "name").getTextTrim());
m.setActionPackage(XmlUtil.getChild(e, "actionPackage").getTextTrim());
m.setDaoImplPackage(XmlUtil.getChild(e, "daoImplPackage").getTextTrim());
m.setDaoPackage(XmlUtil.getChild(e, "daoPackage").getTextTrim());
m.setDeleteTablePrefix(Boolean.valueOf(XmlUtil.getChild(e, "isDeleteTablePrefix").getTextTrim()));
m.setEntityPackage(XmlUtil.getChild(e, "entityPackage").getTextTrim());
m.setMapperPackage(XmlUtil.getChild(e, "mapperPackage").getTextTrim());
m.setSavePath(XmlUtil.getChild(e, "savePath").getTextTrim());
m.setServiceImplPackage(XmlUtil.getChild(e, "serviceImplPackage").getTextTrim());
m.setServicePackage(XmlUtil.getChild(e, "servicePackage").getTextTrim());
m.setViewPackage(XmlUtil.getChild(e, "viewPackage").getTextTrim());
//加载table
m.setTables(readTableConfList(e));
moduleList.add(m);
cfg.setModules(moduleList);
return cfg;
查看评论 回复