首页>代码>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日

最近浏览