如何把数据库中的数据存储在list中

本文介绍了一种从数据库中检索数据并将其封装为List的方法。通过使用Statement和ResultSet, 数据被逐条读取并存储到Map中,最终形成一个包含所有记录的List。此方法有助于在不同页面间传递数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为了力求封装,我们把数据库中的数据取出放在list中。然后返回list,再在另一个页面读取list中的值。

public static List executeQuery(String sql) throws Exception



  {



  List list = new ArrayList();



  Connection conn = null;



  Statement stmt = null;



  ResultSet rs = null;



  try



  {



  conn = openConnection();



  stmt = conn.createStatement();



  rs = stmt.executeQuery(sql);



  ResultSetMetaData rsmd = rs.getMetaData();//获取表中的字段名字



  while ( rs.next() )



  {



  Map map = new HashMap();



  for ( int i = 1; i < = rsmd.getColumnCount(); i++ )//获取列然后存储入map



  {



  map.put(rsmd.getColumnName(i), rs.getObject(i));



  }



  list.add(map);



  } }



  catch ( Exception e )



  {



  e.printStackTrace();



  }



  finally



  {



  if ( rs != null ) rs.close();



  closeConnection(conn);



  }



  return list; 
     }



  }



数据库中的数据放入Java的List集合中通常涉及到以下几个步骤: 1. **选择合适的集合类型**: 根据数据库查询结果的数据结构,选择适当的列表类型。例如,如果查询结果是一维的,可以使用ArrayList;如果是有序且允许重复元素,可以用LinkedList;如果需要固定大小且支持快速查找,可以选择Vector(已过时,推荐使用Collections.synchronizedList Collections.unmodifiableList替代)或Arrays.asList。 2. **数据库连接和查询**: 使用JDBC(Java Database Connectivity)或者其他ORM框架(如Hibernate、MyBatis等)建立与数据库的连接,并编写SQL查询语句来获取你需要的数据。 3. **遍历查询结果**: 使用ResultSet(JDBC)或查询结果映射对象(ORM框架)来迭代数据库中的每一行数据。这通常是通过循环来完成的。 4. **添加到List**: 对于每一条数据,将其转化为合适的数据类型并添加到相应的List实例中。例如,如果你从数据库中获取的是用户信息,可以创建User对象并将每个User对象添加到List<User>中。 5. **关闭连接**: 执行完所有操作后,别忘了关闭数据库连接以释放资源。 示例代码(使用JDBC): ```java List<String> dataList = new ArrayList<>(); try (Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "username", "password"); PreparedStatement pstmt = conn.prepareStatement("SELECT column_name FROM table_name")) { ResultSet rs = pstmt.executeQuery(); while (rs.next()) { dataList.add(rs.getString("column_name")); } } catch (SQLException e) { e.printStackTrace(); } // 数据现在存储在dataList中 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值