操作jdbc查询到的结果

yybjroam05 2016-09-18 05:14:24
我(初学)用java和jdbc来操作mysql,
想把查询到的数据结果返回回去?

下面的函数也实现了想我的功能,
但是我觉得,写得很low,
哪位大神麻烦看看,怎么改进一下返回类型?


/**
* 通过sql语句查询数据
* @param sql
* @return [description]
*/
public List<Map<String,String>> query(String sql){
List<Map<String,String>> lists=new ArrayList<Map<String,String>>();
try {

conn = DriverManager.getConnection(url, user, password);
statement = conn.createStatement();
ResultSet rs = statement.executeQuery(sql);
lists=this.ResultSetToList(rs);
rs.close();
conn.close();
return lists;
} catch(Exception e) {
e.printStackTrace();
}


return lists;
}

/**
* 把结果转化成list返回
* @param rs
* @return [description]
*/
public static List<Map<String,String>> ResultSetToList(ResultSet rs) {
try {
ResultSetMetaData md = rs.getMetaData(); // 获得结果集结构信息(字段数、字段名等)
int columnCount = md.getColumnCount();
List<Map<String,String>> list = new ArrayList<Map<String,String>>();
while (rs.next()) {
Map<String, String> rowData = new HashMap<String, String>();
for (int i = 1; i <= columnCount; i++) {
rowData.put(md.getColumnName(i), rs.getString(i));
}
list.add(rowData);
}
return list;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
...全文
295 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yybjroam05 2016-09-19
  • 打赏
  • 举报
回复
谢谢,各位,
Alvis_you 2016-09-19
  • 打赏
  • 举报
回复
写的已经挺好了,多理解下面向对象,当然反正也不着急,写多了自然就明白了。 3l说的挺对,关闭资源一定要放在finally里,这个是个坑。 然后数据库连接可以单独抽象出来,做个静态的连接,关闭连接也可以单独抽象出来,这样结构清楚,主函数一眼可以看出干啥的。
NewMoons 2016-09-19
  • 打赏
  • 举报
回复
另外同意2楼说法,你有一颗进步的心就够了。
NewMoons 2016-09-19
  • 打赏
  • 举报
回复
提出一点修正意见,应该在finally中关闭 con等数据库连接对象,因为如果操作中发生异常,而你的异常中又没有关闭代码,然后。。。你懂的。 另外,初学者写成这样,知道抽象方法来复用代码,表示
codingjav 2016-09-18
  • 打赏
  • 举报
回复
其实这东西也没这么多套路,只要多看点东西,基本上就可以自己慢慢改进了
nai598455803 2016-09-18
  • 打赏
  • 举报
回复
可以 List<Bean> bean 是你实体类名,比如List<User> 可以直接返回user 的list 注意,sql 和字段的对应

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧