Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.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.sql';s getRow()线程安全吗?_Java_Sql_Mysql_Multithreading_Thread Safety - Fatal编程技术网

是Java.sql';s getRow()线程安全吗?

是Java.sql';s getRow()线程安全吗?,java,sql,mysql,multithreading,thread-safety,Java,Sql,Mysql,Multithreading,Thread Safety,假设我使用Java.sql将大量线程插入mysql数据库。执行插入操作后,我想知道刚才插入的记录的主键。我可以在insert查询返回的结果集上使用。但是,这个线程安全吗?或者我应该触发另一个select语句来查找刚才插入的记录的主键吗?我认为getRow()不应该是正确的。getId()将是我的选择,因为行ID可能与生成的主键不同 我不相信java.sql中的任何实现都是线程安全的;连接当然不是 确保在事务上下文中插入 你需要注意你的隔离度。如果您不知道这意味着什么,请检查javadocs fo

假设我使用
Java.sql
将大量线程插入mysql数据库。执行插入操作后,我想知道刚才插入的记录的主键。我可以在insert查询返回的结果集上使用。但是,这个线程安全吗?或者我应该触发另一个select语句来查找刚才插入的记录的主键吗?

我认为getRow()不应该是正确的。getId()将是我的选择,因为行ID可能与生成的主键不同

我不相信java.sql中的任何实现都是线程安全的;连接当然不是

确保在事务上下文中插入


你需要注意你的隔离度。如果您不知道这意味着什么,请检查javadocs for java.sql.Connection。

ResultSet不会在javadoc上宣传线程安全,因此假设它不是。如果你有10个线程插入,不知何故他们得到相同的结果集。。奇怪的事情会发生(或者至少不能保证是正确的)

但是,如果有10个线程各自执行插入,并且每个线程都有自己的结果集。。你很好。请记住,线程安全通常与共享同一对象有关,而不仅仅是同一个类。ArrayList不是线程安全的,但是如果您有10个不同的线程和10个不同的ArrayList,您就可以了。这里的ResultSet也一样