假设我有一个这样的 MySQL 表:
VARCHAR 100 | VARCHAR 100 | VARCHAR 100
[ID] [姓名] [昵称] [FAVORITE_COLOR]
1 约翰·约翰尼·红
2 Eric NULL 绿色
我想在 Java 中使用以下准备好的语句选择昵称为 NULL 的第二行:
statement = "SELECT * FROM my_table WHERE name = ? AND nickname = ?"
prepared = connection.prepareStatement(statement)
prepared.setString(1, "Eric")
prepared.setString(2, null)
result = prepared.executeQuery()
Run Code Online (Sandbox Code Playgroud)
此查询不起作用。结果集为空。
我试过的另一个选择是:
statement.setNull(2,java.sql.Types.VARCHAR)
Run Code Online (Sandbox Code Playgroud)
这也不起作用,结果集为空。
最后,我尝试了一个不同的 SQL,但它显然是错误的并返回了太多行(因为它不够严格):
statement = "SELECT * FROM my_table WHERE name = ? AND (nickname IS NULL) OR (nickname = ?)"
Run Code Online (Sandbox Code Playgroud)
在我的情况下,这选择了太多行。
所以我的问题是:如何使用 Java PreparedStatement 使用 MySQL …
假设你有一个演员类:
class MyActor extends Actor { }
Run Code Online (Sandbox Code Playgroud)
在MyActor中的某个地方,你想将它传递给另一个演员.但是,你需要"this"作为ActorRef.由于"this"是Actor类型,因此无法在需要ActorRef的地方传递.
所以问题是,Actor("this")如何获得对ActorRef的引用?这甚至是可能的,还是我完全误解了一些东西......