Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.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 从关系数据库检索数据_Java_Android_Mysql_Phpmyadmin - Fatal编程技术网

Java 从关系数据库检索数据

Java 从关系数据库检索数据,java,android,mysql,phpmyadmin,Java,Android,Mysql,Phpmyadmin,我在phpmyadmin中设置了两个表-表userid和表data。userid表由单个列-id组成,表数据由以下列-id | name | price组成。我在表userid的id列中添加了一个索引,以指向表数据的id。现在我有一个用户在android应用程序中进行某些选择。我想将此数据插入表数据中。我知道我必须使用jdbc,并且知道如何在没有任何索引的情况下为表输入数据。但对于如何在相关表的情况下进行操作,我感到困惑。用户ID是从该链接获得的。有人能告诉我如何使用java输入数据吗。混淆之处

我在phpmyadmin中设置了两个表-表userid和表data。userid表由单个列-id组成,表数据由以下列-id | name | price组成。我在表userid的id列中添加了一个索引,以指向表数据的id。现在我有一个用户在android应用程序中进行某些选择。我想将此数据插入表数据中。我知道我必须使用jdbc,并且知道如何在没有任何索引的情况下为表输入数据。但对于如何在相关表的情况下进行操作,我感到困惑。用户ID是从该链接获得的。有人能告诉我如何使用java输入数据吗。混淆之处在于如何输入用户ID和相应的数据

只要在将新记录插入数据表时知道用户id,就可以了。基本上你会有:

Statement stmt = conn.createStatement();
stmt.executeUpdate( "INSERT INTO data (id, name, price) VALUES ('id from userid table', 'a name', 'a price')");
显然,参数没有被正确地转义,它们确实应该被转义,并且没有错误测试,但是这会让您开始

然后,例如,要选择与给定用户ID相关的所有数据,您可以执行以下操作:

Statement stmt = conn.createStatement();
stmt.executeQuery( "SELECT * FROM userid LEFT JOIN data WHERE userid.id = data.id" );

我原以为索引表可以提高速度并减少重复。或者我错了。@user1092042绝对正确,但您所问的问题可以通过在用户表的id字段中添加索引来解决,索引不需要存储在单独的表中。但数据需要正确标识。如果我有很多用户,那么我需要知道哪些数据属于谁。抱歉,如果我看起来很愚蠢,但我是一个新手。索引存储在数据表中,作为外键更新了我的答案,因为我认为我最初误解了您的问题。@user1092042您可以将其抽象到另一个表中,并使用自动递增的id。但是,16个字符不是一个完整的数字,除非你有一个真正巨大的数据量,否则它不会成为你的一个重大瓶颈。考虑如果将该字段适当地设置为VARCHAR16,则每个MySQL文档每字段使用17个字节。这意味着即使有一百万条记录,你的ID也只有17MB。另外,如果您认为我的回答有帮助,请接受我的回答。当您说您在表userid的id列中添加了一个索引以指向表数据的id时,您的意思是data.id是userid.id的外键吗?如果是这样,那么在userid中没有相应的记录就不可能插入到数据中。还是我不明白你的问题?