首页>代码>java swing开发一款代码生成工具swing-generate,可通过velocity模板引擎在线定制模板>/swing-generate-master/src/org/unique/generator/DatabaseInfoOp.java
package org.unique.generator; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import org.unique.generator.model.Column; import org.unique.generator.model.Database; import org.unique.generator.model.Table; /** * 数据库信息获得操作类 * * @ClassName: DatabaseInfoOp * @author Andrew.Wen * @date 2013-1-10 下午3:56:23 */ public class DatabaseInfoOp { Connection conn = null; private String classDriver; private String url; private String username; private String password; private String schema; public DatabaseInfoOp(String classDriver, String url, String username, String password) { super(); this.classDriver = classDriver; this.url = url; this.username = username; this.password = password; } public DatabaseInfoOp(String classDriver, String url, String username, String password, String schema) { super(); this.classDriver = classDriver; this.url = url; this.username = username; this.password = password; this.schema = schema; } public Connection getConnectionByJDBC() { try { // 装载驱动包类 Class.forName(classDriver); // 加载驱动 conn = DriverManager.getConnection(url, username, password); } catch (ClassNotFoundException e) { System.out.println("装载驱动包出现异常!请查正!"); e.printStackTrace(); } catch (SQLException e) { System.out.println("链接数据库发生异常!"); e.printStackTrace(); } return conn; } /** * 获得表数据 * * @Title: getDbInfo * @return * @throws SQLException */ public Database getDbInfo(String tableNamePattern) throws SQLException { Database databaseBean = new Database(); // 表队列 List<Table> tableList = new ArrayList<Table>(); // 初始化数据库 getConnectionByJDBC(); // 获取数据库信息 DatabaseMetaData dbmd = conn.getMetaData(); databaseBean.setDatabaseProductName(dbmd.getDatabaseProductName()); // 获得数据库表 ResultSet rs = dbmd.getTables(null, null, tableNamePattern, new String[] { "TABLE", "VIEW" }); // String tableName = ""; while (rs.next()) { Table table = new Table(); table.setTableName(rs.getString("TABLE_NAME")); table.setTableComment(rs.getString("REMARKS")); table.setTableSchem(rs.getString(1)); // 设置列信息 ResultSet rscol = dbmd.getColumns(null, null, table.getTableName(), null); Column tempColumn; while (rscol.next()) { tempColumn = new Column(); tempColumn.setColumnName(rscol.getString("COLUMN_NAME")); tempColumn.setColumnType(Integer.parseInt(rscol.getString("DATA_TYPE"))); String remarks = rscol.getString("REMARKS"); if (remarks.length() < 1) remarks = ""; tempColumn.setColumnComment(remarks); tempColumn.setAutoIncrement(rscol.getString("IS_AUTOINCREMENT").equals("YES")); tempColumn.setNullAble(rscol.getString("IS_AUTOINCREMENT").equals("YES")); // 添加列到表中 table.getColumnList().add(tempColumn); } // 设置主键列 ResultSet rsPrimary = dbmd.getPrimaryKeys(null, null, table.getTableName()); while (rsPrimary.next()) { if (rsPrimary.getString("COLUMN_NAME") != null) { for (int i = 0; i < table.getColumnList().size(); i++) { Column coltemp = table.getColumnList().get(i); if (coltemp.getColumnName().equals(rsPrimary.getString("COLUMN_NAME"))) { coltemp.setPrimary(true); } } } } // 设置外键列 ResultSet rsFPrimary = dbmd.getImportedKeys(null, null, table.getTableName()); while (rsFPrimary.next()) { for (int i = 0; i < table.getColumnList().size(); i++) { Column coltemp = table.getColumnList().get(i); if (coltemp.getColumnName().equals(rsFPrimary.getString("FKCOLUMN_NAME"))) { coltemp.setForeignKey(true); } } } tableList.add(table); } databaseBean.setTableList(tableList); return databaseBean; } public Database getDbInfo() throws SQLException { Database databaseBean = new Database(); // 表队列 List<Table> tableList = new ArrayList<Table>(); // 初始化数据库 getConnectionByJDBC(); // 获取数据库信息 DatabaseMetaData dbmd = conn.getMetaData(); databaseBean.setDatabaseProductName(dbmd.getDatabaseProductName()); // 获得数据库表 ResultSet rs = dbmd.getTables(null, this.schema, null, new String[] { "TABLE", "VIEW" }); // String tableName = ""; while (rs.next()) { Table table = new Table(); table.setTableName(rs.getString("TABLE_NAME")); table.setTableComment(rs.getString("REMARKS")); table.setTableSchem(rs.getString(1)); // 设置列信息 ResultSet rscol = dbmd.getColumns(null, null, table.getTableName(), null); Column tempColumn; while (rscol.next()) { tempColumn = new Column(); tempColumn.setColumnName(rscol.getString("COLUMN_NAME")); tempColumn.setColumnType(Integer.parseInt(rscol.getString("DATA_TYPE"))); String remarks = rscol.getString("REMARKS"); if (remarks.length() < 1) remarks = ""; tempColumn.setColumnComment(remarks); tempColumn.setAutoIncrement(rscol.getString("IS_AUTOINCREMENT").equals("YES")); tempColumn.setNullAble(rscol.getString("IS_AUTOINCREMENT").equals("YES")); // 添加列到表中 table.getColumnList().add(tempColumn); } // 设置主键列 ResultSet rsPrimary = dbmd.getPrimaryKeys(null, null, table.getTableName()); while (rsPrimary.next()) { if (rsPrimary.getString("COLUMN_NAME") != null) { for (int i = 0; i < table.getColumnList().size(); i++) { Column coltemp = table.getColumnList().get(i); if (coltemp.getColumnName().equals(rsPrimary.getString("COLUMN_NAME"))) { coltemp.setPrimary(true); } } } } // 设置外键列 ResultSet rsFPrimary = dbmd.getImportedKeys(null, null, table.getTableName()); while (rsFPrimary.next()) { for (int i = 0; i < table.getColumnList().size(); i++) { Column coltemp = table.getColumnList().get(i); if (coltemp.getColumnName().equals(rsFPrimary.getString("FKCOLUMN_NAME"))) { //System.out.println("FKCOLUMN_NAME "+rsFPrimary.getString("FKCOLUMN_NAME")); coltemp.setForeignKey(true); } } } tableList.add(table); } databaseBean.setTableList(tableList); return databaseBean; } }

978806986 LV16
2022年3月25日
675104182 LV14
2020年9月22日
Zhangshuzi LV1
2020年6月25日
wei112233 LV15
2020年5月11日
mingpl LV9
2020年2月16日
a243933863 LV1
2019年11月25日
werwrer LV6
2019年11月4日
1165166678 LV1
2019年10月8日
648020894 LV1
2019年7月9日
398163660sj LV1
2019年6月27日