无法通过java执行Create table sql查询

时间:2015-05-04 04:50:10

标签: java mysql sql database

我正在尝试通过java字符串创建表但由于表不存在而显示错误但是当我直接在工作台上运行相同的查询时它运行正常。以下是我的代码

String url = "jdbc:mysql://localhost:3306/" ;
String dbname = "tweetmap";
String username = "root";
String password = "root";
try
{ 
    // SQL Driver needed for connecting to Database
    Class.forName("com.mysql.jdbc.Driver");
    c = DriverManager.getConnection(url+dbname,username,password);
    c.setAutoCommit(true);
    stmt = c.createStatement();

    //Creating the Database if not Already Present
    String sql = "CREATE TABLE if not exists senti "
            + "( latitude double NULL, "
            + "longitude double NULL, "
            +  "Sentiment TEXT  NULL) ";
    stmt.executeUpdate(sql);

    if(sentiment != null){

        stmt1 = c.createStatement();    
        stmt1.executeUpdate("INSERT INTO `senti`(latitude,longitude,Sentiment) VALUE ('"+lati+"','"+longi+"','"+sentiment+"')");
        }
    }
catch(Exception e){
     e.printStackTrace();
}

2 个答案:

答案 0 :(得分:3)

这是问题 stmt.executeUpdate(sql);

而不是executeUpdate使用执行(String SQL )方法。

执行(字符串SQL)用于 DDL / DML 语句 而 executeUpdate(String SQL)仅用于 DML 操作

答案 1 :(得分:0)

在JDBC中执行任何查询的最佳方法是使用execute()方法。此方法可用于任何类型的查询。 我希望以下链接可以帮助您了解更多。

http://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html#execute(java.lang.String)