java 将数据库中的每一条数据取出放入数组或者List中

1、如何将数据库中数据按照行(即一整条数据)取出来,存入到数组当中?

    public static String str = null; // 将StringBuffer转化成字符串
    public static StringBuffer sb = new StringBuffer(); // StringBuffer便于字符串的增删改查操作

    public static void main(String[] args) {

        String className = "net.sourceforge.jtds.jdbc.Driver";
        String url = "jdbc:jtds:sqlserver://localhost:3306/test";
        String dbusername = "shujuku"; // 数据库的名字
        String password = "mima"; // 密码
        // 加载驱动
        try {
            Class.forName(className);
            // 建立连接
            Connection conn;
            try {
                conn = DriverManager.getConnection(url, dbusername, password);
                Statement stat = conn.createStatement();
                String sql = "select * from test"; // 将数据从数据库中读取出来
                ResultSet rs = stat.executeQuery(sql);

                // 从ResultSet中将数据取出(假如数据库中每条数据有7列数据)
                while (rs.next()) {
                    sb.append(rs.getString(1)); // 读出每一列的数据
                    sb.append("*"); // 在每列数据后面做标记,将来便于做拆分
                    sb.append(rs.getString(2));
                    sb.append("*");
                    sb.append(rs.getString(3));
                    sb.append("*");
                    sb.append(rs.getString(4));
                    sb.append("*");
                    sb.append(rs.getString(5));
                    sb.append("*");
                    sb.append(rs.getString(6));
                    sb.append("*");
                    sb.append(rs.getString(7));
                    sb.append("%"); // 在每条数据后面做标记,便于拆分
                }
                str = sb.toString(); // 将数据由StringBuffer类型转化成String类型
                String datas;
                // 将总数据以指定字符分割成数组,每条数据为数组的一项
                String[] params = StringUtils.split(str, "%");
               //将每条数据再拆分,则param数据保存的是一条数据的每一项数据
               for (int i = 0; i < params.length; i++) {
             String[] param = StringUtils.split(this.rawData, "*");
               //将数据进行你希望的操作,我进行的操作是对每条数据处理,然后再存入数据库另一张表中
        }

2、如何存到List里面?

while(rs.next()){
        Map<String ,Object> map=new HashMap<String, Object>();
        map.put("id",rs.getString(1));
        map.put("itemName",rs.getString(2));
        map.put("version",rs.getString(3));
        map.put("contents",rs.getString(4));
        map.put("account",rs.getString(5));
        map.put("psw",rs.getString(6));
        map.put("tyTime",rs.getString(7));
        listDatas.add(map);
                }

那么问题又来了:

问:假如我将ResultSet中的数据存到了List<Map<>>中,请问,如何将List里面的数据取出来?

答:可以先for循环,取出来List中的每条数据(Map<>形式的),放到一个Map中,再把Map中的数据取出来存到String数组当中

例如:

for(int i=0;i<list.size();i++){
 Map dqMap = (Map)list.get(i);
 String jqh = dqMap.get(‘jqh‘);
 String khh = dqMap.get(‘khh‘);
}

好了,我只能帮到这里了,注意下,这个是我手改了一下之前做的项目里面的代码,把隐私的数据去掉了,但是没运行代码,应该没错,这是我根据项目要求自己琢磨的对ResultSet的处理方式,至于好不好就不知道了,仅供参考了。

时间: 2024-10-08 11:02:48

java 将数据库中的每一条数据取出放入数组或者List中的相关文章

为什么注册页面刷新一次,数据库就多了一条数据?????

web项目为什么点击注册按钮跳转不到注册页面?(上一篇博客) 从上次注册页面能成功访问之后(上一篇博客),我就开始编写注册页面.最终成功的将用户名和密码插入到数据库中! 但是问题百出!我登录刚刚注册的页面,系统就开始报错了!! nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), b

mysql中造3千条数据(3种方法)

方法一:存储过程 1.存储过程如下: delimiter $$ DROP PROCEDURE IF EXISTS data CREATE PROCEDURE data(in i int) BEGIN WHILE i < 3000 DO INSERT INTO goods VALUES('','锤子手机',i); SET i=i+1; END WHILE; end $$ set @id=0; call proll(@id); 2.执行存储过程前将表中的数据清空 3)存储过程执行的时间需要:0.31

oracle中取前几条数据&amp;TRUNC()函数

在oracle中查表中的前10条数据---- select * from test where rownum <= 10 ;  rownum是把SQL出来的结果进行编号,始终从1开始,常见的用途就是用来分页.类似于MYSQL和SQL SERVER的top. select * from (select a.*,rownum rn from test a) where rn >=10 and rn<=20; 输出10到20条语句.因为rownum本身只能用<=的比较方式,只有转成实例才

从数据库里随机读取几条数据

从数据库里随机读取几条数据 Access: select top n * from table order by rnd(id)‘id为数据库的自动编号字段 Sql Server: select top n * from table order by newid() MySQL: SELECT * FROM table order by rand() limit  20; Oracle: select * from table order by dbms_random.value()

经过多次的测试,最终写出了access数据库一次插入多条数据

OleDbConnection inconn = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=DB.mdb"); inconn.Open(); OleDbTransaction myTrans = inconn.BeginTransaction(); OleDbCommand incmd = inconn.CreateCommand(); incmd.Transaction = myTrans; s

两张表一对多的连接,取多记录表中最新的一条数据

select sn, pname, srnum, rerepairtime, rn from ( select sn,pname, srnum, rerepairtime,row_number() over(partition by assetsid order by rerepairtime desc) rn from atzserreportb ) where rn = 1 两张表一对多的连接,取多记录表中最新的一条数据

键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:&quot;java&quot;,&quot;txt&quot;)作为key, 用个数作为value,放入到map集合中,遍历map集合

package cn.it.zuoye5; import java.io.File;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Scanner;import java.util.Set; /** 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt&qu

while循环操作,输入一个整数放入到变量n中, 如果这个整数大于0,那么计算1+2+3+……+n的结果, 否则输出“输入的数据有错误”。

import java.util.Scanner; /** * @author 蓝色以太 while循环操作,输入一个整数放入到变量n中, 如果这个整数大于0,那么计算1+2+3+--+n的结果, * 否则输出"输入的数据有错误". */ public class While2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("

OC--有这么一个 整数 123456789,如何将这个整数的每一位数,从末位开始依次放入数组中,并遍历 倒序输出字符串

有这么一个 整数 123456789,如何将这个整数的每一位数,从末位开始依次放入数组中,并遍历 1 NSInteger num=123456789; 2 NSString *str=[[NSString alloc]initWithFormat:@"%ld",num ]; 3 NSMutableArray *arr=[NSMutableArray array]; 4 for(NSInteger i=str.length-1;i>=0;i--){ 5 //从末位开始截取字符串,每