Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java UCanAccess-不需要的美元符号_Java_Ms Access_Ucanaccess - Fatal编程技术网

Java UCanAccess-不需要的美元符号

Java UCanAccess-不需要的美元符号,java,ms-access,ucanaccess,Java,Ms Access,Ucanaccess,当我把数据放到MSAccess上时,它会在前面加上美元符号。这是我的相关代码: try (Connection conn = DriverManager.getConnection( "jdbc:ucanaccess://" + dbPath + ";newdatabaseversion=V2010" )) { DatabaseMetaData dmd = conn.getMetaData(); try (ResultSet rs = d

当我把数据放到MSAccess上时,它会在前面加上美元符号。这是我的相关代码:

try (Connection conn = DriverManager.getConnection(

    "jdbc:ucanaccess://" + dbPath  
 +   ";newdatabaseversion=V2010"
 )) {
         DatabaseMetaData dmd = conn.getMetaData();
         try (ResultSet rs = dmd.getTables(null, null, tableName, new String[] { "TABLE" })) {

        try (Statement s = conn.createStatement()) {
            s.executeUpdate("CREATE TABLE " + tableName +" (Row COUNTER PRIMARY KEY, aColumn NUMBER , bColumn NUMBER)");
            System.out.println("Table " + tableName + " created.");
        }

 }
 conn.close();
}


}
  catch (Exception f){
  f.printStackTrace();
  }
...
 try{

    statement.execute("DISABLE AUTOINCREMENT ON " + tableName );
    statement.executeUpdate("INSERT INTO " + tableName
    + " ( Row, aColumn, bColumn)"
    + " VALUES ( "+(i+1)+", "+a+", "+b+")");
                    System.out.println("row " + i);
                    }
 catch (Exception f ){
                    f.printStackTrace();
                }
当我输入
1
2
3
4
作为我的值时,图形显示以下内容:


非常感谢您提供任何关于这一点的建议。

NUMBER
在UCanAccess中,DDL映射到Access中的
货币
字段类型,而在Access UI中,默认的“NUMBER”类型为“Long Integer”。如果您想创建一个长整型列,那么请使用DDL关键字
long

我希望您不会从用户InputI-do获取表名,这是一个问题吗?用户可以通过它来操作SQL语句。例如,通过该输入,我可以执行DROP数据库语句。那么我应该如何创建一个表呢?使用PreparedStatements。基本查询(用于创建PreparedStatement的查询)不应包含任何变量。对于要使用的每个变量,都应该在查询中放置一个
,并通过
PreparedStatement.set_u_;(int,__;)
设置值。不幸的是,您只能对值(例如INSERT、UPDATE、WHERE子句)使用占位符,而不能对表名或列名使用占位符。看看这个: