我们用JDBC连接数据库,通常就是调用查询语句或者更新语句
如果String sql ="use mastr
                    go
                  create database
                   go"
调用创建数据库的语句和创建表的语句能行吗?
现在要做的是,输入数据库的名子,就创建一个数据库,然后数据表名和字段名,就创建该表,
java能做吗?

解决方案 »

  1.   

    应该是可以的,将DDL语句放到
    String sql = "";
    Statement stmt = conn.createStatement();
    stmt.execute(sql);在J2SE 1.4的文档中这样写到:
    public boolean execute(String sql)……The execute method executes an SQL statement and indicates the form of the first result. ……Parameters:
    sql - any SQL statement 
    Returns:
    true if the first result is a ResultSet object; false if it is an update count or there are no results
      

  2.   

    当然可以做啊不过是sql语句嘛。很简单啊。我给你个informix的例子://先取数据库连接,连到个存在的数据库上
    Class.forName("com.informix.jdbc.IfxDriver");
    Connection dbOper = DriverManager.getConnection("jdbc:informix-sqli://redhat4:10001/hdmparadb:informixserver=on_tcp", "wj2","1");//建库,库名当然可以是通过输入得到的。
    String sql = "create database yourdbname";
    PreparedStatement pstm = dbOper.prepareStatement(sql);
        affect = pstm.executeUpdate();
    //可以判断下affect值,如果小于0是失败,大于等于0是成功//重新取连接,连到刚建的库上。
    dbOper=
    DriverManager.getConnection("jdbc:informix-sqli://redhat4:10001/yourdbname:informixserver=on_tcp", "wj2","1");//建表
    sql= "create table yourtablename(column1 char(10),column2 char(10),....)";
    pstm = dbOper.prepareStatement(sql);
        affect = pstm.executeUpdate();
    完工。
    如果不是informix,只要换个jdbc包,然后换上相应的url来连接数据库就可以了
      

  3.   

    在后台编写存储过程来实现建表,然后前台java调用这个过程和传参。