package cn.net.yto.aaa.dao.generator;

/**
* 由数据库表生成jpa实体工具
*
* @author huike
* Created by gf.liu on 2017/5/25.
*/
public class GenEntityMysql { private static final String URL = "jdbc:mysql://127.0.0.1:3306/yto_test?useUnicode=true&characterEncoding=utf8";
private static final String NAME = "root";
private static final String PASS = "root"; /**
* //指定实体生成所在包的路径
*/
private String entityPackage = "cn.net.yto.aaa.dao.entities";
/**
* 指定实体仓库接口生成所在包的路径
*/
private String repositoryPackage = "cn.net.yto.aaa.dao.repositories";
/**
* 作者名字
*/
private String authorName = "huike";
/**
* 根据表明创建entity实例类,每次一个
*/
private String tableName = "tb_stu_cou_stu"; /**
* 列名数组
*/
private List<String> colNames = new ArrayList<>();
/**
* 列名类型数组
*/
private List<String> colTypes = new ArrayList<>();
/**
* 列名大小数组
*/
private List<Integer> colSizes = new ArrayList<>();
/**
* //列补充说明
*/
private List<String> colExtras = new ArrayList<>();
/**
* 列注释
*/
private List<String> colComment = new ArrayList<>(); private List<String> colNulls = new ArrayList<>(); /**
* 是否需要导入包java.util.*
*/
private boolean f_util = false;
/**
* 是否需要导入包java.sql.*
*/
private boolean f_sql = false;
/**
* 是否需要导入包java.math.BigDecimal
*/
private boolean f_bigDecimal = false; private static final String DRIVER = "com.mysql.jdbc.Driver"; private static final String AUTO = "auto_increment"; private static final String NO = "NO"; /*
* 构造函数
*/
public GenEntityMysql() { } /**
*
*/
public static void main(String[] args) {
  
// GenEntityMysql genEntityMysql = new GenEntityMysql();
// genEntityMysql.generateEntry(); } /**
* 功能:生成实体类主体代码
*
* @return
*/
private String parseEntity() {
StringBuffer sb = new StringBuffer(); sb.append("package " + this.entityPackage + ";\r\n\r\n");
sb.append("import javax.persistence.Entity;" + "\r\n");
sb.append("import javax.persistence.Table;" + "\r\n");
sb.append("import javax.persistence.Column;" + "\r\n");
sb.append("import javax.persistence.Id;" + "\r\n");
sb.append("import javax.persistence.GeneratedValue;" + "\r\n");
sb.append("import javax.persistence.GenerationType;" + "\r\n");
sb.append("import java.io.Serializable;" + "\r\n"); //判断是否导入工具包
if (f_util) {
sb.append("import java.util.Date;\r\n");
}
if (f_sql) {
sb.append("import java.sql.*;\r\n");
}
if (f_bigDecimal) {
sb.append("import java.math.BigDecimal;\r\n");
} sb.append("\r\n");
//注释部分
sb.append(" /**\r\n");
sb.append(" * " + tableName + " 实体类\r\n");
sb.append(" * Created by " + this.authorName + "\r\n");
sb.append(" * " + new Date() + "\r\n");
sb.append(" */ \r\n");
//实体部分
sb.append("@Entity " + "\r\n");
sb.append("@Table(name = \"" + tableName + "\")" + "\r\n"); sb.append("public class " + this.allInitialCapital(tableName) + " implements Serializable{\r\n");
processAllAttrs(sb);//属性
processAllMethod(sb);//get set方法
sb.append("}\r\n"); return sb.toString();
} /**
* 功能:生成repository代码
*
* @return
*/
private String parseRepository() {
StringBuffer sb = new StringBuffer(); sb.append("package " + this.repositoryPackage + ";\r\n\r\n");
sb.append("import cn.net.yto.base.dao.BaseRepository;" + "\r\n");
sb.append("import org.springframework.stereotype.Repository;" + "\r\n");
sb.append("import " + this.entityPackage + "." + this.allInitialCapital(tableName) + ";" + "\r\n");
sb.append("\r\n");
//注释部分
sb.append(" /**\r\n");
sb.append(" * " + tableName + " Repository\r\n");
sb.append(" * Created by " + this.authorName + "\r\n");
sb.append(" * " + new Date() + "\r\n");
sb.append(" */ \r\n");
//实体部分
sb.append("@Repository " + "\r\n"); sb.append("public interface " + this.allInitialCapital(tableName) + "Repository extends BaseRepository<" + this.allInitialCapital(tableName) + ", Integer> {\r\n");
sb.append("}\r\n"); return sb.toString();
} /**
* 功能:生成所有属性
*
* @param sb
*/
private void processAllAttrs(StringBuffer sb) { for (int i = 0; i < colNames.size(); i++) {
//注释部分
sb.append(" /**\r\n");
sb.append(" * " + colComment.get(i) + " \r\n");
sb.append(" */ \r\n");
if (AUTO.equalsIgnoreCase(colExtras.get(i))) {
sb.append("\t@Id" + "\r\n");
sb.append("\t@GeneratedValue(strategy = GenerationType.IDENTITY)" + "\r\n");
}
sb.append("\t@Column(name = \"" + colNames.get(i) + "\"");
if (NO.equalsIgnoreCase(colNulls.get(i))) {
sb.append(", nullable = false");
}
if (colSizes.get(i) > 0) {
sb.append(", length = " + colSizes.get(i));
}
sb.append(")" + "\r\n");
sb.append("\tprivate " + sqlType2JavaType(colTypes.get(i)) + " " + this.secInitialCapital(colNames.get(i)) + ";\r\n\r\n");
}
} /**
* 功能:生成所有方法
*
* @param sb
*/
private void processAllMethod(StringBuffer sb) { for (int i = 0; i < colNames.size(); i++) {
sb.append("\tpublic " + sqlType2JavaType(colTypes.get(i)) + " get" + this.allInitialCapital(colNames.get(i)) + "(){\r\n");
sb.append("\t\treturn " + this.secInitialCapital(colNames.get(i)) + ";\r\n");
sb.append("\t}\r\n");
sb.append("\tpublic void set" + this.allInitialCapital(colNames.get(i)) + "(" + sqlType2JavaType(colTypes.get(i)) + " " +
this.secInitialCapital(colNames.get(i)) + "){\r\n");
sb.append("\tthis." + this.secInitialCapital(colNames.get(i)) + "=" + this.secInitialCapital(colNames.get(i)) + ";\r\n");
sb.append("\t}\r\n");
} } /**
* 功能:将输入字符串的首字母改成大写
*
* @param str
* @return
*/
private String initialCapital(String str) {
char[] ch = str.toCharArray();
if (ch[0] >= 'a' && ch[0] <= 'z') {
ch[0] = (char) (ch[0] - 32);
}
return new String(ch);
} /**
* 所有字母转成小写
*
* @return
*/
private String allLowerCase(String str) {
if (StringUtils.isEmpty(str)) {
return str;
}
return str.toLowerCase();
} /**
* 分解名称
*
* @param str
* @return
*/
private String[] splitName(String str) {
if (StringUtils.isEmpty(str)) {
return null;
}
return str.split("_");
} /**
* 由数据库表名生成实体类名
*
* @param tableName
* @return
*/
private String allInitialCapital(String tableName) {
if (StringUtils.isEmpty(tableName)) {
return null;
}
tableName = this.allLowerCase(tableName);
String[] tableNameArray = this.splitName(tableName);
StringBuffer entryName = new StringBuffer();
for (String part : tableNameArray) {
entryName.append(this.initialCapital(part));
}
return entryName.toString();
} /**
* 由数据库列名生成实体类属性名
*
* @param columnName
* @return
*/
private String secInitialCapital(String columnName) {
if (StringUtils.isEmpty(columnName)) {
return null;
}
columnName = this.allLowerCase(columnName);
String[] columnNameArray = this.splitName(columnName);
StringBuffer fieldName = new StringBuffer();
for (int i = 0; i < columnNameArray.length; i++) {
String part = columnNameArray[i];
if (0 == i) {
fieldName.append(part);
} else {
fieldName.append(this.initialCapital(part));
}
}
return fieldName.toString();
} /**
* 功能:获得列的数据类型
*
* @param sqlType
* @return
*/
private String sqlType2JavaType(String sqlType) { if (sqlType.equalsIgnoreCase("bit")) {
return "Boolean";
} else if (sqlType.equalsIgnoreCase("tinyint")) {
return "Byte";
} else if (sqlType.equalsIgnoreCase("smallint")) {
return "Short";
} else if (sqlType.equalsIgnoreCase("int")) {
return "Integer";
} else if (sqlType.equalsIgnoreCase("bigint")) {
return "Long";
} else if (sqlType.equalsIgnoreCase("float")) {
return "Float";
} else if (sqlType.equalsIgnoreCase("decimal")) {
return "BigDecimal";
} else if (sqlType.equalsIgnoreCase("numeric")
|| sqlType.equalsIgnoreCase("real") || sqlType.equalsIgnoreCase("money")
|| sqlType.equalsIgnoreCase("smallmoney")) {
return "Double";
} else if (sqlType.equalsIgnoreCase("varchar") || sqlType.equalsIgnoreCase("char")
|| sqlType.equalsIgnoreCase("nvarchar") || sqlType.equalsIgnoreCase("nchar")
|| sqlType.equalsIgnoreCase("text")) {
return "String";
} else if (sqlType.equalsIgnoreCase("datetime")) {
return "Date";
} else if (sqlType.equalsIgnoreCase("image")) {
return "Blod";
} return null;
} /**
* 生成实体
*/
public void generateEntry() {
//
this.getTableAttribute(); String entityContent = this.parseEntity();
this.writerEntityToFile(entityContent);
String repositoryContent = this.parseRepository();
this.writerRepositoryToFile(repositoryContent);
} /**
* 写入文件
*
* @param content
*/
private void writerRepositoryToFile(String content) {
try {
String absolutePath = this.getClass().getResource("").getPath();
absolutePath = absolutePath.substring(0, absolutePath.indexOf("target"));
String outputPath = absolutePath + "src/main/java/" + this.repositoryPackage.replace(".", "/") + "/"
+ this.allInitialCapital(tableName) + "Repository" + ".java";
System.out.println("Repository路径:" + outputPath);
FileWriter fw = new FileWriter(outputPath);
PrintWriter pw = new PrintWriter(fw);
pw.println(content);
pw.flush();
pw.close();
} catch (IOException e) {
e.printStackTrace();
}
} /**
* 写入文件
*
* @param content
*/
private void writerEntityToFile(String content) {
try {
String absolutePath = this.getClass().getResource("").getPath();
absolutePath = absolutePath.substring(0, absolutePath.indexOf("target"));
String outputPath = absolutePath + "src/main/java/" + this.entityPackage.replace(".", "/") + "/"
+ allInitialCapital(tableName) + ".java";
System.out.println("Entity路径:" + outputPath);
FileWriter fw = new FileWriter(outputPath);
PrintWriter pw = new PrintWriter(fw);
pw.println(content);
pw.flush();
pw.close();
} catch (IOException e) {
e.printStackTrace();
}
} /**
* 获取数据库信息
*/
private void getTableAttribute() {
//创建连接
Connection con = null;
//查要生成实体类的表
String sql = "show full columns from " + tableName;
Statement state = null;
try {
try {
Class.forName(DRIVER);
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
con = DriverManager.getConnection(URL, NAME, PASS);
state = con.createStatement();
ResultSet rs = state.executeQuery(sql);
// ResultSetMetaData metaData = rs.getMetaData(); while (rs.next()) {
colNames.add(rs.getString("Field"));
String type = rs.getString("Type");
String comment = rs.getString("Comment");
String extra = rs.getString("Extra");
String colNull = rs.getString("Null");
int colSize = 0;
if (type.contains("(")) {
String colSizeStr = type.substring(type.indexOf("(") + 1, type.indexOf(")"));
type = type.substring(0, type.indexOf("("));
try {
colSize = Integer.valueOf(colSizeStr);
} catch (NumberFormatException e) { }
} colTypes.add(type);
colSizes.add(colSize);
colComment.add(comment);
colExtras.add(extra);
colNulls.add(colNull);
if (type.equalsIgnoreCase("datetime")) {
f_util = true;
}
if (type.equalsIgnoreCase("image") || type.equalsIgnoreCase("text")) {
f_sql = true;
}
if (type.equalsIgnoreCase("decimal")) {
f_bigDecimal = true;
}
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (null != con) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
} }
package cn.net.yto.aaa.dao.generator;

import org.apache.commons.lang.StringUtils;

import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List; /**
* 由数据库表生成jpa实体工具
*
* @author huike
* Created by gf.liu on 2017/5/25.
*/
public class GenEntityMysql { private static final String URL = "jdbc:mysql://127.0.0.1:3306/yto_test?useUnicode=true&characterEncoding=utf8";
private static final String NAME = "root";
private static final String PASS = "root"; /**
* //指定实体生成所在包的路径
*/
private String entityPackage = "cn.net.yto.aaa.dao.entities";
/**
* 指定实体仓库接口生成所在包的路径
*/
private String repositoryPackage = "cn.net.yto.aaa.dao.repositories";
/**
* 作者名字
*/
private String authorName = "huike";
/**
* 根据表明创建entity实例类,每次一个
*/
private String tableName = "tb_stu_cou_stu"; /**
* 列名数组
*/
private List<String> colNames = new ArrayList<>();
/**
* 列名类型数组
*/
private List<String> colTypes = new ArrayList<>();
/**
* 列名大小数组
*/
private List<Integer> colSizes = new ArrayList<>();
/**
* //列补充说明
*/
private List<String> colExtras = new ArrayList<>();
/**
* 列注释
*/
private List<String> colComment = new ArrayList<>(); private List<String> colNulls = new ArrayList<>(); /**
* 是否需要导入包java.util.*
*/
private boolean f_util = false;
/**
* 是否需要导入包java.sql.*
*/
private boolean f_sql = false;
/**
* 是否需要导入包java.math.BigDecimal
*/
private boolean f_bigDecimal = false; private static final String DRIVER = "com.mysql.jdbc.Driver"; private static final String AUTO = "auto_increment"; private static final String NO = "NO"; /*
* 构造函数
*/
public GenEntityMysql() { } /**
*
*/
public static void main(String[] args) { // GenEntityMysql genEntityMysql = new GenEntityMysql();
// genEntityMysql.generateEntry(); } /**
* 功能:生成实体类主体代码
*
* @return
*/
private String parseEntity() {
StringBuffer sb = new StringBuffer(); sb.append("package " + this.entityPackage + ";\r\n\r\n");
sb.append("import javax.persistence.Entity;" + "\r\n");
sb.append("import javax.persistence.Table;" + "\r\n");
sb.append("import javax.persistence.Column;" + "\r\n");
sb.append("import javax.persistence.Id;" + "\r\n");
sb.append("import javax.persistence.GeneratedValue;" + "\r\n");
sb.append("import javax.persistence.GenerationType;" + "\r\n");
sb.append("import java.io.Serializable;" + "\r\n"); //判断是否导入工具包
if (f_util) {
sb.append("import java.util.Date;\r\n");
}
if (f_sql) {
sb.append("import java.sql.*;\r\n");
}
if (f_bigDecimal) {
sb.append("import java.math.BigDecimal;\r\n");
} sb.append("\r\n");
//注释部分
sb.append(" /**\r\n");
sb.append(" * " + tableName + " 实体类\r\n");
sb.append(" * Created by " + this.authorName + "\r\n");
sb.append(" * " + new Date() + "\r\n");
sb.append(" */ \r\n");
//实体部分
sb.append("@Entity " + "\r\n");
sb.append("@Table(name = \"" + tableName + "\")" + "\r\n"); sb.append("public class " + this.allInitialCapital(tableName) + " implements Serializable{\r\n");
processAllAttrs(sb);//属性
processAllMethod(sb);//get set方法
sb.append("}\r\n"); return sb.toString();
} /**
* 功能:生成repository代码
*
* @return
*/
private String parseRepository() {
StringBuffer sb = new StringBuffer(); sb.append("package " + this.repositoryPackage + ";\r\n\r\n");
sb.append("import cn.net.yto.base.dao.BaseRepository;" + "\r\n");
sb.append("import org.springframework.stereotype.Repository;" + "\r\n");
sb.append("import " + this.entityPackage + "." + this.allInitialCapital(tableName) + ";" + "\r\n");
sb.append("\r\n");
//注释部分
sb.append(" /**\r\n");
sb.append(" * " + tableName + " Repository\r\n");
sb.append(" * Created by " + this.authorName + "\r\n");
sb.append(" * " + new Date() + "\r\n");
sb.append(" */ \r\n");
//实体部分
sb.append("@Repository " + "\r\n"); sb.append("public interface " + this.allInitialCapital(tableName) + "Repository extends BaseRepository<" + this.allInitialCapital(tableName) + ", Integer> {\r\n");
sb.append("}\r\n"); return sb.toString();
} /**
* 功能:生成所有属性
*
* @param sb
*/
private void processAllAttrs(StringBuffer sb) { for (int i = ; i < colNames.size(); i++) {
//注释部分
sb.append(" /**\r\n");
sb.append(" * " + colComment.get(i) + " \r\n");
sb.append(" */ \r\n");
if (AUTO.equalsIgnoreCase(colExtras.get(i))) {
sb.append("\t@Id" + "\r\n");
sb.append("\t@GeneratedValue(strategy = GenerationType.IDENTITY)" + "\r\n");
}
sb.append("\t@Column(name = \"" + colNames.get(i) + "\"");
if (NO.equalsIgnoreCase(colNulls.get(i))) {
sb.append(", nullable = false");
}
if (colSizes.get(i) > ) {
sb.append(", length = " + colSizes.get(i));
}
sb.append(")" + "\r\n");
sb.append("\tprivate " + sqlType2JavaType(colTypes.get(i)) + " " + this.secInitialCapital(colNames.get(i)) + ";\r\n\r\n");
}
} /**
* 功能:生成所有方法
*
* @param sb
*/
private void processAllMethod(StringBuffer sb) { for (int i = ; i < colNames.size(); i++) {
sb.append("\tpublic " + sqlType2JavaType(colTypes.get(i)) + " get" + this.allInitialCapital(colNames.get(i)) + "(){\r\n");
sb.append("\t\treturn " + this.secInitialCapital(colNames.get(i)) + ";\r\n");
sb.append("\t}\r\n");
sb.append("\tpublic void set" + this.allInitialCapital(colNames.get(i)) + "(" + sqlType2JavaType(colTypes.get(i)) + " " +
this.secInitialCapital(colNames.get(i)) + "){\r\n");
sb.append("\tthis." + this.secInitialCapital(colNames.get(i)) + "=" + this.secInitialCapital(colNames.get(i)) + ";\r\n");
sb.append("\t}\r\n");
} } /**
* 功能:将输入字符串的首字母改成大写
*
* @param str
* @return
*/
private String initialCapital(String str) {
char[] ch = str.toCharArray();
if (ch[] >= 'a' && ch[] <= 'z') {
ch[] = (char) (ch[] - );
}
return new String(ch);
} /**
* 所有字母转成小写
*
* @return
*/
private String allLowerCase(String str) {
if (StringUtils.isEmpty(str)) {
return str;
}
return str.toLowerCase();
} /**
* 分解名称
*
* @param str
* @return
*/
private String[] splitName(String str) {
if (StringUtils.isEmpty(str)) {
return null;
}
return str.split("_");
} /**
* 由数据库表名生成实体类名
*
* @param tableName
* @return
*/
private String allInitialCapital(String tableName) {
if (StringUtils.isEmpty(tableName)) {
return null;
}
tableName = this.allLowerCase(tableName);
String[] tableNameArray = this.splitName(tableName);
StringBuffer entryName = new StringBuffer();
for (String part : tableNameArray) {
entryName.append(this.initialCapital(part));
}
return entryName.toString();
} /**
* 由数据库列名生成实体类属性名
*
* @param columnName
* @return
*/
private String secInitialCapital(String columnName) {
if (StringUtils.isEmpty(columnName)) {
return null;
}
columnName = this.allLowerCase(columnName);
String[] columnNameArray = this.splitName(columnName);
StringBuffer fieldName = new StringBuffer();
for (int i = ; i < columnNameArray.length; i++) {
String part = columnNameArray[i];
if (0 == i) {
fieldName.append(part);
} else {
fieldName.append(this.initialCapital(part));
}
}
return fieldName.toString();
} /**
* 功能:获得列的数据类型
*
* @param sqlType
* @return
*/
private String sqlType2JavaType(String sqlType) { if (sqlType.equalsIgnoreCase("bit")) {
return "Boolean";
} else if (sqlType.equalsIgnoreCase("tinyint")) {
return "Byte";
} else if (sqlType.equalsIgnoreCase("smallint")) {
return "Short";
} else if (sqlType.equalsIgnoreCase("int")) {
return "Integer";
} else if (sqlType.equalsIgnoreCase("bigint")) {
return "Long";
} else if (sqlType.equalsIgnoreCase("float")) {
return "Float";
} else if (sqlType.equalsIgnoreCase("decimal")) {
return "BigDecimal";
} else if (sqlType.equalsIgnoreCase("numeric")
|| sqlType.equalsIgnoreCase("real") || sqlType.equalsIgnoreCase("money")
|| sqlType.equalsIgnoreCase("smallmoney")) {
return "Double";
} else if (sqlType.equalsIgnoreCase("varchar") || sqlType.equalsIgnoreCase("char")
|| sqlType.equalsIgnoreCase("nvarchar") || sqlType.equalsIgnoreCase("nchar")
|| sqlType.equalsIgnoreCase("text")) {
return "String";
} else if (sqlType.equalsIgnoreCase("datetime")) {
return "Date";
} else if (sqlType.equalsIgnoreCase("image")) {
return "Blod";
} return null;
} /**
* 生成实体
*/
public void generateEntry() {
//
this.getTableAttribute(); String entityContent = this.parseEntity();
this.writerEntityToFile(entityContent);
String repositoryContent = this.parseRepository();
this.writerRepositoryToFile(repositoryContent);
} /**
* 写入文件
*
* @param content
*/
private void writerRepositoryToFile(String content) {
try {
String absolutePath = this.getClass().getResource("").getPath();
absolutePath = absolutePath.substring(, absolutePath.indexOf("target"));
String outputPath = absolutePath + "src/main/java/" + this.repositoryPackage.replace(".", "/") + "/"
+ this.allInitialCapital(tableName) + "Repository" + ".java";
System.out.println("Repository路径:" + outputPath);
FileWriter fw = new FileWriter(outputPath);
PrintWriter pw = new PrintWriter(fw);
pw.println(content);
pw.flush();
pw.close();
} catch (IOException e) {
e.printStackTrace();
}
} /**
* 写入文件
*
* @param content
*/
private void writerEntityToFile(String content) {
try {
String absolutePath = this.getClass().getResource("").getPath();
absolutePath = absolutePath.substring(, absolutePath.indexOf("target"));
String outputPath = absolutePath + "src/main/java/" + this.entityPackage.replace(".", "/") + "/"
+ allInitialCapital(tableName) + ".java";
System.out.println("Entity路径:" + outputPath);
FileWriter fw = new FileWriter(outputPath);
PrintWriter pw = new PrintWriter(fw);
pw.println(content);
pw.flush();
pw.close();
} catch (IOException e) {
e.printStackTrace();
}
} /**
* 获取数据库信息
*/
private void getTableAttribute() {
//创建连接
Connection con = null;
//查要生成实体类的表
String sql = "show full columns from " + tableName;
Statement state = null;
try {
try {
Class.forName(DRIVER);
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
con = DriverManager.getConnection(URL, NAME, PASS);
state = con.createStatement();
ResultSet rs = state.executeQuery(sql);
// ResultSetMetaData metaData = rs.getMetaData(); while (rs.next()) {
colNames.add(rs.getString("Field"));
String type = rs.getString("Type");
String comment = rs.getString("Comment");
String extra = rs.getString("Extra");
String colNull = rs.getString("Null");
int colSize = ;
if (type.contains("(")) {
String colSizeStr = type.substring(type.indexOf("(") + , type.indexOf(")"));
type = type.substring(, type.indexOf("("));
try {
colSize = Integer.valueOf(colSizeStr);
} catch (NumberFormatException e) { }
} colTypes.add(type);
colSizes.add(colSize);
colComment.add(comment);
colExtras.add(extra);
colNulls.add(colNull);
if (type.equalsIgnoreCase("datetime")) {
f_util = true;
}
if (type.equalsIgnoreCase("image") || type.equalsIgnoreCase("text")) {
f_sql = true;
}
if (type.equalsIgnoreCase("decimal")) {
f_bigDecimal = true;
}
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (null != con) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
} }

由数据库表生成jpa实体工具的更多相关文章

  1. JAVA 自动生成对应数据库表的JPA代码工具

    http://blog.csdn.net/zheng2008hua/article/details/6274659 关键词:JPA 数据库表代码自动生成,JPA代码生成     自动生成对应数据库表的 ...

  2. IDEA 根据数据库表 生成 Model实体

    首先在 Idea中 配置数据源,测试ok(过程略) idea窗口中左下角是否 有显示Persistence 窗口  如果没有显示就要如下方法 添加显示: File - > Project Str ...

  3. net core天马行空系列-可用于依赖注入的,数据库表和c#实体类互相转换的接口实现

    1.前言 hi,大家好,我是三合.作为一名程序猿,日常开发中,我们在接到需求以后,一般都会先构思一个模型,然后根据模型写实体类,写完实体类后在数据库里建表,接着进行增删改查, 也有第二种情况,就是有些 ...

  4. myeclipse通过数据表生成jpa或hibernate实体---https://blog.csdn.net/partner4java/article/details/8560289

    myeclipse通过数据表生成jpa或hibernate实体-----https://blog.csdn.net/partner4java/article/details/8560289

  5. symfony 数据库表生成实体、迁移数据库

    从数据库表生成实体 1. 由数据库生成模型: php bin/console doctrine:mapping:convert --from-database yml D:\db\ D:\test_b ...

  6. JDBCUtils,根据当前MySQL数据库下面的表生成java实体类

    自己简单写的JDBCUtils,可以根据当前数据库下面的表生成java实体类,代码萌新,请多多包涵. 初始化配置: //驱动程序名//不固定,根据驱动 static String driver = & ...

  7. SqlServer数据库表生成C# Model实体类SQL语句——补充

    在sql语句最前边加上  use[数据库名] 原链接:https://www.cnblogs.com/jhli/p/11552105.html   --[SQL骚操作]SqlServer数据库表生成C ...

  8. GG_Model 类库与数据库表对应建立实体类

    3.4.GG_Model 类库与数据库表对应建立实体类 我这里不教大家写代码,直接用TT模板自动生成,省去写代码的麻烦. A. 三个文件MysqlDbhelper.ttinclude .mysqlMa ...

  9. eclipse从数据库逆向生成Hibernate实体类

    做项目必然要先进行数据库表设计,然后根据数据库设计建立实体类(VO),这是理所当然的,但是到公司里做项目后,让我认识到,没有说既进行完数据库设计后还要再“自己”建立一变VO.意思是,在项目设计时,要么 ...

随机推荐

  1. linux清理缓存的命令

    查看缓存的命令 free -m 清理缓存的命令  echo 1 > /proc/sys/vm/drop_caches echo 2 > /proc/sys/vm/drop_caches e ...

  2. 数据挖掘领域十大经典算法之—SVM算法(超详细附代码)

    https://blog.csdn.net/fuqiuai/article/details/79483057

  3. python学习之——习题二

    习题二:求1-100的所有数的和 首先明确,1-100的数字相加一直是前面加后面,如,1+2+3+4......我们平常的计算方法是1+2等于3,然后再使用3+3等于6,然后6+4等于10以此类推加到 ...

  4. Java 问题定位工具 -- jps

    概览 最近老大布置的任务就是质量加固,偶然看到了一些对于 Java 性能分析的介绍,因此,有了此篇学习笔记. JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jCons ...

  5. 流程与IT管理是未来IT行业发展的必经之路

    流程与IT管理是未来IT行业发展的必经之路 PM圈子 百家号17-11-2411:30 本文由“光环国际”—中国项目管理PMP培训上市企业转载 IT部门的职责之所以能够从辅助部门发展成业务支撑部门,最 ...

  6. 使用Spring MVC实现数据绑定

    使用Spring MVC实现数据绑定 ——Spring MVC支持将表单参数自动绑定在映射方法的参数. ①绑定标量数据 前端代码: <form action="${pageContex ...

  7. release环境下,当前不会命中断点,还没有为该文档加载任何符号

    今天在release编译环境下出现了如标题所说的问题“ 当前不会命中断点,还没有为该文档加载任何符号”,在网上找了几个方法都没有解决我的问题,咨询了一下师傅,解决了,很简单,方法如下:右键--属性-- ...

  8. 雷林鹏分享:YAF路由问题

    这2天休年假,在家宅着学习研究了YAF框架,用YAF做过APP接口的项目,但是没有用来做过WEB方面的应用.趁着这2天在家想把博客用YAF进行一下改版,目的也想进一步学习一下YAF. 在这过程中遇到不 ...

  9. MATLAB 实时脚本(live-script)使用

    在matlab2016a及以上的版本不建议安装notebook来编写实施脚本,以为之后的matlab里面会有live-script,他可以创建实施脚本,使脚本与方便操作.那么这个live script ...

  10. 2018-2019-2 20175317 实验二《Java面向对象程序设计》实验报告

    2018-2019-2 20175317 实验二<Java面向对象程序设计>实验报告 一.实验步骤及内容 面向对象程序设计-1 参考 http://www.cnblogs.com/roce ...