各位朋友好,最近我在做一个项目,里面有个模块要求到用java创建一个表,表名是从前台输入的,也就是要带参创建一个表,但是好像都创建不起,希望大家能帮帮忙,谢谢了。
public class DepartmentBean 
{
private String depname="";

public void setdepname(String value){this.depname=value;}
public String getdepname(){return this.depname;}

public boolean DepartmentAdd()
{
boolean b=false;
try
{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url;
url="jdbc:odbc:student";

Connection con=DriverManager.getConnection(url,"sa","7226132");

String sql;
sql="create table ?(classID varchar(20),className varchar(20))";
PreparedStatement st=con.prepareStatement(sql);
st.setString(1,this.depname);

if (st.executeUpdate()>0)
b=true;
con.close();

}
catch(Exception ex)
{

}

return b;
}

解决方案 »

  1.   

    DDL语句好象是不支持传参数的方式,你可以通过拼sql语句来实现:
    sql="create table " + tableName + "(classID varchar(20),className varchar(20))"; 
      

  2.   

    在数据库中创建一个带参数的存储过程,然后在java中通过调用该存储过程从而达到你的要求。
      

  3.   

    要实现这样的一个功能途径不止一个
    1、ibatis支持参数设置
    2、存储过程也是一个途径
    3、java调用shell或bat,动态传入参数来实现也行
    4、最简单的就是拼sql来实现
    5、java中调用数据的接口实现也行