javaweb数据库操作
谁能帮我解释一下这个查询操作里面的具体意思,越具体越好,特别是对于那些列的获取的用途,Map创建对象时为什么没有两个参数,不知道是干嘛用的.还有Tree的put和list...
谁能帮我解释一下这个查询操作里面的具体意思,越具体越好,特别是对于那些列的获取的用途,Map创建对象时为什么没有两个参数,不知道是干嘛用的.还有Tree的put和list的add方法的具体应用,谢谢
//执行查询语句,返回数据集
public ArrayList executeQuery(String sqlString)
{
ArrayList listSet = new ArrayList();
ResultSetMetaData rsmd = null;//获取数据库列名
Map rsTree;
int numberOfColumns;//返回集的列数
try {
conn = startConn(conn);//连接数据库
st = conn.createStatement();
rs = st.executeQuery(sqlString);
rsmd = rs.getMetaData(); //取数据库的列名
numberOfColumns = rsmd.getColumnCount(); //获得列数
while(rs.next())
{
rsTree = new HashMap(numberOfColumns);
for(int i = 1;i <= numberOfColumns;i++)
{
rsTree.put(rsmd.getColumnName(i), rs.getObject(i));
}
listSet.add(rsTree);
}
} catch (SQLException e) {
System.out.println("查询数据库数据时发生错误!");
}finally{
closeConn(conn, st, rs);
}
return listSet;
} 展开
//执行查询语句,返回数据集
public ArrayList executeQuery(String sqlString)
{
ArrayList listSet = new ArrayList();
ResultSetMetaData rsmd = null;//获取数据库列名
Map rsTree;
int numberOfColumns;//返回集的列数
try {
conn = startConn(conn);//连接数据库
st = conn.createStatement();
rs = st.executeQuery(sqlString);
rsmd = rs.getMetaData(); //取数据库的列名
numberOfColumns = rsmd.getColumnCount(); //获得列数
while(rs.next())
{
rsTree = new HashMap(numberOfColumns);
for(int i = 1;i <= numberOfColumns;i++)
{
rsTree.put(rsmd.getColumnName(i), rs.getObject(i));
}
listSet.add(rsTree);
}
} catch (SQLException e) {
System.out.println("查询数据库数据时发生错误!");
}finally{
closeConn(conn, st, rs);
}
return listSet;
} 展开
1个回答
展开全部
//该方法返回参数为ArrayList对象
public ArrayList executeQuery(String sqlString) {
//定义一个ArrayList对象的变量listSet
ArrayList listSet = new ArrayList();
//获取数据库列名
ResultSetMetaData rsmd = null;
//定义一个Map对象rsTree
Map rsTree;
//返回集的列数
int numberOfColumns;
try {
//连接数据库
conn = startConn(conn);
//实例化Statement对象
st = conn.createStatement();
//通过SQL查询出来的结果集【这里上面应该是少定义了一个结果集】
rs = st.executeQuery(sqlString);
//取数据库的列名
rsmd = rs.getMetaData();
//获得列数
numberOfColumns = rsmd.getColumnCount();
//去除结果集中的数据while遍历【rs.next():代表rs中有下一个有数据,就执行while中的方法】
while(rs.next()){
//定义rsTree为一个固定长度的HashMap,长度为numberOfColumns
rsTree = new HashMap(numberOfColumns);
//循环,将查询出来的列明和对应的数据放到Map对象rsTree中
for(int i = 1;i <= numberOfColumns;i++){
//【rsmd.getColumnName(i):获取查询结果的列名】【rs.getObject(i):获取结果集中对应的数据】
rsTree.put(rsmd.getColumnName(i), rs.getObject(i));
}
//将Map对象rsTree放到listSet对象中
listSet.add(rsTree);
}
}catch (SQLException e) {
//当出现SQL异常时,输出以下内容
System.out.println("查询数据库数据时发生错误!");
}finally{
//不管执行操作如何,始终关闭数据库连接
closeConn(conn, st, rs);
}
//返回ArrayList对象listSet
return listSet;
}
public ArrayList executeQuery(String sqlString) {
//定义一个ArrayList对象的变量listSet
ArrayList listSet = new ArrayList();
//获取数据库列名
ResultSetMetaData rsmd = null;
//定义一个Map对象rsTree
Map rsTree;
//返回集的列数
int numberOfColumns;
try {
//连接数据库
conn = startConn(conn);
//实例化Statement对象
st = conn.createStatement();
//通过SQL查询出来的结果集【这里上面应该是少定义了一个结果集】
rs = st.executeQuery(sqlString);
//取数据库的列名
rsmd = rs.getMetaData();
//获得列数
numberOfColumns = rsmd.getColumnCount();
//去除结果集中的数据while遍历【rs.next():代表rs中有下一个有数据,就执行while中的方法】
while(rs.next()){
//定义rsTree为一个固定长度的HashMap,长度为numberOfColumns
rsTree = new HashMap(numberOfColumns);
//循环,将查询出来的列明和对应的数据放到Map对象rsTree中
for(int i = 1;i <= numberOfColumns;i++){
//【rsmd.getColumnName(i):获取查询结果的列名】【rs.getObject(i):获取结果集中对应的数据】
rsTree.put(rsmd.getColumnName(i), rs.getObject(i));
}
//将Map对象rsTree放到listSet对象中
listSet.add(rsTree);
}
}catch (SQLException e) {
//当出现SQL异常时,输出以下内容
System.out.println("查询数据库数据时发生错误!");
}finally{
//不管执行操作如何,始终关闭数据库连接
closeConn(conn, st, rs);
}
//返回ArrayList对象listSet
return listSet;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询