Java 从SQL中的单独表获取ID
我有两张桌子,一张叫做会员:Java 从SQL中的单独表获取ID,java,sql,intellij-idea,derby,Java,Sql,Intellij Idea,Derby,我有两张桌子,一张叫做会员: NAME | PERSONALNUMBER | ID | LUDDE | 9409251171 | 1 | 还有一个叫船: TYPE | LENGTH | MEMBERID | Motorsailer | 100.0 | null | 我想从成员处获取ID,并
NAME | PERSONALNUMBER | ID |
LUDDE | 9409251171 | 1 |
还有一个叫船:
TYPE | LENGTH | MEMBERID |
Motorsailer | 100.0 | null |
我想从成员处获取ID
,并将其存储在MEMBERID
中
现在,我尝试通过以下操作从特定成员处获取ID:
public void createBoat(Boat boat, Member member) {
try {
connection.createStatement().execute("Insert into BOAT (Type, Length) values " + boat.toString());
connection.createStatement().executeQuery("SELECT ID FROM MEMBER WHERE NAME LIKE " + "'" + member.getName() + "'" );
} catch(SQLException e) {
System.out.println(e.getMessage());
}
}
但是,我得到的是null而不是任何实际数据。首先使用select语句从
成员
表中选择特定id。然后在表的insert语句中使用该成员id
您可以使用以下命令。您可能需要做一些小的修改。我不知道船的长度,所以我用100作为长度。我还假设成员id是一个整数
public void createBoat(Boat boat, Member member) {
try {
ResultSet rs=connection.createStatement().executeQuery("SELECT ID FROM MEMBER WHERE NAME =" + "'" + member.getName() + "'");
while(rs.next()){
int memberId=rs.getInt("ID");
connection.createStatement().execute("Insert into BOAT (Type, Length,MEMBERID) values (" + boat.toString() ",100,"+memberId+" )");
}
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
抱歉,我看不出您得到的是“null”。您可以通过添加更多代码来帮助人们重现您的问题,或者您可以添加一些控制台输出。您不会对executeQuery()的结果执行任何操作。另外。如果使用'LIKE'函数,请不要忘记添加百分比符号,例如:“从名为“+”'%%“+MEMBER.getName()+“%”的成员中选择ID”。否则,您最好使用等于运算符“=”