关于java中拼接sql,表名作为参数,返回结果集怎么接? [问题点数:30分] 10
代码如下:Stringsqlstr="select*from"+FormKey+"whereregist_id='"+registId+"'";Connectioncon...
代码如下:
String sqlstr = "select * from " + FormKey + " where regist_id = '" + registId +"'";
Connection conn = null;
Statement st = null;
ResultSet rs = null;
List<String> result = new ArrayList<String>();
try {
DataSource dataSource = (DataSource) AppUtil.getBean("hyDataSource");
conn = dataSource.getConnection();
st = conn.createStatement();
rs = st.executeQuery(sqlstr);
while (rs.next()) {
rs.getLong(0);
// rs.getString(1);
// rs.getString(2);
// rs.getString(3);
// for(int i=0;i<rs.getFetchSize();i++){
// int a= rs.getFetchSize();
// }
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (st != null) {
st.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
以上sql文执行出来的结果集,在java中需要怎么处理?
如果这种方法不可以的话,还有其他什么办法么?struts2+hibernate+spring框架下还有其他什么办法可以实现表名作为动态参数,执行出来的结果接该怎么接? 展开
String sqlstr = "select * from " + FormKey + " where regist_id = '" + registId +"'";
Connection conn = null;
Statement st = null;
ResultSet rs = null;
List<String> result = new ArrayList<String>();
try {
DataSource dataSource = (DataSource) AppUtil.getBean("hyDataSource");
conn = dataSource.getConnection();
st = conn.createStatement();
rs = st.executeQuery(sqlstr);
while (rs.next()) {
rs.getLong(0);
// rs.getString(1);
// rs.getString(2);
// rs.getString(3);
// for(int i=0;i<rs.getFetchSize();i++){
// int a= rs.getFetchSize();
// }
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (st != null) {
st.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
以上sql文执行出来的结果集,在java中需要怎么处理?
如果这种方法不可以的话,还有其他什么办法么?struts2+hibernate+spring框架下还有其他什么办法可以实现表名作为动态参数,执行出来的结果接该怎么接? 展开
1个回答
展开全部
通常通过SQL查询语句查出来的结果集封装在ResultSet对象中,然后我们会这样处理:
把ResultSet对象中的数据取出来并封装在javabean中,所以我们需要这样写(我假设这里的javabean是Student.java 里面有private String name和private int id两个属性 ,当然你需要生成对应的getter和setter方法)
while(rs.next()){
Student s=new Student();
s.setName(rs.getString("name"));
s.setId(rs.getInt("id"));
return s;
}
这样就把相应的数据封装进javabean对象中了,当然还有一种简便的方法是用Apache开源组织的dbUtils工具 详看API 这个太多不好说
把ResultSet对象中的数据取出来并封装在javabean中,所以我们需要这样写(我假设这里的javabean是Student.java 里面有private String name和private int id两个属性 ,当然你需要生成对应的getter和setter方法)
while(rs.next()){
Student s=new Student();
s.setName(rs.getString("name"));
s.setId(rs.getInt("id"));
return s;
}
这样就把相应的数据封装进javabean对象中了,当然还有一种简便的方法是用Apache开源组织的dbUtils工具 详看API 这个太多不好说
追问
关键是我的的表是动态的,所以对应的javabean也是动态的,我这边不可能写死的。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询