zoukankan      html  css  js  c++  java
  • 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的处理方式,至于好不好就不知道了,仅供参考了。

  • 相关阅读:
    MicroMessage的动态操作(第二步)
    preparement 为什么能防sql注入
    谈MicroMessageTest的开始创建
    关于类的全称什么时候用点什么时候用路径的斜杠
    做一个消息自动回复,但是回复内容可以在网页上面输入,用input接收,错了,别人有新增选项,本身就是在页面进行新增,页面维护
    java.sql.Types可以查mysql相关的数据类型
    Navicate一个有用的注册码
    Java中导入、导出Excel
    扁平化
    CentOS-6.5安装配置Tomcat-7
  • 原文地址:https://www.cnblogs.com/smilefortoday/p/4037472.html
Copyright © 2011-2022 走看看