本代码是利用java反射,读取数据库表自动根据表名生成实体类,数据库采用老牌SQLSERVER 2000,驱动为JTDS,其他数据库可根据情况自定修改。
代码中包含了大部分数据库类型与JAVA类型的转换,少数未包含进去的会在生成代码时打印出来,方面后期查找修改。
本文章参考大牛文章,根据自己情况改写,非常感谢大牛提供思路,原文章地址为:https://blog.csdn.net/goodleiwei/article/details/8439023。
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 从数据库表反射出实体类,自动生成实体类
*
* @author Zero
*
*/
public class SqlHelper {
//基本数据配置
private String packageOutPath = "com.xxx.entity.system";// 指定实体生成所在包的路径
private String authorName = "Zero";// 作者名字
private String tablename = "xxx";// 表名
private String[] colnames; // 列名数组
private String[] colTypes; // 列名类型数组
private String version = "V0.01"; // 版本
private int[] colSizes; // 列名大小数组
private boolean f_util = false; // 是否需要导入包java.util.*
private boolean f_sql = false; // 是否需要导入包java.sql.*
private boolean f_lang = false; // 是否需要导入包java.sql.*
private String defaultPath = "/src/main/java/";
// 数据库连接
private static final String URL = "jdbc:jtds:sqlserver://192.168.29.128:1433/xxx";
private static final String NAME = "sa";
private static final String PASS = "xxx";
private static final String DRIVER = "net.sourceforge.jtds.jdbc.Driver";
/*
* 构造函数
*/
public SqlHelper() {
// 创建连接
Connection con;
// 查要生成实体类的表
String sql = "select * from "