首页>代码>分享weibo4j中用到的mysql2bean的java工具>/mysql2bean/src/main/java/com/javaniu/MySQLToBean.java
package com.javaniu;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class MySQLToBean extends JFrame {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JCheckBox checkBox;
	Properties p = new Properties();
	String configFile = "config.ini";
	private JLabel lblNewLabel_4;

	public MySQLToBean() {

		setResizable(false);

		setTitle("MySQL生成javabean小工具");
		setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

		setBounds(100, 100, 484, 324);

		JPanel panel = new JPanel();
		getContentPane().add(panel, BorderLayout.CENTER);
		panel.setLayout(null);

		txtLocalhost = new JTextField();
		txtLocalhost.setText("localhost");
		txtLocalhost.setBounds(146, 10, 147, 21);
		panel.add(txtLocalhost);
		txtLocalhost.setColumns(10);

		JLabel lblIp = new JLabel("IP:");
		lblIp.setBounds(80, 13, 30, 15);
		panel.add(lblIp);

		JLabel label = new JLabel("数据库:");
		label.setBounds(80, 42, 54, 15);
		panel.add(label);

		textField = new JTextField();
		textField.setBounds(146, 39, 147, 21);
		textField.setText("weibo4j");
		panel.add(textField);
		textField.setColumns(10);

		JLabel label_1 = new JLabel("表名:");
		label_1.setBounds(80, 127, 54, 15);
		panel.add(label_1);

		textField_1 = new JTextField();
		textField_1.setBounds(146, 124, 147, 21);
		panel.add(textField_1);
		textField_1.setColumns(10);

		JLabel label_2 = new JLabel("包名:");
		label_2.setBounds(79, 156, 54, 15);
		panel.add(label_2);

		txtComyourcom = new JTextField();
		txtComyourcom.setText("com.javaniu.weibo4j");
		txtComyourcom.setBounds(146, 155, 147, 21);
		panel.add(txtComyourcom);
		txtComyourcom.setColumns(10);

		JLabel lblNewLabel = new JLabel("输出目录:");
		lblNewLabel.setBounds(80, 190, 65, 15);
		panel.add(lblNewLabel);

		textField_3 = new JTextField();
		textField_3.setBounds(146, 186, 147, 21);
		textField_3.setText("c:/");
		panel.add(textField_3);
		textField_3.setColumns(10);

		checkBox = new JCheckBox("生成包结构目录");
		checkBox.setSelected(true);
		checkBox.setBounds(145, 213, 147, 23);
		panel.add(checkBox);

		JLabel lblNewLabel_1 = new JLabel("可以指定表名,也可以不指定");
		lblNewLabel_1.setBounds(303, 127, 176, 15);
		panel.add(lblNewLabel_1);

		JLabel lblNewLabel_2 = new JLabel("* 数据库名");
		lblNewLabel_2.setForeground(Color.RED);
		lblNewLabel_2.setBounds(303, 42, 66, 15);
		panel.add(lblNewLabel_2);

		JLabel lblNewLabel_3 = new JLabel("* 包结构");
		lblNewLabel_3.setForeground(Color.RED);
		lblNewLabel_3.setBounds(303, 158, 79, 15);
		panel.add(lblNewLabel_3);

		JButton button = new JButton("执行");
		button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				go();
			}
		});
		button.setBounds(145, 242, 93, 23);
		panel.add(button);

		textField_4 = new JTextField();
		textField_4.setText("111111");
		textField_4.setBounds(145, 93, 147, 21);
		panel.add(textField_4);
		textField_4.setColumns(10);

		txtRoot = new JTextField();
		txtRoot.setText("root");
		txtRoot.setBounds(145, 66, 148, 21);
		panel.add(txtRoot);
		txtRoot.setColumns(10);

		JLabel label_3 = new JLabel("用户名:");
		label_3.setBounds(80, 69, 54, 15);
		panel.add(label_3);

		JLabel label_4 = new JLabel("密码:");
		label_4.setBounds(80, 96, 54, 15);
		panel.add(label_4);

		lblNewLabel_4 = new JLabel("");
		lblNewLabel_4.setForeground(Color.RED);
		lblNewLabel_4.setBounds(248, 242, 204, 23);
		panel.add(lblNewLabel_4);

		addWindowListener(new WindowAdapter() {

			public void windowClosing(WindowEvent e) {
				super.windowClosing(e);
				// export();
				System.exit(0);
			}

		});

		// inport();
	}

	static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	private JTextField txtLocalhost;
	private JTextField textField;
	private JTextField textField_1;
	private JTextField txtComyourcom;
	private JTextField textField_3;
	private JTextField textField_4;
	private JTextField txtRoot;

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//
		// String field = "create_time";
		// int idx = field.indexOf("_");
		// if (idx != -1) {
		// String temp = field.substring(idx + 1, idx + 2);
		// String temp2 = new MySQLToBean().upperFirestChar(temp);
		// field = field.replaceFirst("_" + temp, temp2);
		// }
		// System.out.println(field);

		try {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		} catch (ClassNotFoundException e) {

			e.printStackTrace();
		} catch (InstantiationException e) {

			e.printStackTrace();
		} catch (IllegalAccessException e) {

			e.printStackTrace();
		} catch (UnsupportedLookAndFeelException e) {

			e.printStackTrace();
		}
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					MySQLToBean frame = new MySQLToBean();
					frame.setLocationRelativeTo(null);
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	private void inport() {
		File config = new File(configFile);
		if (config.exists()) {
			try {
				InputStream is = new FileInputStream(config);
				p.load(is);
				is.close();
				setUIVal();
			} catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		} else {
			try {
				config.createNewFile();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

	}

	public void setUIVal() {
		txtLocalhost.setText(p.getProperty("host", "localhost"));
		textField.setText(p.getProperty("database", "javaniu2"));
		txtRoot.setText(p.getProperty("user", "root"));
		textField_4.setText(p.getProperty("pass", "111111"));
		txtComyourcom.setText(p.getProperty("packname", "com.javaniu.weibo4j"));
		textField_3.setText(p.getProperty("dirstr", "c:/"));
		textField_1.setText(p.getProperty("tablename", ""));
	}

	private void export() {
		String host = txtLocalhost.getText();
		String database = textField.getText();
		String user = txtRoot.getText();
		String pass = textField_4.getText();
		String packname = txtComyourcom.getText();
		String dirstr = textField_3.getText();// 空表示当前目录
		String tablename = textField_1.getText();

		p.setProperty("host", host);
		p.setProperty("database", database);
		p.setProperty("user", user);
		p.setProperty("pass", pass);
		p.setProperty("packname", packname);
		p.setProperty("dirstr", dirstr);
		p.setProperty("tablename", tablename);

		try {
			OutputStream out = new FileOutputStream(configFile);
			p.store(out, "退出保存文件," + sdf.format(new Date()));
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	public void setTips(String msg) {
		lblNewLabel_4.setText(msg);
	}

	public void go() {
		String host = txtLocalhost.getText();
		String database = textField.getText();

		if (database.length() == 0) {
			setTips("数据库名必填");
			return;
		}

		String user = txtRoot.getText();
		String pass = textField_4.getText();
		String packname = txtComyourcom.getText();
		String dirstr = textField_3.getText();// 空表示当前目录
		String tablename = textField_1.getText();
		boolean createPackage = checkBox.getSelectedObjects() != null;
		System.out.println(createPackage);
		if (dirstr != null && !dirstr.isEmpty()) {
			if (!dirstr.endsWith("/")) {
				dirstr += "/";
			}
		}
		File dir = new File(dirstr);
		if (createPackage) {
			dir = new File(dirstr + packname.replaceAll("\\.", "/"));
			if (!dir.exists()) {
				dir.mkdirs();
			}
		}
		String outputdir = dir.getAbsolutePath();// bean的生成目录

		Connection conn = null;
		try {

			conn = DBManager.mysql(host, database, user, pass);
			if (tablename.length() > 0) {
				parseTableByShowCreateModule(conn, tablename, packname,
						outputdir);
			} else {
				parseAllTable(conn, packname, outputdir);
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
			setTips("找不到MySQL的jar包");
		} catch (SQLException e) {
			e.printStackTrace();
		}

	}

	/**
	 * 开始处理生成所有表 如果不传入表名,表示将数据库中所有表生成bean; 可以指定表名生成bean;
	 */
	public void parseAllTable(Connection conn, String packname, String outputdir) {

		String sql = "show tables";
		ResultSet rs = DBManager.query(conn, sql);
		try {
			List<String> tablenames = new ArrayList<String>();
			while (rs.next()) {
				String tablename = rs.getString(1);
				// 生成module
				parseTableByShowCreateModule(conn, tablename, packname,
						outputdir);
				// 生成repository
				parseTableByShowCreateRepository(conn, tablename, packname,
						outputdir);
				// 生成service
				parseTableByShowCreateService(conn, tablename, packname,
						outputdir);
				// 生成serviceimpl
				parseTableByShowCreateServiceImpl(conn, tablename, packname,
						outputdir);

				// 生成controller
				parseTableByShowCreateController(conn, tablename, packname,
						outputdir);
				tablenames.add(tablename);
			}

			// 生成basecontroller
			parseTableByShowCreateBaseController(conn, tablenames, packname,
					outputdir);
			DBManager.close(conn, null, rs);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 通过 mysql的 show create table TABLE_NAME逆向生成Bean;
	 * 
	 * @param conn
	 * @param tname
	 * @param outputdir
	 * @param packname
	 */
	private void parseTableByShowCreateModule(Connection conn,
			String tablename, String packname, String outputdir) {
		StringBuilder classInfo = new StringBuilder("/**\r\n\t*");
		String sql = "show create table " + tablename;
		String _tablename = tablename;
		tablename = replaceS(tablename);
		ResultSet rs = null;
		try {
			rs = DBManager.query(conn, sql);
			StringBuilder fields = new StringBuilder();
			StringBuilder methods = new StringBuilder();

			while (rs.next()) {
				String sqlstr = rs.getString(2);
				String lines[] = sqlstr.split("\r\n");
				for (int i = 0; i < lines.length; i++) {
					String line = lines[i];
					System.out.println(line);
					// System.out.println("------------");
					String regex = "\\s*`([^`]*)`\\s*(\\w+[^ ]*)\\s*(NOT\\s+NULL\\s*)?(AUTO_INCREMENT\\s*)?(DEFAULT\\s*([^ ]*|NULL|'0'|''|CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)\\s*)?(COMMENT\\s*'([^']*)')?\\s*,\\s*";
					Pattern p = Pattern.compile(regex);
					Matcher m = p.matcher(line);
					while (m.find()) {
						String field = m.group(1);
						if (field.equals("created_at")) {
							continue;
						}
						if (field.equals("id")) {
							continue;
						}
						field = replaceS(field);
						String type = typeTrans(m.group(2));
						fields.append(getFieldStr(field, type));
						methods.append(getMethodStr(field, type));
					}
					if (i == lines.length - 1) {
						classInfo.append("*@author javaniu\r\n");
						classInfo.append(sdf.format(new Date()));
						classInfo.append("\r\n*/\r\n");
					}

				}
			}

			classInfo.append("import javax.persistence.Entity;\n");
			classInfo.append("import javax.persistence.Table;\n");
			classInfo.append("import org.apache.commons.lang.builder.ToStringBuilder;\n");
			classInfo.append("import java.util.Date;\n");
			
			classInfo.append("@Entity\n");
			classInfo.append("@Table(name = \"" + _tablename + "\")\n");
			classInfo.append("public class ")
					.append(tablename + " extends BaseEntity").append("{\r\n");
			classInfo.append(fields);
			classInfo.append("\t public " + tablename + "() {\n");
			classInfo.append("\t \tthis.createAt = new Date();\n");
			classInfo.append("\t }\n");
			classInfo.append(methods);
			classInfo.append("\t @Override\n");
			classInfo.append("\t public String toString() {\n");
			classInfo
					.append("\t \treturn ToStringBuilder.reflectionToString(this);\n");
			classInfo.append("\t }");
			classInfo.append("\r\n");
			classInfo.append("}");
		} catch (SQLException e) {
			e.printStackTrace();
		}
		String packageinfo = "package " + packname + ".module;\r\n\r\n";
		File file = new File(outputdir + "/module", tablename + ".java");
		System.out.println(file.getAbsolutePath());
		try {
			File parent = file.getParentFile();
			if (!parent.exists()) {
				parent.mkdirs();
			}
			FileWriter fw = new FileWriter(file);
			fw.write(packageinfo);
			fw.write(classInfo.toString());
			fw.flush();
			fw.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	private void parseTableByShowCreateRepository(Connection conn,
			String tablename, String packname, String outputdir) {
		StringBuilder classInfo = new StringBuilder("");
		tablename = replaceS(tablename);

		classInfo
				.append("import org.springframework.data.jpa.repository.JpaRepository;\n");
		classInfo.append("import com.javaniu.weibo4j.module." + tablename
				+ ";\n");

		classInfo.append("\t/**\r\n\t*");
		classInfo.append("\t*@author javaniu\r\n");
		classInfo.append(sdf.format(new Date()));
		classInfo.append("\r\n\t*/\r\n\r\n");

		classInfo.append("public interface ").append(tablename + "Repository")
				.append(" extends JpaRepository<" + tablename + ", Long>")
				.append("{\r\n");
		classInfo.append("\r\n");
		classInfo.append("}");

		String packageinfo = "package " + packname + ".repository;\r\n\r\n";
		File file = new File(outputdir + "/repository", tablename
				+ "Repository.java");
		System.out.println(file.getAbsolutePath());
		try {
			File parent = file.getParentFile();
			if (!parent.exists()) {
				parent.mkdirs();
			}
			FileWriter fw = new FileWriter(file);
			fw.write(packageinfo);
			fw.write(classInfo.toString());
			fw.flush();
			fw.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	private void parseTableByShowCreateService(Connection conn,
			String tablename, String packname, String outputdir) {
		StringBuilder classInfo = new StringBuilder("");
		tablename = replaceS(tablename);
		classInfo.append("import com.javaniu.weibo4j.module." + tablename
				+ ";\n");
		classInfo.append("import java.util.List;\n");

		classInfo.append("\t/**\r\n\t*");
		classInfo.append("\t*@author javaniu\r\n");
		classInfo.append(sdf.format(new Date()));
		classInfo.append("\r\n\t*/\r\n\r\n");
		classInfo.append("public interface ").append(tablename + "Service")
				.append("{\r\n");
		classInfo.append("\t public void save(" + tablename + " "
				+ lowerFirestChar(tablename) + ");\n");
		classInfo.append("\t public void save(List<" + tablename + "> "
				+ lowerFirestChar(tablename) + "s);\n");
		classInfo.append("\t public void delete(long id);\n");
		classInfo.append("\t public " + tablename + " findById(long id);\n");
		classInfo.append("\t public Iterable<" + tablename
				+ "> findByIds(List<Long> ids);\n");
		classInfo.append("}");

		String packageinfo = "package " + packname + ".service;\r\n\r\n";
		File file = new File(outputdir + "/service", tablename + "Service.java");
		System.out.println(file.getAbsolutePath());
		try {
			File parent = file.getParentFile();
			if (!parent.exists()) {
				parent.mkdirs();
			}
			FileWriter fw = new FileWriter(file);
			fw.write(packageinfo);
			fw.write(classInfo.toString());
			fw.flush();
			fw.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	private void parseTableByShowCreateServiceImpl(Connection conn,
			String tablename, String packname, String outputdir) {
		StringBuilder classInfo = new StringBuilder("");
		tablename = replaceS(tablename);

		classInfo.append("import org.springframework.stereotype.Service;\n");
		classInfo.append("import com.javaniu.weibo4j.service." + tablename
				+ "Service;\n");
		classInfo.append("import com.javaniu.weibo4j.module." + tablename
				+ ";\n");

		classInfo.append("import java.util.List;\n");
		classInfo.append("import com.javaniu.weibo4j.repository." + tablename
				+ "Repository;\n");
		classInfo
				.append("import org.springframework.transaction.annotation.Transactional;\n");
		classInfo.append("import javax.annotation.Resource;\n");

		classInfo.append("\t/**\r\n\t*");
		classInfo.append("\t*@author javaniu\r\n");
		classInfo.append(sdf.format(new Date()));
		classInfo.append("\r\n\t*/\r\n\r\n");
		classInfo.append("@Service\n");
		classInfo.append("@Transactional(readOnly = true)\n");
		classInfo
				.append("public class ")
				.append(tablename + "ServiceImpl implements " + tablename
						+ "Service").append("{\r\n");
		classInfo.append("@Resource\n");
		classInfo.append("private " + tablename + "Repository "
				+ lowerFirestChar(tablename) + "Repository;\n");

		classInfo.append("\t @Override\n");
		classInfo.append("\t @Transactional(readOnly = false)\n");
		classInfo.append("\t public void save(" + tablename + " "
				+ lowerFirestChar(tablename) + ") {\n");
		classInfo.append("\t \t " + lowerFirestChar(tablename)
				+ "Repository.save(" + lowerFirestChar(tablename) + ");\n");
		classInfo.append("\t }\n");

		classInfo.append("\t @Override\n");
		classInfo.append("\t @Transactional(readOnly = false)\n");
		classInfo.append("\t public void save(List<" + tablename + "> "
				+ lowerFirestChar(tablename) + "s) {\n");
		classInfo.append("\t \t " + lowerFirestChar(tablename)
				+ "Repository.save(" + lowerFirestChar(tablename) + "s);\n");
		classInfo.append("}\n");

		classInfo.append("\t @Override\n");
		classInfo.append("\t @Transactional(readOnly = false)\n");
		classInfo.append("\t public void delete(long id) {\n");
		classInfo.append("\t \t " + lowerFirestChar(tablename)
				+ "Repository.delete(id);\n");
		classInfo.append("\t }\n");

		classInfo.append("\t @Override\n");
		classInfo.append("\t public " + tablename + " findById(long id) {\n");
		classInfo.append("\t \t return " + lowerFirestChar(tablename)
				+ "Repository.findOne(id);\n");
		classInfo.append("\t }\n");

		classInfo.append("\t @Override\n");
		classInfo.append("\t public Iterable<" + tablename
				+ "> findByIds(List<Long> ids) {\n");
		classInfo.append("\t \t return " + lowerFirestChar(tablename)
				+ "Repository.findAll(ids);\n");
		classInfo.append("\t }\n");

		classInfo.append("}");

		String packageinfo = "package " + packname + ".service.impl;\r\n\r\n";
		File file = new File(outputdir + "/service/impl/", tablename
				+ "ServiceImpl.java");
		System.out.println(file.getAbsolutePath());
		try {
			File parent = file.getParentFile();
			if (!parent.exists()) {
				parent.mkdirs();
			}
			FileWriter fw = new FileWriter(file);
			fw.write(packageinfo);
			fw.write(classInfo.toString());
			fw.flush();
			fw.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	private void parseTableByShowCreateBaseController(Connection conn,
			List<String> tablenames, String packname, String outputdir) {
		String packageinfo = "package " + packname + ".controller;\r\n\r\n";

		StringBuilder classInfo = new StringBuilder("");
		classInfo
				.append("import org.springframework.beans.factory.annotation.Autowired;\n");
		for (String tablename : tablenames) {
			tablename = replaceS(tablename);
			classInfo.append("import com.javaniu.weibo4j.service." + tablename
					+ "Service;\n");
		}
		classInfo.append("public abstract class BaseController")
				.append("{\r\n");
		for (String tablename : tablenames) {
			tablename = replaceS(tablename);
			classInfo.append("\t @Autowired\n");
			classInfo.append("\t public " + tablename + "Service "
					+ lowerFirestChar(tablename) + "Service;\n");
		}
		classInfo.append("}");

		File file = new File(outputdir + "/controller", "BaseController.java");
		System.out.println(file.getAbsolutePath());
		try {
			File parent = file.getParentFile();
			if (!parent.exists()) {
				parent.mkdirs();
			}
			FileWriter fw = new FileWriter(file);
			fw.write(packageinfo);
			fw.write(classInfo.toString());
			fw.flush();
			fw.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	private void parseTableByShowCreateController(Connection conn,
			String tablename, String packname, String outputdir) {
		StringBuilder classInfo = new StringBuilder("");
		String _tablename = tablename;
		tablename = replaceS(tablename);

		classInfo.append("import org.springframework.stereotype.Controller;\n");
		classInfo
				.append("import org.springframework.web.bind.annotation.RequestMapping;\n");

		classInfo.append("\t/**\r\n\t*");
		classInfo.append("\t*@author javaniu\r\n");
		classInfo.append(sdf.format(new Date()));
		classInfo.append("\r\n\t*/\r\n\r\n");
		classInfo.append("@Controller\n");
		classInfo.append("@RequestMapping({ \"/" + _tablename + "\" })\n");
		classInfo.append("public class ")
				.append(tablename + "Controller extends BaseController")
				.append("{\r\n");

		classInfo.append("}");

		String packageinfo = "package " + packname + ".controller;\r\n\r\n";
		File file = new File(outputdir + "/controller/", tablename
				+ "Controller.java");
		System.out.println(file.getAbsolutePath());
		try {
			File parent = file.getParentFile();
			if (!parent.exists()) {
				parent.mkdirs();
			}
			FileWriter fw = new FileWriter(file);
			fw.write(packageinfo);
			fw.write(classInfo.toString());
			fw.flush();
			fw.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	/**
	 * 
	 * @param type
	 * @return
	 */
	private String getMethodStr(String field, String type) {
		StringBuilder get = new StringBuilder("\tpublic ");
		get.append(type).append(" ");
		if (type.equals("boolean")) {
			get.append(field);
		} else {
			get.append("get");
			get.append(field);
		}
		get.append("(){").append("\r\n\t\treturn this.")
				.append(lowerFirestChar(field)).append(";\r\n\t}\r\n");
		StringBuilder set = new StringBuilder("\tpublic void ");

		if (type.equals("boolean")) {
			set.append(field);
		} else {
			set.append("set");
			set.append(field);
		}
		set.append("(").append(type).append(" ").append(lowerFirestChar(field))
				.append("){\r\n\t\tthis.").append(lowerFirestChar(field))
				.append("=").append(lowerFirestChar(field))
				.append(";\r\n\t}\r\n");
		get.append(set);
		return get.toString();
	}

	public String upperFirestChar(String src) {
		return src.substring(0, 1).toUpperCase().concat(src.substring(1));
	}

	public String lowerFirestChar(String src) {
		return src.substring(0, 1).toLowerCase().concat(src.substring(1));
	}

	private String getFieldStr(String field, String type) {
		StringBuilder sb = new StringBuilder();
		sb.append("\t").append("private ").append(type).append(" ")
				.append(lowerFirestChar(field)).append(";");
		sb.append("\r\n");
		return sb.toString();
	}

	/**
	 * mysql的类型转换到java 类型参考文章
	 * http://hi.baidu.com/wwtvanessa/blog/item/9fe555945a07bd16d31b70cd.html
	 */
	public String typeTrans(String type) {
		if (type.contains("tinyint")) {
			return "boolean";
		} else if (type.contains("bigint")) {
			return "long";
		} else if (type.contains("int")) {
			return "int";
		} else if (type.contains("varchar") || type.contains("date")
				|| type.contains("time") || type.contains("datetime")
				|| type.contains("timestamp") || type.contains("text")
				|| type.contains("enum") || type.contains("set")) {
			return "String";
		} else if (type.contains("binary") || type.contains("blob")) {
			return "byte[]";
		} else {
			return "String";
		}
	}

	public String replaceS(String input) {
		StringBuffer output = new StringBuffer();

		int idx = input.indexOf("_");
		if (idx == -1) {
			output.append(new MySQLToBean().upperFirestChar(input));
		} else {
			String[] inputs = input.split("_");
			for (String _input : inputs) {
				output.append(new MySQLToBean().upperFirestChar(_input));
			}
		}
		return output.toString();
	}
}
最近下载更多
jaonsang  LV25 2019年10月26日
idcomcn2003  LV5 2019年4月2日
jiajia0524  LV2 2018年9月1日
wgtgt  LV24 2017年9月9日
Fshenye  LV1 2017年8月9日
淋湿巴黎mh  LV2 2016年11月4日
inhv  LV18 2016年4月15日
ivan747  LV7 2015年12月31日
zhangdashu  LV1 2015年12月1日
勇往直前  LV10 2015年6月24日
最近浏览更多
婆婆12254  LV2 2023年6月12日
122378  LV3 2022年12月14日
wangjie49  LV7 2022年10月1日
接小兔兔回家 2021年12月3日
暂无贡献等级
马牛逼  LV1 2020年12月30日
1771658781  LV5 2020年12月17日
j_heyao  LV1 2020年9月29日
zhangtian1997  LV10 2020年7月13日
cuimeng991226  LV1 2020年5月13日
gf12345678  LV5 2020年5月11日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友