SQL 对象 API - 获取所有列?
SQL Objects API - Get all columns?
我在我的数据访问对象的以下代码行中使用 SQL 对象 API 从 SQL [=40= 中的一行中获取名称字段] 其中 ID 与提供的 ID 匹配。
@SqlQuery("select name from users where id = :id")
String findNameById(@Bind("id") int id);
一切都很好,但是如果我想 return table 中该行的所有字段,而不仅仅是名称,而是所有字段,我到底该怎么办该记录的列?
我确实尝试过使用:
"select * from users where id = :id"
但这不对,它似乎只是 return id 字段(可能因为它是 table 中的第一列,而我的方法 return 是一个字符串?)
无论如何,我对此一无所知,希望能得到所有帮助。
收到信息请求时的附加信息:
这是调用我的dao的控制器中我的方法的方法签名。
public String retrieveUserRecord(@PathParam("id") int id)
如你所见,它return是一个字符串,dao中的findNameByID方法也是...
我想做的是使用我的方法签名传递 id,并尽可能将我的所有列作为一个漂亮的 JSON 对象取回?
Return 当你想获取所有字段时,类型不应该是字符串。我假设你有 'USER' 这样的模型。
public class User {
private Integer id;
private String name;
public User(id, name) {
this.id = id;
this.name = name;
}
}
有一些方法可以将数据库结果映射到 Java 模型。您应该为 class 用户创建映射器。
public class UserMapper<User> implements ResultSetMapper<User> {
public User map(int row, ResultSet rs, StatementContext ctx) throws SQLException {
return new User(rs.getInt("id"), rs.getString("name") );
}
}
你应该在 sqlObject api.
中提到这个映射器
@SqlQuery("select * from users where id = :id")
@Mapper(UserMapper.class)
String retrieveUserRecord(@Bind("id") int id);
如果模型中有 setter 和 getter,您也可以使用 MapResultAsBean。
您也可以使用this library。
我在我的数据访问对象的以下代码行中使用 SQL 对象 API 从 SQL [=40= 中的一行中获取名称字段] 其中 ID 与提供的 ID 匹配。
@SqlQuery("select name from users where id = :id")
String findNameById(@Bind("id") int id);
一切都很好,但是如果我想 return table 中该行的所有字段,而不仅仅是名称,而是所有字段,我到底该怎么办该记录的列?
我确实尝试过使用:
"select * from users where id = :id"
但这不对,它似乎只是 return id 字段(可能因为它是 table 中的第一列,而我的方法 return 是一个字符串?)
无论如何,我对此一无所知,希望能得到所有帮助。
收到信息请求时的附加信息:
这是调用我的dao的控制器中我的方法的方法签名。
public String retrieveUserRecord(@PathParam("id") int id)
如你所见,它return是一个字符串,dao中的findNameByID方法也是...
我想做的是使用我的方法签名传递 id,并尽可能将我的所有列作为一个漂亮的 JSON 对象取回?
Return 当你想获取所有字段时,类型不应该是字符串。我假设你有 'USER' 这样的模型。
public class User {
private Integer id;
private String name;
public User(id, name) {
this.id = id;
this.name = name;
}
}
有一些方法可以将数据库结果映射到 Java 模型。您应该为 class 用户创建映射器。
public class UserMapper<User> implements ResultSetMapper<User> {
public User map(int row, ResultSet rs, StatementContext ctx) throws SQLException {
return new User(rs.getInt("id"), rs.getString("name") );
}
}
你应该在 sqlObject api.
中提到这个映射器@SqlQuery("select * from users where id = :id")
@Mapper(UserMapper.class)
String retrieveUserRecord(@Bind("id") int id);
如果模型中有 setter 和 getter,您也可以使用 MapResultAsBean。
您也可以使用this library。