我正在尝试通过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();
}
答案 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)