Võ Văn Hải's blog

Chỉ có một điều tuyệt đối đó là mọi thứ đều tương đối…

Thao tác với Metadata

Lấy tất cả các bảng có trong 1 cơ sở dữ liệu

public Vector<String> getTable(){
		Vector<String> allField=new Vector<String>();
		try {	    
			String []tableTypes={"TABLE","VIEW"};
			ResultSet table=metadata.getTables(null,null,null,tableTypes);
			
			String TableName="";
			while(table.next()){
				TableName=table.getString("TABLE_NAME");
				allField.addElement(TableName);
			}
		}catch (Exception ex) {
			ex.printStackTrace();
	    }
		return allField;
	}

Lấy các fields có trong 1 bảng

public Vector<cRowInfos> getColumns(String tableName){
	Vector<cRowInfos> tblInfo=new Vector<cRowInfos>();
	try {
		ResultSet columnName=metadata.getColumns(null,null,tableName,null);
		while(columnName.next()){
			String n=(columnName.getString("COLUMN_NAME"));
			String t=""+(columnName.getString("TYPE_NAME"));
			String s=""+columnName.getString("COLUMN_SIZE");
			String nu=""+columnName.getString("IS_NULLABLE");
			tblInfo.addElement(new cRowInfos(n,t,s,nu));
		}
	}
	catch (Exception ex) {
		ex.printStackTrace();
	}
	return tblInfo;
}

Với cRowInfos có code như sau:

package vovanhai.wordpress.com.all;
public class cRowInfos
{
	protected String rName;
	protected String rLength;
	protected String rType;
	protected String rNullable;
	cRowInfos(String n,String t,String l,String na){
		rName=n;
		rLength=l;
		rType=t;
		rNullable=na;
	}
	public String toString(){
		return rName+";\t"+rType+";\t"+rLength+";\t"+rNullable;
	}
	public String getName(){
		return rName;
	}
	public String getLength(){
		return rLength;
	}
	public String getType(){
		return rType;
	}
	public String getNull(){
		return rNullable;
	}
}

2 Responses to “Thao tác với Metadata”

  1. […] print? […]

  2. An Nguyễn said

    Em chào thầy, thầy có thể viết một bài hướng dẫn về làm backup và restore mà không dùng các câu lệnh backup restore SQL (vì dùng cho phần mềm thường thì MS hay chặn) mà chỉ lấy metadata từ jdbc để lấy cấu trúc bảng, rồi sau đó thực thi các lệnh insert… không ạ.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.