java 模拟SQL语句的问题。

怎么在键盘输入
create table user(
name char,
number long ,
);
以分结束
获取表明user,写入文件
name number
张三 1234
主要是解析字符串,请给予指导,谢谢了。
[b]问题补充:[/b]
我想在屏幕处键盘输入命令,想SQLplus那样,输入;号结束。
怎么实现啊。

[code="java"]
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ConsoleSqlDDL {

/**
 * 测试
 * @param args
 */
public static void main(String[] args) {
    String str = "create table user (name char,number long);CREATE Table school (address varchar,zipcode long)";
    formatSQL(str);
}

/**
 * 解析SQL的DDL语句获取表明和字段名
 * @param str
 */
public static void formatSQL(String str)
{
    String[] arr = str.trim().split(";");
    String tbReg = "\\s*create\\s+table\\s+(.+)\\s+\\(";
    for(int i = 0; i < arr.length; i++)
    {
        String sql = arr[i];

        /*获取表名*/
        Pattern p =Pattern.compile(tbReg,Pattern.CASE_INSENSITIVE);  
        Matcher m = p.matcher(sql);
        String table = "";
        String[] tables = p.split(sql);  
         if(tables.length > 0)  
         {  
             int count = 0;  
             while(count < tables.length)  
             {  
                 if(m.find())  
                 {  
                     table = m.group(1);
                     System.out.println("table=====>"+table);
                 }  
                 count++;  
             }  
         }

         /*获取表的字段名*/
         String columns = "";
         String colReg = "\\((.+)\\)";
         Pattern pc =Pattern.compile(colReg,Pattern.CASE_INSENSITIVE);  
         Matcher mc = pc.matcher(sql);
         String[] cols = pc.split(sql);
         if(cols.length > 0)  
         {  
             int count = 0;  
             while(count < cols.length)  
             {  
                 if(mc.find())  
                 {  
                     columns = mc.group(1);
                     String[] column = columns.split(",");
                     for(int c = 0; c < column.length; c++)
                     {
                         String columnReg = "\\s+";
                         Pattern pcm =Pattern.compile(columnReg,Pattern.CASE_INSENSITIVE);  
                         String[] col = pcm.split(column[c]);
                         String tbColumnn = col[0];
                         System.out.println("columnn[" + c + "] =====>" + tbColumnn);
                     }
                 }  
                 count++;  
             }  
         }

         System.out.println("\n\n");
    }
}

}

[/code]

运行输出的结果:
[code="java"]
table=====>user
columnn[0] =====>name
columnn[1] =====>number

table=====>school
columnn[0] =====>address
columnn[1] =====>zipcode
[/code]