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. Solr中在使用过程中遇到的"与"和"或"的问题

    在进行全文检索的过程中,如果使用三星和手机,两个一块进行搜索的时候,关于三星的会被搜索出来,关于手机的信息也会被搜索出来,然后,需要将一些配置文件进行配置, <!-- DEPRECATED: T ...

  2. Haystack全文检索

    1.什么是Haystack Haystack是django的开源全文搜索框架(全文检索不同于特定字段的模糊查询,使用全文检索的效率更高 ),该框架支持Solr,Elasticsearch(java写的 ...

  3. 2018年-2019年第二学期第七周C#学习个人总结

    在本周我又学习了,第五章面向对象高级中的5.5异常和5.6命名空间和程序集.在5.5异常中我知道了异常层次结构:所有的异常类都继承自Exception类.由于发生了异常程序立即终止无法再继续向下执行. ...

  4. net应用程序池自动关闭的解决方法

    while (true) { using (ServerManager sm = ServerManager.OpenRemote("localhost")) { string p ...

  5. Bigger-Mai 养成计划,subprocess模块

    subprocess模块是python从2.4版本开始引入的模块.主要用来取代 一些旧的模块方法,如os.system.os.spawn*.os.popen*.commands.*等.subproce ...

  6. javascript 之 面向对象【创建对象】

    创建对象 (1) 工厂模式 function createPerson(name, age, job){ var o = new Object(); o.name = name; o.age = ag ...

  7. Jenkins之定时构建

    参考文章:https://blog.csdn.net/ZZY1078689276/article/details/77520441 第一个*表示分钟,取值0~59 第二个*表示小时,取值0~23 第三 ...

  8. 简单谈谈$.merge()

    var arr1 = [1,2,3]; var arr2 = [1,2,3]; console.log($.merge(arr1,arr2)) //[1,2,3,1,2,3],可见数组间只是合并,不会 ...

  9. 接口测试工具postman

    一. 安装 1. 免费官网链接:https://www.getpostman.com/postman,下载好后双击.exe程序安装即可 2. 注意事项:建议安装在非系统盘,即C盘以外的盘,路径最好用全 ...

  10. fiddler抓不到chrome浏览器的请求

    今天遇到一个非常尴尬的问题,接口在某种情况下会报错,此时前端会展示NAN之类的东西,由于复现不了,接口现在一直不报 错了,所以就让前端做了个友好提示, 当接口报错时,给个提示“请稍后重试” ,我要测试 ...