根据数据库表结构生成相应的Java实体类

根据数据库表结构生成相应的Java实体类

思路:

  • 1、创建数据库连接
  • 2、获取数据库表、表注释
  • 3、获取数据库表中字段名、字段类型、字段注释
  • 4、构建StringBuffer缓存
  • 5、写入文件
  • 6、关闭连接、输入流等等

使用方式:

  • 1、修改数据源连接信息
  • 2、修改实体配置信息
  • 3、测试
package GenerPro;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;

/**
 * 根据数据库表结构生成相应的JavaBean
 *
 * 思路
 * 1、创建数据库连接
 * 2、获取数据库表、表注释
 * 3、获取数据库表中字段名、字段类型、字段注释
 * 4、构建StringBuffer缓存
 * 5、写入文件
 * 6、关闭连接、输入流等等
 *
 * @author shihongxin
 * @Date 2020/0929
 */
public class GenerOraclePro {
   
   
	// 数据库连接
	private static final String URL = "jdbc:oracle:thin:@192.168.100.247:1521:orcl";
	private static final String NAME = "data_manage";
	private static final String PASS = "data123";
	private static final String DRIVER = "oracle.jdbc.driver.OracleDriver";
	
	// 需配置项
	private String packageOutPath = "E:/pro/";// 生成实体文件所在位置
	private String tableName = "MT_DS_TABLE";//数据库中的表名
	private String packageName = "com.zebone.dataManage.common.vo";//实体类所在的包
	private String authorName = "shihongxin";// 作者名字
	private boolean f_util = true; // 是否需要导入包java.util.*
	private boolean f_sql = true; // 是否需要导入包java.sql.*

	
	private String[] colsPre = {
   
    "F_NB_", "F_VC_", "F_CR_", "F_DT_"};
	private String[] colnames; // 列名数组
	private String[] colTypes; // 列名类型数组
	private int[] colSizes; // 列名大小数组
	private String pkFiled = null;  //表主键
	private Connection con = null;
	private Statement pStemt = null;
	private ResultSet rs = null;
	private ResultSetMetaData rsmd = null;
	
	public GenerOraclePro() {
   
   
		connect();
		getTableInfo(tableName);
		colseConnect();
	}
	/**
    * 1、创建数据库连接
    */
	private void connect() {
   
   
		try {
   
   
			Class.forName(DRIVER);
			con = DriverManager.getConnection(URL, NAME, PASS);
			pStemt = (Statement) con.createStatement();
		} catch (ClassNotFoundException | SQLException e) {
   
   
			e.printStackTrace();
		}
	}

	private void colseConnect() {
   
   
		try {
   
   
			if (con != null) {
   
   
				con.close();
				con = null;
			}
			if (pStemt != null) {
   
   
				pStemt.close();
				pStemt = null;
			}
		} catch (SQLException e) {
   
   
				e.printStackTrace();
		}
	}

	/**
    * 获取单个数据库表信息
    */
	private void getTableInfo(String tableName) {
   
   
		int size = 0;
		String sql = "SELECT * FROM " + tableName;
		try {
   
   
			rs = pStemt.executeQuery(sql);
			rsmd = rs.getMetaData();
			size = rsmd.getColumnCount();
			colnames = 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值