需要你的帮助!
我正在尝试使用驱动程序类(com.simba.cloudspanner.core.jdbc42.CloudSpanner42Driver)执行DML操作,但我得到了例外
Mutation.newInsertBuilder
但SELECT查询工作正常。下面是我的java代码。
请告诉我如何从java应用程序中对扳手执行DML操作。
我尝试Mutation.newUpdateBuilder
,Mutation.delete
,com.google.cloud.spanner.Mutation; libraries
使用public class SimbuDriverInsert {
static final String CONNECTION_URL = "jdbc:cloudspanner://localhost;Project=optimistic-leaf-197820;Instance=testspanner01;Database=students;PvtKeyPath=C:\\MuleWorkspace\\test-driver\\src\\main\\resources\\gcloudPrivateKey.json";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
Class.forName("com.simba.cloudspanner.core.jdbc42.CloudSpanner42Driver");
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(CONNECTION_URL);
stmt = conn.createStatement();
String sql = "INSERT INTO studentdetails (id,age,name) " +
"VALUES (100, 30, 'Ali')";
stmt.executeUpdate(sql);
System.out.println("Inserted record into the table...");
stmt.close();
conn.close();
}catch(SQLException se){
//Handle errors for JDBC
se.printStackTrace();
}catch(Exception e){
//Handle errors for Class.forName
e.printStackTrace();
}
}//end main
}
实现DML操作,但是我实际上正在寻找某种实现方式用户可以在其中运行SQL语句来执行DML操作。
{{1}}
答案 0 :(得分:1)
Oracle提供的官方JDBC驱动程序(与Simba一起)不支持DML和DDL语句。 This open source driver does support both。如果在项目中包含此驱动程序并更改以下行
Class.forName("com.simba.cloudspanner.core.jdbc42.CloudSpanner42Driver");
到
Class.forName("nl.topicus.jdbc.CloudSpannerDriver");
代码应该有效。驱动程序使用与官方驱动程序相同的URL语法,但也增加了许多额外的可能性。 Have a look at the Wiki page驱动程序以获取更多信息。
可以将驱动程序添加为maven依赖项或downloaded from the releases page of the project。
在这里查看有关如何使用驱动程序的更多示例:http://www.googlecloudspanner.com/使用不同的框架和工具。