All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.webapp.utils.builder.TableBuilder Maven / Gradle / Ivy

The newest version!
package com.webapp.utils.builder;

import java.util.Properties;

import org.nutz.dao.Dao;
import org.nutz.dao.impl.NutDao;
import org.nutz.dao.impl.SimpleDataSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.webapp.utils.mybatis.ClassBuilder;
import com.webapp.utils.mybatis.ClassCompiler;

public final class TableBuilder {

	public enum CMT {
		UP(1), RIGHT(2);
		private int index;
		CMT(int index){
			this.index = index;
		}
		public int getIndex() {
			return index;
		}
	}

	private static int comment = 0;
	private static boolean snake = true;
	private static String jdbcCfg = "";
	private static boolean allNull = false;

	private static int deci_length = 8;
	private static int deci_precision = 4;

	public static int getComment() {
		return comment;
	}
	public static void setComment(CMT cmt) {
		TableBuilder.comment = cmt.getIndex();
	}
	public static boolean isSnake() {
		return snake;
	}
	public static void setSnake(boolean snake) {
		TableBuilder.snake = snake;
	}
	public static String getJdbcCfg() {
		return jdbcCfg;
	}
	public static void setJdbcCfg(String jdbcCfg) {
		TableBuilder.jdbcCfg = jdbcCfg;
	}
	public static boolean isAllNull() {
		return allNull;
	}
	public static void setAllNull(boolean allNull) {
		TableBuilder.allNull = allNull;
	}
	public static int getDeciLength() {
		return deci_length;
	}
	public static int getDeciPrecision() {
		return deci_precision;
	}
	public static void setPrecision(Integer length, Integer precision) {
		deci_length = length;
		deci_precision = precision;
	}

	private static final Logger logger = LoggerFactory.getLogger(TableBuilder.class);
	private static SimpleDataSource ds;
	public static  ClassBuilder of(Class clz) {
		return new ClassBuilder(clz);
	}

	public static void build(String jdbcCfg, String clzStr, String pkg, String name) {
		if(ds == null){
			ds = buildDataSource(jdbcCfg);
		}

		Class compile = ClassCompiler.compile(pkg + "." + name ,clzStr);
		Dao dao = new NutDao(ds);
		dao.create(compile, true);
	}

	private static SimpleDataSource buildDataSource(String jdbcCfg){
		Properties jdbc = new Properties();
		try {
	        jdbc.load(MybatisBuilder.class.getResourceAsStream("/" + jdbcCfg));
        } catch (Exception e) {
        	logger.error("read jdbcCfg error ", e);
        }

		SimpleDataSource ds = new SimpleDataSource();
		try {
			ds.setDriverClassName(jdbc.getProperty("driver"));
		} catch (ClassNotFoundException e) {
			logger.error("load jdbc driver error ", e);
		}
		ds.setJdbcUrl(jdbc.getProperty("url"));
		ds.setUsername(jdbc.getProperty("username"));
		ds.setPassword(jdbc.getProperty("password"));
		return ds;
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy