package com.binzhou.util; import java.io.*; import java.sql.*; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 自动生成MyBatis的实体类、实体映射XML文件、Mapper * * @author lifeifei * @create 2018-06-19 16:23 **/ @SuppressWarnings("hiding") public class EntityUtil { /** * *********************************使用前必读******************* * * * * 使用前请将moduleName更改为自己模块的名称即可(一般情况下与数据库名一致),其他无须改动。 * * * ********************************************************** */ private final String type_char = "char"; private final String type_date = "date"; private final String type_timestamp = "timestamp"; private final String type_datetime = "datetime"; private final String type_int = "int"; private final String type_bigint = "bigint"; private final String type_text = "text"; private final String type_bit = "bit"; private final String type_decimal = "decimal"; private final String type_blob = "blob"; private final String moduleName = "zhy"; // 对应模块名称(根据自己模块做相应调整!!!务必修改^_^) private final String bean_path = "d:/code/entity_bean"; private final String mapper_path = "d:/code/entity_mapper"; private final String xml_path = "d:/code/entity_mapper/xml"; private final String bean_package = "com.binzhou." + moduleName + ".entity"; private final String mapper_package = "com.binzhou." + moduleName + ".mapper"; private final String driverName = "com.mysql.jdbc.Driver"; private final String dbName = "zhydb"; private final String user = "root"; private final String password = "root"; private final String url = "jdbc:mysql://127.0.0.1:3306/" + dbName + "?characterEncoding=utf8"; private String tableName = null; private String beanName = null; private String mapperName = null; private Connection conn = null; private void init() throws ClassNotFoundException, SQLException { Class.forName(driverName); conn = DriverManager.getConnection(url, user, password); } /** * 获取所有的表 * * @return * @throws SQLException */ private List<String> getTables() throws SQLException { List<String> tables = new ArrayList<String>(); PreparedStatement pstate = conn.prepareStatement("show tables"); ResultSet results = pstate.executeQuery(); while (results.next()) { String tableName = results.getString(1); // if ( tableName.toLowerCase().startsWith("yy_") ) { tables.add(tableName); // } } return tables; } private void processTable(String table) { StringBuffer sb = new StringBuffer(table.length()); String tableNew = table.toLowerCase(); String[] tables = tableNew.split("_"); String temp = null; for (int i = 1; i < tables.length; i++) { temp = tables[i].trim(); sb.append(temp.substring(0, 1).toUpperCase()).append(temp.substring(1)); } beanName = sb.toString(); mapperName = beanName + "Mapper"; } private String processType(String type) { if (type.indexOf(type_char) > -1) { return "String"; } else if (type.indexOf(type_bigint) > -1) { return "Long"; } else if (type.indexOf(type_int) > -1) { return "Integer"; } else if (type.indexOf(type_date) > -1) { return "java.util.Date"; } else if (type.indexOf(type_text) > -1) { return "String"; } else if (type.indexOf(type_timestamp) > -1) { return "java.util.Date"; } else if (type.indexOf(type_datetime) > -1) { return "java.util.Date"; } else if (type.indexOf(type_bit) > -1) { return "Boolean"; } else if (type.indexOf(type_decimal) > -1) { return "java.math.BigDecimal"; } else if (type.indexOf(type_blob) > -1) { return "byte[]"; } return null; } private String processField(String field) { StringBuffer sb = new StringBuffer(field.length()); //field = field.toLowerCase(); String[] fields = field.split("_"); String temp = null; sb.append(fields[0]); for (int i = 1; i < fields.length; i++) { temp = fields[i].trim(); sb.append(temp.substring(0, 1).toUpperCase()).append(temp.substring(1)); } return sb.toString(); } /** * 将实体类名首字母改为小写 * * @param
生成MySQL 实体类
最新推荐文章于 2024-07-21 14:57:22 发布
该Java代码实现了一个工具类,用于自动生成MyBatis的实体类、Mapper接口及对应的XML文件。工具通过连接MySQL数据库,获取表信息,然后根据表结构生成相应的Java代码,包括实体类的属性、getter/setter方法、Mapper接口以及SQL查询语句。
摘要由CSDN通过智能技术生成