如何从Java应用程序在谷歌扳手上执行DML(更新,插入,删除)操作?

时间:2018-03-19 23:47:24

标签: google-cloud-platform google-cloud-spanner

需要你的帮助!

我正在尝试使用驱动程序类(com.simba.cloudspanner.core.jdbc42.CloudSpanner42Driver)执行DML操作,但我得到了例外

Mutation.newInsertBuilder

但SELECT查询工作正常。下面是我的java代码。

请告诉我如何从java应用程序中对扳手执行DML操作。

我尝试Mutation.newUpdateBuilderMutation.deletecom.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}}

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/使用不同的框架和工具。